[chore] Downgrade sqlite v1.29.2 -> v1.28.0 (#2736)

* [chore] Downgrade sqlite v1.29.2 -> v1.29.0

* go down to v1.28.0
This commit is contained in:
tobi 2024-03-08 11:45:15 +01:00 committed by GitHub
commit ebdee5aed8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
117 changed files with 1835338 additions and 2454288 deletions

20
vendor/modernc.org/cc/v3/AUTHORS generated vendored Normal file
View file

@ -0,0 +1,20 @@
# This file lists authors for copyright purposes. This file is distinct from
# the CONTRIBUTORS files. See the latter for an explanation.
#
# Names should be added to this file as:
# Name or Organization <email address>
#
# The email address is not required for organizations.
#
# Please keep the list sorted.
Dan Kortschak <dan.kortschak@adelaide.edu.au>
Dan Peterson <danp@danp.net>
Denys Smirnov <denis.smirnov.91@gmail.com>
Huang Qiqi <huangqiqi@loongson.cn>
Jan Mercl <0xjnml@gmail.com>
Maxim Kupriianov <max@kc.vc>
Peter Waller <p@pwaller.net>
Steffen Butzer <steffen(dot)butzer@outlook.com>
Tommi Virtanen <tv@eagain.net>
Yasuhiro Matsumoto <mattn.jp@gmail.com>

20
vendor/modernc.org/cc/v3/CONTRIBUTORS generated vendored Normal file
View file

@ -0,0 +1,20 @@
# This file lists people who contributed code to this repository. The AUTHORS
# file lists the copyright holders; this file lists people.
#
# Names should be added to this file like so:
# Name <email address>
#
# Please keep the list sorted.
Dan Kortschak <dan.kortschak@adelaide.edu.au>
Dan Peterson <danp@danp.net>
Denys Smirnov <denis.smirnov.91@gmail.com>
Huang Qiqi <huangqiqi@loongson.cn>
Jan Mercl <0xjnml@gmail.com>
Maxim Kupriianov <max@kc.vc>
Peter Waller <p@pwaller.net>
Steffen Butzer <steffen(dot)butzer@outlook.com>
Tommi Virtanen <tv@eagain.net>
Yasuhiro Matsumoto <mattn.jp@gmail.com>
Zvi Effron <zeffron@cs.hmc.edu>
Lucas Raab <tuftedocelot@fastmail.fm>

27
vendor/modernc.org/cc/v3/GO-LICENSE generated vendored Normal file
View file

@ -0,0 +1,27 @@
Copyright (c) 2009 The Go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

27
vendor/modernc.org/cc/v3/LICENSE generated vendored Normal file
View file

@ -0,0 +1,27 @@
Copyright (c) 2017 The CC Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the names of the authors nor the names of the
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

141
vendor/modernc.org/cc/v3/Makefile generated vendored Normal file
View file

@ -0,0 +1,141 @@
# Copyright 2019 The CC Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
.PHONY: all bench clean cover cpu editor internalError later mem nuke todo edit devbench
grep=--include=*.go --include=*.l --include=*.y --include=*.yy
ngrep='internalError\|TODOOK\|lexer\.go\|ast.go\|trigraphs\.go\|.*_string\.go\|stringer\.go\|testdata\/gcc'
testlog=testdata/testlog-$(shell echo $$GOOS)-$(shell echo $$GOARCH)-on-$(shell go env GOOS)-$(shell go env GOARCH)
all: lexer.go
LC_ALL=C make all_log 2>&1 | tee log
all_log:
date
go version
uname -a
./unconvert.sh
gofmt -l -s -w *.go
GOOS=darwin GOARCH=amd64 go build
GOOS=darwin GOARCH=arm64 go build
GOOS=linux GOARCH=386 go build
GOOS=linux GOARCH=amd64 go build
GOOS=linux GOARCH=arm go build
GOOS=linux GOARCH=loong64 go build
GOOS=windows GOARCH=386 go build
GOOS=windows GOARCH=amd64 go build
go vet | grep -v $(ngrep) || true
golint | grep -v $(ngrep) || true
misspell *.go
staticcheck | grep -v 'lexer\.go' || true
pcregrep -nM 'FAIL|false|<nil>|:\n}' ast_test.go || true
test:
go version | tee $(testlog)
uname -a | tee -a $(testlog)
go test -v -timeout 24h | tee -a $(testlog)
grep -ni fail $(testlog) | tee -a $(testlog) || true
LC_ALL=C date | tee -a $(testlog)
grep -ni --color=always fail $(testlog) || true
test_linux_amd64:
GOOS=linux GOARCH=amd64 make test
test_linux_386:
GOOS=linux GOARCH=386 make test
test_linux_arm:
GOOS=linux GOARCH=arm make test
test_linux_arm64:
GOOS=linux GOARCH=arm64 make test
test_windows_amd64:
go version
go test -v -timeout 24h
test_linux_loong64:
GOOS=linux GOARCH=loong64 make test
test_windows386:
go version
go test -v -timeout 24h
build_all_targets:
GOOS=darwin GOARCH=amd64 go build -v ./...
GOOS=darwin GOARCH=arm64 go build -v ./...
GOOS=freebsd GOARCH=386 go build -v ./...
GOOS=freebsd GOARCH=amd64 go build -v ./...
GOOS=freebsd GOARCH=arm go build -v ./...
GOOS=freebsd GOARCH=arm64 go build -v ./...
GOOS=illumos GOARCH=amd64 go build -v ./...
GOOS=linux GOARCH=386 go build -v ./...
GOOS=linux GOARCH=amd64 go build -v ./...
GOOS=linux GOARCH=arm go build -v ./...
GOOS=linux GOARCH=arm64 go build -v ./...
GOOS=linux GOARCH=loong64 go build -v ./...
GOOS=linux GOARCH=ppc64le go build -v ./...
GOOS=linux GOARCH=riscv64 go build -v ./...
GOOS=linux GOARCH=s390x go build -v ./...
GOOS=netbsd GOARCH=386 go build -v ./...
GOOS=netbsd GOARCH=amd64 go build -v ./...
GOOS=netbsd GOARCH=arm go build -v ./...
GOOS=openbsd GOARCH=386 go build -v ./...
GOOS=openbsd GOARCH=amd64 go build -v ./...
GOOS=openbsd GOARCH=arm64 go build -v ./...
GOOS=windows GOARCH=386 go build -v ./...
GOOS=windows GOARCH=amd64 go build -v ./...
GOOS=windows GOARCH=arm64 go build -v ./...
devbench:
date 2>&1 | tee log-devbench
go test -timeout 24h -dev -run @ -bench . 2>&1 | tee -a log-devbench
grep -n 'FAIL\|SKIP' log-devbench || true
bench:
date 2>&1 | tee log-bench
go test -timeout 24h -v -run '^[^E]' -bench . 2>&1 | tee -a log-bench
grep -n 'FAIL\|SKIP' log-bench || true
clean:
go clean
rm -f *~ *.test *.out
cover:
t=$(shell mktemp) ; go test -coverprofile $$t && go tool cover -html $$t && unlink $$t
cpu: clean
go test -run @ -bench . -cpuprofile cpu.out
go tool pprof -lines *.test cpu.out
edit:
@touch log
@if [ -f "Session.vim" ]; then gvim -S & else gvim -p Makefile *.go & fi
editor: lexer.go
gofmt -l -s -w *.go
go test -o /dev/null -c
go install 2>&1 | tee log
ast.go lexer.go stringer.go: lexer.l parser.yy enum.go
go generate
later:
@grep -n $(grep) LATER * || true
@grep -n $(grep) MAYBE * || true
mem: clean
# go test -v -run ParserCS -csmith 2m -memprofile mem.out -timeout 24h
# go test -v -run @ -bench BenchmarkScanner -memprofile mem.out -timeout 24h
go test -v -run TestTranslateSQLite -memprofile mem.out -timeout 24h
go tool pprof -lines -web -alloc_space *.test mem.out
nuke: clean
go clean -i
todo:
@grep -nr $(grep) ^[[:space:]]*_[[:space:]]*=[[:space:]][[:alpha:]][[:alnum:]]* * | grep -v $(ngrep) || true
@grep -nr $(grep) 'TODO\|panic' * | grep -v $(ngrep) || true
@grep -nr $(grep) BUG * | grep -v $(ngrep) || true
@grep -nr $(grep) [^[:alpha:]]println * | grep -v $(ngrep) || true

11
vendor/modernc.org/cc/v3/README.md generated vendored Normal file
View file

@ -0,0 +1,11 @@
# cc/v3
Package CC is a C99 compiler front end.
Most of the functionality is now working.
Installation
$ go get -u modernc.org/cc/v3
Documentation: [godoc.org/modernc.org/cc/v3](http://godoc.org/modernc.org/cc/v3)

1026
vendor/modernc.org/cc/v3/abi.go generated vendored Normal file

File diff suppressed because it is too large Load diff

870
vendor/modernc.org/cc/v3/abi_platforms.go generated vendored Normal file
View file

@ -0,0 +1,870 @@
package cc
import "encoding/binary"
// abiByteOrders contains byte order information for known architectures.
var (
abiByteOrders = map[string]binary.ByteOrder{
"386": binary.LittleEndian,
"amd64": binary.LittleEndian,
"arm": binary.LittleEndian,
"arm64": binary.LittleEndian,
"loong64": binary.LittleEndian,
"ppc64le": binary.LittleEndian,
"riscv64": binary.LittleEndian,
"s390x": binary.BigEndian,
}
abiSignedChar = map[[2]string]bool{
{"freebsd", "arm"}: false,
{"freebsd", "arm64"}: false,
{"linux", "arm"}: false,
{"linux", "arm64"}: false,
{"linux", "ppc64le"}: false,
{"linux", "riscv64"}: false,
{"linux", "s390x"}: false,
{"netbsd", "arm"}: false,
{"openbsd", "arm64"}: false,
{"darwin", "amd64"}: true,
{"darwin", "arm64"}: true,
{"freebsd", "386"}: true,
{"freebsd", "amd64"}: true,
{"illumos", "amd64"}: true,
{"linux", "386"}: true,
{"linux", "amd64"}: true,
{"linux", "loong64"}: true,
{"netbsd", "386"}: true,
{"netbsd", "amd64"}: true,
{"openbsd", "386"}: true,
{"openbsd", "amd64"}: true,
{"windows", "386"}: true,
{"windows", "amd64"}: true,
{"windows", "arm64"}: true,
}
)
// abiTypes contains size and alignment information for known OS/arch pairs.
//
// The content is generated by ./cmd/cabi/main.c.
var abiTypes = map[[2]string]map[Kind]ABIType{
// Linux, generated by GCC 8.3.0
{"linux", "amd64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
Float32: {4, 4, 4},
Float32x: {8, 8, 8},
Float64: {8, 8, 8},
Float64x: {16, 16, 16},
Float128: {16, 16, 16},
Decimal32: {4, 4, 4},
Decimal64: {8, 8, 8},
Decimal128: {16, 16, 16},
},
{"linux", "386"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 4, 4},
ULongLong: {8, 4, 4},
Ptr: {4, 4, 4},
Function: {4, 4, 4},
Float: {4, 4, 4},
Double: {8, 4, 4},
LongDouble: {12, 4, 4},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 4, 4},
UInt64: {8, 4, 4},
Float32: {4, 4, 4},
Float32x: {8, 4, 4},
Float64: {8, 4, 4},
Float64x: {12, 4, 4},
Float128: {16, 16, 16},
Decimal32: {4, 4, 4},
Decimal64: {8, 8, 8},
Decimal128: {16, 16, 16},
},
{"linux", "arm"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {4, 4, 4},
Function: {4, 4, 4},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {8, 8, 8},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
},
{"linux", "arm64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
},
// $ x86_64-w64-mingw32-gcc main.c && wine a.exe
{"windows", "amd64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
Float32: {4, 4, 4},
Float32x: {8, 8, 8},
Float64: {8, 8, 8},
Float64x: {16, 16, 16},
Float128: {16, 16, 16},
Decimal32: {4, 4, 4},
Decimal64: {8, 8, 8},
Decimal128: {16, 16, 16},
},
// clang version 14.0.0 (https://github.com/llvm/llvm-project.git 329fda39c507e8740978d10458451dcdb21563be)
// Target: aarch64-w64-windows-gnu
{"windows", "arm64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {8, 8, 8},
},
// $ i686-w64-mingw32-gcc main.c && wine a.exe
{"windows", "386"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {4, 4, 4},
Function: {4, 4, 4},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {12, 4, 4},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Float32: {4, 4, 4},
Float32x: {8, 8, 8},
Float64: {8, 8, 8},
Float64x: {12, 4, 4},
Float128: {16, 16, 16},
Decimal32: {4, 4, 4},
Decimal64: {8, 8, 8},
Decimal128: {16, 16, 16},
},
{"darwin", "amd64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
},
{"darwin", "arm64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {8, 8, 8},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
},
// gcc (SUSE Linux) 7.5.0
{"linux", "s390x"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 8, 8},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 8, 8},
UInt128: {16, 8, 8},
Float32: {4, 4, 4},
Float32x: {8, 8, 8},
Float64: {8, 8, 8},
Float64x: {16, 8, 8},
Float128: {16, 8, 8},
Decimal32: {4, 4, 4},
Decimal64: {8, 8, 8},
Decimal128: {16, 8, 8},
},
// gcc (FreeBSD Ports Collection) 10.3.0
{"freebsd", "amd64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
},
// gcc (FreeBSD Ports Collection) 11.3.0
{"freebsd", "arm64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
},
// gcc (FreeBSD Ports Collection) 10.3.0
{"freebsd", "386"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 4, 4},
ULongLong: {8, 4, 4},
Ptr: {4, 4, 4},
Function: {4, 4, 4},
Float: {4, 4, 4},
Double: {8, 4, 4},
LongDouble: {12, 4, 4},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 4, 4},
UInt64: {8, 4, 4},
Float32: {4, 4, 4},
Float32x: {8, 4, 4},
Float64: {8, 4, 4},
Float64x: {16, 16, 16},
Float128: {16, 16, 16},
},
// gcc (FreeBSD Ports Collection) 11.3.0
{"freebsd", "arm"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {4, 4, 4},
Function: {4, 4, 4},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {8, 8, 8},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
},
// gcc (GCC) 8.4.0
{"openbsd", "amd64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
Float32: {4, 4, 4},
Float32x: {8, 8, 8},
Float64: {8, 8, 8},
Float64x: {16, 16, 16},
Float128: {16, 16, 16},
},
// OpenBSD clang version 13.0.0
{"openbsd", "arm64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
},
// OpenBSD clang version 13.0.0
{"openbsd", "386"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 4, 4},
ULongLong: {8, 4, 4},
Ptr: {4, 4, 4},
Function: {4, 4, 4},
Float: {4, 4, 4},
Double: {8, 4, 4},
LongDouble: {12, 4, 4},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 4, 4},
UInt64: {8, 4, 4},
},
// gcc (GCC) 10.3.0
{"netbsd", "amd64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
},
// gcc (nb4 20200810) 7.5.0
{"netbsd", "arm"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {4, 4, 4},
Function: {4, 4, 4},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {8, 8, 8},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
},
// gcc (nb4 20200810) 7.5.0
{"netbsd", "386"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {4, 4, 4},
ULong: {4, 4, 4},
LongLong: {8, 4, 4},
ULongLong: {8, 4, 4},
Ptr: {4, 4, 4},
Function: {4, 4, 4},
Float: {4, 4, 4},
Double: {8, 4, 4},
LongDouble: {12, 4, 4},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 4, 4},
UInt64: {8, 4, 4},
Float32: {4, 4, 4},
Float32x: {8, 4, 4},
Float64: {8, 4, 4},
Float64x: {12, 4, 4},
Float128: {16, 16, 16},
},
// gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0
{"linux", "riscv64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
Float32: {4, 4, 4},
Float32x: {8, 8, 8},
Float64: {8, 8, 8},
Float64x: {16, 16, 16},
Float128: {16, 16, 16},
},
// gcc (Debian 10.2.1-6) 10.2.1 20210110
{"linux", "ppc64le"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
Float32: {4, 4, 4},
Float32x: {8, 8, 8},
Float64: {8, 8, 8},
Float64x: {16, 16, 16},
Float128: {16, 16, 16},
Decimal32: {4, 4, 4},
Decimal64: {8, 8, 8},
Decimal128: {16, 16, 16},
},
// gcc (Loongnix 8.3.0-6.lnd.vec.33) 8.3.0
{"linux", "loong64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
Float32: {4, 4, 4},
Float32x: {8, 8, 8},
Float64: {8, 8, 8},
Float64x: {16, 16, 16},
Float128: {16, 16, 16},
Decimal32: {4, 4, 4},
Decimal64: {8, 8, 8},
Decimal128: {16, 16, 16},
},
// gcc (OmniOS 151044/12.2.0-il-0) 12.2.0
{"illumos", "amd64"}: {
Void: {1, 1, 1},
Bool: {1, 1, 1},
Char: {1, 1, 1},
SChar: {1, 1, 1},
UChar: {1, 1, 1},
Short: {2, 2, 2},
UShort: {2, 2, 2},
Enum: {4, 4, 4},
Int: {4, 4, 4},
UInt: {4, 4, 4},
Long: {8, 8, 8},
ULong: {8, 8, 8},
LongLong: {8, 8, 8},
ULongLong: {8, 8, 8},
Ptr: {8, 8, 8},
Function: {8, 8, 8},
Float: {4, 4, 4},
Double: {8, 8, 8},
LongDouble: {16, 16, 16},
Int8: {1, 1, 1},
UInt8: {1, 1, 1},
Int16: {2, 2, 2},
UInt16: {2, 2, 2},
Int32: {4, 4, 4},
UInt32: {4, 4, 4},
Int64: {8, 8, 8},
UInt64: {8, 8, 8},
Int128: {16, 16, 16},
UInt128: {16, 16, 16},
Float32: {4, 4, 4},
Float32x: {8, 8, 8},
Float64: {8, 8, 8},
Float64x: {16, 16, 16},
Float128: {16, 16, 16},
},
}

5232
vendor/modernc.org/cc/v3/ast.go generated vendored Normal file

File diff suppressed because it is too large Load diff

1187
vendor/modernc.org/cc/v3/ast2.go generated vendored Normal file

File diff suppressed because it is too large Load diff

1057
vendor/modernc.org/cc/v3/cc.go generated vendored Normal file

File diff suppressed because it is too large Load diff

5276
vendor/modernc.org/cc/v3/check.go generated vendored Normal file

File diff suppressed because it is too large Load diff

3101
vendor/modernc.org/cc/v3/cpp.go generated vendored Normal file

File diff suppressed because it is too large Load diff

84
vendor/modernc.org/cc/v3/enum.go generated vendored Normal file
View file

@ -0,0 +1,84 @@
// Copyright 2019 The CC Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package cc // import "modernc.org/cc/v3"
// Values of Kind
const (
Invalid Kind = iota
Array // T[]
Bool // _Bool
Char // char
ComplexChar // complex char
ComplexDouble // complex double
ComplexFloat // complex float
ComplexInt // complex int
ComplexLong // complex long
ComplexLongDouble // complex long double
ComplexLongLong // complex long long
ComplexShort // complex short
ComplexUInt // complex unsigned
ComplexULong // complex unsigned long
ComplexULongLong // complex unsigned long long
ComplexUShort // complex shor
Decimal128 // _Decimal128
Decimal32 // _Decimal32
Decimal64 // _Decimal64
Double // double
Enum // enum
Float // float
Float128 // _Float128
Float32 // _Float32
Float32x // _Float32x
Float64 // _Float64
Float64x // _Float64x
Function // function
Int // int
Int8 // __int8
Int16 // __int16
Int32 // __int32
Int64 // __int64
Int128 // __int128
Long // long
LongDouble // long double
LongLong // long long
Ptr // pointer
SChar // signed char
Short // short
Struct // struct
TypedefName // typedefname
UChar // unsigned char
UInt // unsigned
UInt8 // unsigned __int8
UInt16 // unsigned __int16
UInt32 // unsigned __int32
UInt64 // unsigned __int64
UInt128 // unsigned __int128
ULong // unsigned long
ULongLong // unsigned long long
UShort // unsigned short
Union // union
Void // void
Vector // vector
typeofExpr
typeofType
maxKind
)
// Values of Linkage
const (
None Linkage = iota
Internal
External
)
// Values of StorageClass
const (
Static StorageClass = iota
Automatic
Allocated
)

156
vendor/modernc.org/cc/v3/filesystem.go generated vendored Normal file
View file

@ -0,0 +1,156 @@
// Copyright 2019 The CC Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package cc
import (
"io"
"io/ioutil"
"os"
"path"
"strings"
"time"
)
// Filesystem abstraction used in CC. The underlying value must be comparable (e.g. pointer) to be used in map keys.
type Filesystem interface {
// Stat is an analog of os.Stat, but also accepts a flag to indicate a system include (<file.h>).
Stat(path string, sys bool) (os.FileInfo, error)
// Open is an analog of os.Open, but also accepts a flag to indicate a system include (<file.h>).
Open(path string, sys bool) (io.ReadCloser, error)
}
// LocalFS returns a local filesystem implementation.
func LocalFS() Filesystem {
return localFS{}
}
type localFS struct{}
// Stat implements Filesystem.
func (localFS) Stat(path string, sys bool) (os.FileInfo, error) {
return os.Stat(path)
}
// Open implements Filesystem.
func (localFS) Open(path string, sys bool) (io.ReadCloser, error) {
return os.Open(path)
}
// WorkingDir is a filesystem implementation that resolves paths relative to a given directory.
// If filesystem is not specified, the local one will be used.
func WorkingDir(wd string, fs Filesystem) Filesystem {
if fs == nil {
fs = LocalFS()
}
return workDir{fs: fs, wd: wd}
}
type workDir struct {
fs Filesystem
wd string
}
// Stat implements Filesystem.
func (fs workDir) Stat(fname string, sys bool) (os.FileInfo, error) {
if !path.IsAbs(fname) {
fname = path.Join(fs.wd, fname)
}
return fs.fs.Stat(fname, sys)
}
// Open implements Filesystem.
func (fs workDir) Open(fname string, sys bool) (io.ReadCloser, error) {
if !path.IsAbs(fname) {
fname = path.Join(fs.wd, fname)
}
return fs.fs.Open(fname, sys)
}
// Overlay is a filesystem implementation that first check if the file is available in the primary FS
// and if not, falls back to a secondary FS.
func Overlay(pri, sec Filesystem) Filesystem {
return overlayFS{pri: pri, sec: sec}
}
type overlayFS struct {
pri, sec Filesystem
}
// Stat implements Filesystem.
func (fs overlayFS) Stat(path string, sys bool) (os.FileInfo, error) {
st, err := fs.pri.Stat(path, sys)
if err == nil || !os.IsNotExist(err) {
return st, err
}
return fs.sec.Stat(path, sys)
}
// Open implements Filesystem.
func (fs overlayFS) Open(path string, sys bool) (io.ReadCloser, error) {
f, err := fs.pri.Open(path, sys)
if err == nil || !os.IsNotExist(err) {
return f, err
}
return fs.sec.Open(path, sys)
}
// StaticFS implements filesystem interface by serving string values form the provided map.
func StaticFS(files map[string]string) Filesystem {
return &staticFS{m: files, ts: time.Now()}
}
type staticFS struct {
ts time.Time
m map[string]string
}
// Stat implements Filesystem.
func (fs *staticFS) Stat(path string, sys bool) (os.FileInfo, error) {
v, ok := fs.m[path]
if !ok {
return nil, &os.PathError{"stat", path, os.ErrNotExist}
}
return staticFileInfo{name: path, size: int64(len(v)), mode: 0, mod: fs.ts}, nil
}
// Open implements Filesystem.
func (fs *staticFS) Open(path string, sys bool) (io.ReadCloser, error) {
v, ok := fs.m[path]
if !ok {
return nil, &os.PathError{"open", path, os.ErrNotExist}
}
return ioutil.NopCloser(strings.NewReader(v)), nil
}
type staticFileInfo struct {
name string
size int64
mode os.FileMode
mod time.Time
}
func (fi staticFileInfo) Name() string {
return fi.name
}
func (fi staticFileInfo) Size() int64 {
return fi.size
}
func (fi staticFileInfo) Mode() os.FileMode {
return fi.mode
}
func (fi staticFileInfo) ModTime() time.Time {
return fi.mod
}
func (fi staticFileInfo) IsDir() bool {
return fi.mode.IsDir()
}
func (fi staticFileInfo) Sys() interface{} {
return fi
}

632
vendor/modernc.org/cc/v3/inspect.go generated vendored Normal file
View file

@ -0,0 +1,632 @@
// Copyright 2020 The CC Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package cc // import "modernc.org/cc/v3"
// Inspect inspects AST node trees.
//
// If n is a non-terminal node, f(n, true) is called first. Next, f is called
// recursively for each of n's non-nil non-terminal children nodes, if any, in
// alphabetical order. Next, all n's terminal nodes, if any, are visited in
// the numeric order of their suffixes (Token, Token2, Token3, ...). Finally,
// f(n, false) is invoked.
//
// If n a terminal node, of type *Token, f(n, <unspecified boolean value> is
// called once.
//
// Inspect stops when any invocation of f returns false.
func Inspect(n Node, f func(Node, bool) bool) {
see(n, f)
}
func see(n Node, f func(Node, bool) bool) bool {
switch x := n.(type) {
case *AbstractDeclarator:
return x == nil || f(x, true) &&
see(x.DirectAbstractDeclarator, f) &&
see(x.Pointer, f) &&
f(x, false)
case *AdditiveExpression:
return x == nil || f(x, true) &&
see(x.AdditiveExpression, f) &&
see(x.MultiplicativeExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *AlignmentSpecifier:
return x == nil || f(x, true) &&
see(x.ConstantExpression, f) &&
see(x.TypeName, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *AndExpression:
return x == nil || f(x, true) &&
see(x.AndExpression, f) &&
see(x.EqualityExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *ArgumentExpressionList:
return x == nil || f(x, true) &&
see(x.ArgumentExpressionList, f) &&
see(x.AssignmentExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *Asm:
return x == nil || f(x, true) &&
see(x.AsmArgList, f) &&
see(x.AsmQualifierList, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
see(&x.Token4, f) &&
f(x, false)
case *AsmArgList:
return x == nil || f(x, true) &&
see(x.AsmArgList, f) &&
see(x.AsmExpressionList, f) &&
see(&x.Token, f) &&
f(x, false)
case *AsmExpressionList:
return x == nil || f(x, true) &&
see(x.AsmExpressionList, f) &&
see(x.AsmIndex, f) &&
see(x.AssignmentExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *AsmFunctionDefinition:
return x == nil || f(x, true) &&
see(x.AsmStatement, f) &&
see(x.DeclarationSpecifiers, f) &&
see(x.Declarator, f) &&
f(x, false)
case *AsmIndex:
return x == nil || f(x, true) &&
see(x.Expression, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *AsmQualifier:
return x == nil || f(x, true) &&
see(&x.Token, f) &&
f(x, false)
case *AsmQualifierList:
return x == nil || f(x, true) &&
see(x.AsmQualifier, f) &&
see(x.AsmQualifierList, f) &&
f(x, false)
case *AsmStatement:
return x == nil || f(x, true) &&
see(x.Asm, f) &&
see(x.AttributeSpecifierList, f) &&
see(&x.Token, f) &&
f(x, false)
case *AssignmentExpression:
return x == nil || f(x, true) &&
see(x.AssignmentExpression, f) &&
see(x.ConditionalExpression, f) &&
see(x.UnaryExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *AtomicTypeSpecifier:
return x == nil || f(x, true) &&
see(x.TypeName, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *AttributeSpecifier:
return x == nil || f(x, true) &&
see(x.AttributeValueList, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
see(&x.Token4, f) &&
see(&x.Token5, f) &&
f(x, false)
case *AttributeSpecifierList:
return x == nil || f(x, true) &&
see(x.AttributeSpecifier, f) &&
see(x.AttributeSpecifierList, f) &&
f(x, false)
case *AttributeValue:
return x == nil || f(x, true) &&
see(x.ExpressionList, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *AttributeValueList:
return x == nil || f(x, true) &&
see(x.AttributeValue, f) &&
see(x.AttributeValueList, f) &&
see(&x.Token, f) &&
f(x, false)
case *BlockItem:
return x == nil || f(x, true) &&
see(x.CompoundStatement, f) &&
see(x.Declaration, f) &&
see(x.DeclarationSpecifiers, f) &&
see(x.Declarator, f) &&
see(x.LabelDeclaration, f) &&
see(x.PragmaSTDC, f) &&
see(x.Statement, f) &&
f(x, false)
case *BlockItemList:
return x == nil || f(x, true) &&
see(x.BlockItem, f) &&
see(x.BlockItemList, f) &&
f(x, false)
case *CastExpression:
return x == nil || f(x, true) &&
see(x.CastExpression, f) &&
see(x.TypeName, f) &&
see(x.UnaryExpression, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *CompoundStatement:
return x == nil || f(x, true) &&
see(x.BlockItemList, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *ConditionalExpression:
return x == nil || f(x, true) &&
see(x.ConditionalExpression, f) &&
see(x.Expression, f) &&
see(x.LogicalOrExpression, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *ConstantExpression:
return x == nil || f(x, true) &&
see(x.ConditionalExpression, f) &&
f(x, false)
case *Declaration:
return x == nil || f(x, true) &&
see(x.DeclarationSpecifiers, f) &&
see(x.InitDeclaratorList, f) &&
see(&x.Token, f) &&
f(x, false)
case *DeclarationList:
return x == nil || f(x, true) &&
see(x.Declaration, f) &&
see(x.DeclarationList, f) &&
f(x, false)
case *DeclarationSpecifiers:
return x == nil || f(x, true) &&
see(x.AlignmentSpecifier, f) &&
see(x.AttributeSpecifier, f) &&
see(x.DeclarationSpecifiers, f) &&
see(x.FunctionSpecifier, f) &&
see(x.StorageClassSpecifier, f) &&
see(x.TypeQualifier, f) &&
see(x.TypeSpecifier, f) &&
f(x, false)
case *Declarator:
return x == nil || f(x, true) &&
see(x.AttributeSpecifierList, f) &&
see(x.DirectDeclarator, f) &&
see(x.Pointer, f) &&
f(x, false)
case *Designation:
return x == nil || f(x, true) &&
see(x.DesignatorList, f) &&
see(&x.Token, f) &&
f(x, false)
case *Designator:
return x == nil || f(x, true) &&
see(x.ConstantExpression, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *DesignatorList:
return x == nil || f(x, true) &&
see(x.Designator, f) &&
see(x.DesignatorList, f) &&
f(x, false)
case *DirectAbstractDeclarator:
return x == nil || f(x, true) &&
see(x.AbstractDeclarator, f) &&
see(x.AssignmentExpression, f) &&
see(x.DirectAbstractDeclarator, f) &&
see(x.ParameterTypeList, f) &&
see(x.TypeQualifiers, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *DirectDeclarator:
return x == nil || f(x, true) &&
see(x.Asm, f) &&
see(x.AssignmentExpression, f) &&
see(x.AttributeSpecifierList, f) &&
see(x.Declarator, f) &&
see(x.DirectDeclarator, f) &&
see(x.IdentifierList, f) &&
see(x.ParameterTypeList, f) &&
see(x.TypeQualifiers, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *EnumSpecifier:
return x == nil || f(x, true) &&
see(x.AttributeSpecifierList, f) &&
see(x.EnumeratorList, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
see(&x.Token4, f) &&
see(&x.Token5, f) &&
f(x, false)
case *Enumerator:
return x == nil || f(x, true) &&
see(x.AttributeSpecifierList, f) &&
see(x.ConstantExpression, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *EnumeratorList:
return x == nil || f(x, true) &&
see(x.Enumerator, f) &&
see(x.EnumeratorList, f) &&
see(&x.Token, f) &&
f(x, false)
case *EqualityExpression:
return x == nil || f(x, true) &&
see(x.EqualityExpression, f) &&
see(x.RelationalExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *ExclusiveOrExpression:
return x == nil || f(x, true) &&
see(x.AndExpression, f) &&
see(x.ExclusiveOrExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *Expression:
return x == nil || f(x, true) &&
see(x.AssignmentExpression, f) &&
see(x.Expression, f) &&
see(&x.Token, f) &&
f(x, false)
case *ExpressionList:
return x == nil || f(x, true) &&
see(x.AssignmentExpression, f) &&
see(x.ExpressionList, f) &&
see(&x.Token, f) &&
f(x, false)
case *ExpressionStatement:
return x == nil || f(x, true) &&
see(x.AttributeSpecifierList, f) &&
see(x.Expression, f) &&
see(&x.Token, f) &&
f(x, false)
case *ExternalDeclaration:
return x == nil || f(x, true) &&
see(x.AsmFunctionDefinition, f) &&
see(x.AsmStatement, f) &&
see(x.Declaration, f) &&
see(x.FunctionDefinition, f) &&
see(x.PragmaSTDC, f) &&
see(&x.Token, f) &&
f(x, false)
case *FunctionDefinition:
return x == nil || f(x, true) &&
see(x.CompoundStatement, f) &&
see(x.DeclarationList, f) &&
see(x.DeclarationSpecifiers, f) &&
see(x.Declarator, f) &&
f(x, false)
case *FunctionSpecifier:
return x == nil || f(x, true) &&
see(&x.Token, f) &&
f(x, false)
case *IdentifierList:
return x == nil || f(x, true) &&
see(x.IdentifierList, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *InclusiveOrExpression:
return x == nil || f(x, true) &&
see(x.ExclusiveOrExpression, f) &&
see(x.InclusiveOrExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *InitDeclarator:
return x == nil || f(x, true) &&
see(x.AttributeSpecifierList, f) &&
see(x.Declarator, f) &&
see(x.Initializer, f) &&
see(&x.Token, f) &&
f(x, false)
case *InitDeclaratorList:
return x == nil || f(x, true) &&
see(x.AttributeSpecifierList, f) &&
see(x.InitDeclarator, f) &&
see(x.InitDeclaratorList, f) &&
see(&x.Token, f) &&
f(x, false)
case *Initializer:
return x == nil || f(x, true) &&
see(x.AssignmentExpression, f) &&
see(x.InitializerList, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *InitializerList:
return x == nil || f(x, true) &&
see(x.Designation, f) &&
see(x.Initializer, f) &&
see(x.InitializerList, f) &&
see(&x.Token, f) &&
f(x, false)
case *IterationStatement:
return x == nil || f(x, true) &&
see(x.Declaration, f) &&
see(x.Expression, f) &&
see(x.Expression2, f) &&
see(x.Expression3, f) &&
see(x.Statement, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
see(&x.Token4, f) &&
see(&x.Token5, f) &&
f(x, false)
case *JumpStatement:
return x == nil || f(x, true) &&
see(x.Expression, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *LabelDeclaration:
return x == nil || f(x, true) &&
see(x.IdentifierList, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *LabeledStatement:
return x == nil || f(x, true) &&
see(x.AttributeSpecifierList, f) &&
see(x.ConstantExpression, f) &&
see(x.ConstantExpression2, f) &&
see(x.Statement, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *LogicalAndExpression:
return x == nil || f(x, true) &&
see(x.InclusiveOrExpression, f) &&
see(x.LogicalAndExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *LogicalOrExpression:
return x == nil || f(x, true) &&
see(x.LogicalAndExpression, f) &&
see(x.LogicalOrExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *MultiplicativeExpression:
return x == nil || f(x, true) &&
see(x.CastExpression, f) &&
see(x.MultiplicativeExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *ParameterDeclaration:
return x == nil || f(x, true) &&
see(x.AbstractDeclarator, f) &&
see(x.AttributeSpecifierList, f) &&
see(x.DeclarationSpecifiers, f) &&
see(x.Declarator, f) &&
f(x, false)
case *ParameterList:
return x == nil || f(x, true) &&
see(x.ParameterDeclaration, f) &&
see(x.ParameterList, f) &&
see(&x.Token, f) &&
f(x, false)
case *ParameterTypeList:
return x == nil || f(x, true) &&
see(x.ParameterList, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *Pointer:
return x == nil || f(x, true) &&
see(x.Pointer, f) &&
see(x.TypeQualifiers, f) &&
see(&x.Token, f) &&
f(x, false)
case *PostfixExpression:
return x == nil || f(x, true) &&
see(x.ArgumentExpressionList, f) &&
see(x.Expression, f) &&
see(x.InitializerList, f) &&
see(x.PostfixExpression, f) &&
see(x.PrimaryExpression, f) &&
see(x.TypeName, f) &&
see(x.TypeName2, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
see(&x.Token4, f) &&
see(&x.Token5, f) &&
f(x, false)
case *PragmaSTDC:
return x == nil || f(x, true) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
see(&x.Token4, f) &&
f(x, false)
case *PrimaryExpression:
return x == nil || f(x, true) &&
see(x.CompoundStatement, f) &&
see(x.Expression, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
f(x, false)
case *RelationalExpression:
return x == nil || f(x, true) &&
see(x.RelationalExpression, f) &&
see(x.ShiftExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *SelectionStatement:
return x == nil || f(x, true) &&
see(x.Expression, f) &&
see(x.Statement, f) &&
see(x.Statement2, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
see(&x.Token4, f) &&
f(x, false)
case *ShiftExpression:
return x == nil || f(x, true) &&
see(x.AdditiveExpression, f) &&
see(x.ShiftExpression, f) &&
see(&x.Token, f) &&
f(x, false)
case *SpecifierQualifierList:
return x == nil || f(x, true) &&
see(x.AlignmentSpecifier, f) &&
see(x.AttributeSpecifier, f) &&
see(x.SpecifierQualifierList, f) &&
see(x.TypeQualifier, f) &&
see(x.TypeSpecifier, f) &&
f(x, false)
case *Statement:
return x == nil || f(x, true) &&
see(x.AsmStatement, f) &&
see(x.CompoundStatement, f) &&
see(x.ExpressionStatement, f) &&
see(x.IterationStatement, f) &&
see(x.JumpStatement, f) &&
see(x.LabeledStatement, f) &&
see(x.SelectionStatement, f) &&
f(x, false)
case *StorageClassSpecifier:
return x == nil || f(x, true) &&
see(&x.Token, f) &&
f(x, false)
case *StructDeclaration:
return x == nil || f(x, true) &&
see(x.SpecifierQualifierList, f) &&
see(x.StructDeclaratorList, f) &&
see(&x.Token, f) &&
f(x, false)
case *StructDeclarationList:
return x == nil || f(x, true) &&
see(x.StructDeclaration, f) &&
see(x.StructDeclarationList, f) &&
f(x, false)
case *StructDeclarator:
return x == nil || f(x, true) &&
see(x.AttributeSpecifierList, f) &&
see(x.ConstantExpression, f) &&
see(x.Declarator, f) &&
see(&x.Token, f) &&
f(x, false)
case *StructDeclaratorList:
return x == nil || f(x, true) &&
see(x.StructDeclarator, f) &&
see(x.StructDeclaratorList, f) &&
see(&x.Token, f) &&
f(x, false)
case *StructOrUnion:
return x == nil || f(x, true) &&
see(&x.Token, f) &&
f(x, false)
case *StructOrUnionSpecifier:
return x == nil || f(x, true) &&
see(x.AttributeSpecifierList, f) &&
see(x.StructDeclarationList, f) &&
see(x.StructOrUnion, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *TranslationUnit:
return x == nil || f(x, true) &&
see(x.ExternalDeclaration, f) &&
see(x.TranslationUnit, f) &&
f(x, false)
case *TypeName:
return x == nil || f(x, true) &&
see(x.AbstractDeclarator, f) &&
see(x.SpecifierQualifierList, f) &&
f(x, false)
case *TypeQualifier:
return x == nil || f(x, true) &&
see(&x.Token, f) &&
f(x, false)
case *TypeQualifiers:
return x == nil || f(x, true) &&
see(x.AttributeSpecifier, f) &&
see(x.TypeQualifier, f) &&
see(x.TypeQualifiers, f) &&
f(x, false)
case *TypeSpecifier:
return x == nil || f(x, true) &&
see(x.AtomicTypeSpecifier, f) &&
see(x.EnumSpecifier, f) &&
see(x.Expression, f) &&
see(x.StructOrUnionSpecifier, f) &&
see(x.TypeName, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *UnaryExpression:
return x == nil || f(x, true) &&
see(x.CastExpression, f) &&
see(x.PostfixExpression, f) &&
see(x.TypeName, f) &&
see(x.UnaryExpression, f) &&
see(&x.Token, f) &&
see(&x.Token2, f) &&
see(&x.Token2, f) &&
see(&x.Token3, f) &&
f(x, false)
case *Token:
return f(x, true)
default:
panic(todo("internal error: %T", x))
}
}

1555
vendor/modernc.org/cc/v3/lexer.go generated vendored Normal file

File diff suppressed because it is too large Load diff

97
vendor/modernc.org/cc/v3/lexer.l generated vendored Normal file
View file

@ -0,0 +1,97 @@
%{
// Copyright 2019 The CC Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
%}
%yyc c
%yyn c = s.next()
%yym s.mark = len(s.charBuf)
%{
package cc // import "modernc.org/cc/v3"
func (s *scanner) scan() (r rune) {
%}
c-char [^'\n\x80\\]|{escape-sequence}
c-char-sequence {c-char}+
character-constant '{c-char-sequence}'
comment "/*"([^*\x80]|\*+[^*/\x80])*\*+\/
comment-not-terminated "/*"([^*\x80]|\*+[^*/\x80])*(\*+)?\n\x80
digit [0-9]
escape-sequence {simple-sequence}|{octal-escape-sequence}|{hexadecimal-escape-sequence}|{universal-character-name}
hex-quad {hexadecimal-digit}{hexadecimal-digit}{hexadecimal-digit}{hexadecimal-digit}
hexadecimal-digit [0-9a-fA-F]
hexadecimal-escape-sequence \\x{hexadecimal-digit}+
identifier {identifier-nondigit}({identifier-nondigit}|{digit}|"$")*
identifier-nondigit {nondigit}|"$"|{universal-character-name}
line-comment "//"[^\n\x80]*
nondigit [_a-zA-Z\x81]
octal-digit [0-7]
octal-escape-sequence \\{octal-digit}{octal-digit}?{octal-digit}?
pp-number ({digit}|\.{digit})({digit}|{identifier-nondigit}|[eEpP]{sign}|\.)*
s-char [^\x22\n\x80\\]|{escape-sequence}
s-char-sequence {s-char}+
sign [-+]
simple-sequence \\['\x22?\\abefnrtv]
string-literal \x22{s-char-sequence}?\x22
universal-character-name \\u{hex-quad}|\\U{hex-quad}{hex-quad}
white-space [ \t\f\v]
%%
c := s.initScan()
({white-space}|{comment})*{line-comment} |
({white-space}|{comment})+{line-comment}?
return ' '
(({white-space}|{comment})*{comment-not-terminated})+
return s.unterminatedComment()
"!=" return NEQ
"##" return PPPASTE
"%:" return '#'
"%:%:" return PPPASTE
"%=" return MODASSIGN
"%>" return '}'
"&&" return ANDAND
"&=" return ANDASSIGN
"*=" return MULASSIGN
"++" return INC
"+=" return ADDASSIGN
"--" return DEC
"-=" return SUBASSIGN
"->" return ARROW
"..." return DDD
"/=" return DIVASSIGN
":>" return ']'
"<%" return '{'
"<:" return '['
"<<" return LSH
"<<=" return LSHASSIGN
"<=" return LEQ
"==" return EQ
">=" return GEQ
">>" return RSH
">>=" return RSHASSIGN
"^=" return XORASSIGN
"|=" return ORASSIGN
"||" return OROR
L{string-literal} return LONGSTRINGLITERAL
L{character-constant} return LONGCHARCONST
{character-constant} return CHARCONST
{identifier} return IDENTIFIER
{pp-number} return PPNUMBER
{string-literal} return STRINGLITERAL
\r?\n return '\n'
%%
if c, ok := s.abort(); ok {
return rune(c)
}
goto yyAction
}

1337
vendor/modernc.org/cc/v3/operand.go generated vendored Normal file

File diff suppressed because it is too large Load diff

4311
vendor/modernc.org/cc/v3/parser.go generated vendored Normal file

File diff suppressed because it is too large Load diff

1033
vendor/modernc.org/cc/v3/parser.yy generated vendored Normal file

File diff suppressed because it is too large Load diff

1266
vendor/modernc.org/cc/v3/scanner.go generated vendored Normal file

File diff suppressed because it is too large Load diff

99
vendor/modernc.org/cc/v3/stringer.go generated vendored Normal file
View file

@ -0,0 +1,99 @@
// Code generated by "stringer -output stringer.go -linecomment -type=Kind,Linkage"; DO NOT EDIT.
package cc
import "strconv"
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[Invalid-0]
_ = x[Array-1]
_ = x[Bool-2]
_ = x[Char-3]
_ = x[ComplexChar-4]
_ = x[ComplexDouble-5]
_ = x[ComplexFloat-6]
_ = x[ComplexInt-7]
_ = x[ComplexLong-8]
_ = x[ComplexLongDouble-9]
_ = x[ComplexLongLong-10]
_ = x[ComplexShort-11]
_ = x[ComplexUInt-12]
_ = x[ComplexULong-13]
_ = x[ComplexULongLong-14]
_ = x[ComplexUShort-15]
_ = x[Decimal128-16]
_ = x[Decimal32-17]
_ = x[Decimal64-18]
_ = x[Double-19]
_ = x[Enum-20]
_ = x[Float-21]
_ = x[Float128-22]
_ = x[Float32-23]
_ = x[Float32x-24]
_ = x[Float64-25]
_ = x[Float64x-26]
_ = x[Function-27]
_ = x[Int-28]
_ = x[Int8-29]
_ = x[Int16-30]
_ = x[Int32-31]
_ = x[Int64-32]
_ = x[Int128-33]
_ = x[Long-34]
_ = x[LongDouble-35]
_ = x[LongLong-36]
_ = x[Ptr-37]
_ = x[SChar-38]
_ = x[Short-39]
_ = x[Struct-40]
_ = x[TypedefName-41]
_ = x[UChar-42]
_ = x[UInt-43]
_ = x[UInt8-44]
_ = x[UInt16-45]
_ = x[UInt32-46]
_ = x[UInt64-47]
_ = x[UInt128-48]
_ = x[ULong-49]
_ = x[ULongLong-50]
_ = x[UShort-51]
_ = x[Union-52]
_ = x[Void-53]
_ = x[Vector-54]
_ = x[typeofExpr-55]
_ = x[typeofType-56]
_ = x[maxKind-57]
}
const _Kind_name = "InvalidT[]_Boolcharcomplex charcomplex doublecomplex floatcomplex intcomplex longcomplex long doublecomplex long longcomplex shortcomplex unsignedcomplex unsigned longcomplex unsigned long longcomplex shor_Decimal128_Decimal32_Decimal64doubleenumfloat_Float128_Float32_Float32x_Float64_Float64xfunctionint__int8__int16__int32__int64__int128longlong doublelong longpointersigned charshortstructtypedefnameunsigned charunsignedunsigned __int8unsigned __int16unsigned __int32unsigned __int64unsigned __int128unsigned longunsigned long longunsigned shortunionvoidvectortypeofExprtypeofTypemaxKind"
var _Kind_index = [...]uint16{0, 7, 10, 15, 19, 31, 45, 58, 69, 81, 100, 117, 130, 146, 167, 193, 205, 216, 226, 236, 242, 246, 251, 260, 268, 277, 285, 294, 302, 305, 311, 318, 325, 332, 340, 344, 355, 364, 371, 382, 387, 393, 404, 417, 425, 440, 456, 472, 488, 505, 518, 536, 550, 555, 559, 565, 575, 585, 592}
func (i Kind) String() string {
if i >= Kind(len(_Kind_index)-1) {
return "Kind(" + strconv.FormatInt(int64(i), 10) + ")"
}
return _Kind_name[_Kind_index[i]:_Kind_index[i+1]]
}
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[None-0]
_ = x[Internal-1]
_ = x[External-2]
}
const _Linkage_name = "NoneInternalExternal"
var _Linkage_index = [...]uint8{0, 4, 12, 20}
func (i Linkage) String() string {
if i < 0 || i >= Linkage(len(_Linkage_index)-1) {
return "Linkage(" + strconv.FormatInt(int64(i), 10) + ")"
}
return _Linkage_name[_Linkage_index[i]:_Linkage_index[i+1]]
}

3266
vendor/modernc.org/cc/v3/type.go generated vendored Normal file

File diff suppressed because it is too large Load diff

4
vendor/modernc.org/cc/v3/unconvert.sh generated vendored Normal file
View file

@ -0,0 +1,4 @@
until unconvert -fastmath . &> /dev/null
do
unconvert -fastmath -apply . &> /dev/null
done