Full Code of cznic/cc for AI

master d673e9b70d4d cached
7196 files
42.1 MB
11.5M tokens
30861 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (45,788K chars total). Download the full file to get everything.
Repository: cznic/cc
Branch: master
Commit: d673e9b70d4d
Files: 7196
Total size: 42.1 MB

Directory structure:
gitextract_7n8tim4r/

├── AUTHORS
├── CONTRIBUTORS
├── LICENSE
├── Makefile
├── README.md
├── all_test.go
├── ast.go
├── ast2.go
├── ast_test.go
├── cc.go
├── cpp.go
├── encoding.go
├── etc.go
├── generate.go
├── global.go
├── kind_string.go
├── lexer.go
├── linkage_string.go
├── model.go
├── namespace_string.go
├── parser.go
├── parser.y
├── parser.yy
├── scanner.go
├── scanner.l
├── scope_string.go
├── testdata/
│   ├── anon.c
│   ├── arith-1.c
│   ├── arith-1.h
│   ├── array.c
│   ├── empty.c
│   ├── enum.c
│   ├── example-6.10.3.3-4.h
│   ├── example-6.10.3.5-3.h
│   ├── example-6.10.3.5-4.h
│   ├── example-6.10.3.5-5.h
│   ├── example-6.10.3.5-6.h
│   ├── example-6.10.3.5-7.h
│   ├── func.c
│   ├── funcfunc.c
│   ├── gcc-6.3.0/
│   │   ├── COPYING
│   │   ├── COPYING.LIB
│   │   ├── COPYING.RUNTIME
│   │   ├── COPYING3
│   │   ├── COPYING3.LIB
│   │   ├── README
│   │   ├── gcc/
│   │   │   └── testsuite/
│   │   │       └── gcc.c-torture/
│   │   │           ├── compat/
│   │   │           │   ├── strct-layout.c
│   │   │           │   ├── struct-align.c
│   │   │           │   ├── struct-big.c
│   │   │           │   ├── struct-i.c
│   │   │           │   ├── struct-ic.c
│   │   │           │   ├── struct-ii.c
│   │   │           │   └── struct-ret-1.c
│   │   │           ├── compile/
│   │   │           │   ├── 20000105-1.c
│   │   │           │   ├── 20000105-2.c
│   │   │           │   ├── 20000120-1.c
│   │   │           │   ├── 20000120-2.c
│   │   │           │   ├── 20000127-1.c
│   │   │           │   ├── 20000211-1.c
│   │   │           │   ├── 20000211-3.c
│   │   │           │   ├── 20000224-1.c
│   │   │           │   ├── 20000314-1.c
│   │   │           │   ├── 20000314-2.c
│   │   │           │   ├── 20000319-1.c
│   │   │           │   ├── 20000326-1.c
│   │   │           │   ├── 20000326-2.c
│   │   │           │   ├── 20000329-1.c
│   │   │           │   ├── 20000403-1.c
│   │   │           │   ├── 20000403-2.c
│   │   │           │   ├── 20000405-1.c
│   │   │           │   ├── 20000405-2.c
│   │   │           │   ├── 20000405-3.c
│   │   │           │   ├── 20000412-1.c
│   │   │           │   ├── 20000412-2.c
│   │   │           │   ├── 20000420-1.c
│   │   │           │   ├── 20000420-2.c
│   │   │           │   ├── 20000427-1.c
│   │   │           │   ├── 20000502-1.c
│   │   │           │   ├── 20000504-1.c
│   │   │           │   ├── 20000511-1.c
│   │   │           │   ├── 20000517-1.c
│   │   │           │   ├── 20000518-1.c
│   │   │           │   ├── 20000523-1.c
│   │   │           │   ├── 20000605-1.c
│   │   │           │   ├── 20000606-1.c
│   │   │           │   ├── 20000609-1.c
│   │   │           │   ├── 20000629-1.c
│   │   │           │   ├── 20000701-1.c
│   │   │           │   ├── 20000717-1.c
│   │   │           │   ├── 20000718.c
│   │   │           │   ├── 20000728-1.c
│   │   │           │   ├── 20000802-1.c
│   │   │           │   ├── 20000803-1.c
│   │   │           │   ├── 20000804-1.c
│   │   │           │   ├── 20000818-1.c
│   │   │           │   ├── 20000825-1.c
│   │   │           │   ├── 20000827-1.c
│   │   │           │   ├── 20000922-1.c
│   │   │           │   ├── 20000923-1.c
│   │   │           │   ├── 20001018-1.c
│   │   │           │   ├── 20001024-1.c
│   │   │           │   ├── 20001109-1.c
│   │   │           │   ├── 20001109-2.c
│   │   │           │   ├── 20001116-1.c
│   │   │           │   ├── 20001121-1.c
│   │   │           │   ├── 20001123-1.c
│   │   │           │   ├── 20001123-2.c
│   │   │           │   ├── 20001205-1.c
│   │   │           │   ├── 20001212-1.c
│   │   │           │   ├── 20001221-1.c
│   │   │           │   ├── 20001222-1.c
│   │   │           │   ├── 20001226-1.c
│   │   │           │   ├── 200031109-1.c
│   │   │           │   ├── 20010102-1.c
│   │   │           │   ├── 20010107-1.c
│   │   │           │   ├── 20010112-1.c
│   │   │           │   ├── 20010113-1.c
│   │   │           │   ├── 20010114-1.c
│   │   │           │   ├── 20010114-2.c
│   │   │           │   ├── 20010117-1.c
│   │   │           │   ├── 20010117-2.c
│   │   │           │   ├── 20010118-1.c
│   │   │           │   ├── 20010124-1.c
│   │   │           │   ├── 20010202-1.c
│   │   │           │   ├── 20010209-1.c
│   │   │           │   ├── 20010226-1.c
│   │   │           │   ├── 20010227-1.c
│   │   │           │   ├── 20010313-1.c
│   │   │           │   ├── 20010320-1.c
│   │   │           │   ├── 20010326-1.c
│   │   │           │   ├── 20010327-1.c
│   │   │           │   ├── 20010328-1.c
│   │   │           │   ├── 20010329-1.c
│   │   │           │   ├── 20010404-1.c
│   │   │           │   ├── 20010408-1.c
│   │   │           │   ├── 20010421-1.c
│   │   │           │   ├── 20010423-1.c
│   │   │           │   ├── 20010426-1.c
│   │   │           │   ├── 20010503-1.c
│   │   │           │   ├── 20010510-1.c
│   │   │           │   ├── 20010518-1.c
│   │   │           │   ├── 20010518-2.c
│   │   │           │   ├── 20010525-1.c
│   │   │           │   ├── 20010605-1.c
│   │   │           │   ├── 20010605-2.c
│   │   │           │   ├── 20010605-3.c
│   │   │           │   ├── 20010610-1.c
│   │   │           │   ├── 20010611-1.c
│   │   │           │   ├── 20010701-1.c
│   │   │           │   ├── 20010706-1.c
│   │   │           │   ├── 20010711-1.c
│   │   │           │   ├── 20010711-2.c
│   │   │           │   ├── 20010714-1.c
│   │   │           │   ├── 20010824-1.c
│   │   │           │   ├── 20010903-1.c
│   │   │           │   ├── 20010903-2.c
│   │   │           │   ├── 20010911-1.c
│   │   │           │   ├── 20011010-1.c
│   │   │           │   ├── 20011023-1.c
│   │   │           │   ├── 20011029-1.c
│   │   │           │   ├── 20011106-1.c
│   │   │           │   ├── 20011106-2.c
│   │   │           │   ├── 20011109-1.c
│   │   │           │   ├── 20011114-1.c
│   │   │           │   ├── 20011114-2.c
│   │   │           │   ├── 20011114-3.c
│   │   │           │   ├── 20011114-4.c
│   │   │           │   ├── 20011119-1.c
│   │   │           │   ├── 20011119-2.c
│   │   │           │   ├── 20011130-1.c
│   │   │           │   ├── 20011130-2.c
│   │   │           │   ├── 20011205-1.c
│   │   │           │   ├── 20011217-1.c
│   │   │           │   ├── 20011217-2.c
│   │   │           │   ├── 20011218-1.c
│   │   │           │   ├── 20011219-1.c
│   │   │           │   ├── 20011219-2.c
│   │   │           │   ├── 20011229-1.c
│   │   │           │   ├── 20011229-2.c
│   │   │           │   ├── 20020103-1.c
│   │   │           │   ├── 20020106-1.c
│   │   │           │   ├── 20020109-1.c
│   │   │           │   ├── 20020109-2.c
│   │   │           │   ├── 20020110.c
│   │   │           │   ├── 20020116-1.c
│   │   │           │   ├── 20020120-1.c
│   │   │           │   ├── 20020121-1.c
│   │   │           │   ├── 20020129-1.c
│   │   │           │   ├── 20020206-1.c
│   │   │           │   ├── 20020210-1.c
│   │   │           │   ├── 20020303-1.c
│   │   │           │   ├── 20020304-1.c
│   │   │           │   ├── 20020304-2.c
│   │   │           │   ├── 20020309-1.c
│   │   │           │   ├── 20020309-2.c
│   │   │           │   ├── 20020312-1.c
│   │   │           │   ├── 20020314-1.c
│   │   │           │   ├── 20020315-1.c
│   │   │           │   ├── 20020318-1.c
│   │   │           │   ├── 20020319-1.c
│   │   │           │   ├── 20020320-1.c
│   │   │           │   ├── 20020323-1.c
│   │   │           │   ├── 20020330-1.c
│   │   │           │   ├── 20020409-1.c
│   │   │           │   ├── 20020415-1.c
│   │   │           │   ├── 20020418-1.c
│   │   │           │   ├── 20020530-1.c
│   │   │           │   ├── 20020604-1.c
│   │   │           │   ├── 20020605-1.c
│   │   │           │   ├── 20020701-1.c
│   │   │           │   ├── 20020706-1.c
│   │   │           │   ├── 20020706-2.c
│   │   │           │   ├── 20020709-1.c
│   │   │           │   ├── 20020710-1.c
│   │   │           │   ├── 20020715-1.c
│   │   │           │   ├── 20020807-1.c
│   │   │           │   ├── 20020910-1.c
│   │   │           │   ├── 20020926-1.c
│   │   │           │   ├── 20020927-1.c
│   │   │           │   ├── 20020930-1.c
│   │   │           │   ├── 20021001-1.c
│   │   │           │   ├── 20021007-1.c
│   │   │           │   ├── 20021008-1.c
│   │   │           │   ├── 20021015-1.c
│   │   │           │   ├── 20021015-2.c
│   │   │           │   ├── 20021103-1.c
│   │   │           │   ├── 20021108-1.c
│   │   │           │   ├── 20021110.c
│   │   │           │   ├── 20021119-1.c
│   │   │           │   ├── 20021120-1.c
│   │   │           │   ├── 20021120-2.c
│   │   │           │   ├── 20021124-1.c
│   │   │           │   ├── 20021204-1.c
│   │   │           │   ├── 20021205-1.c
│   │   │           │   ├── 20021212-1.c
│   │   │           │   ├── 20021230-1.c
│   │   │           │   ├── 20030109-1.c
│   │   │           │   ├── 20030110-1.c
│   │   │           │   ├── 20030125-1.c
│   │   │           │   ├── 20030206-1.c
│   │   │           │   ├── 20030216-1.c
│   │   │           │   ├── 20030219-1.c
│   │   │           │   ├── 20030220-1.c
│   │   │           │   ├── 20030224-1.c
│   │   │           │   ├── 20030305-1.c
│   │   │           │   ├── 20030310-1.c
│   │   │           │   ├── 20030314-1.c
│   │   │           │   ├── 20030319-1.c
│   │   │           │   ├── 20030320-1.c
│   │   │           │   ├── 20030323-1.c
│   │   │           │   ├── 20030330-1.c
│   │   │           │   ├── 20030331-1.c
│   │   │           │   ├── 20030405-1.c
│   │   │           │   ├── 20030410-1.c
│   │   │           │   ├── 20030415-1.c
│   │   │           │   ├── 20030416-1.c
│   │   │           │   ├── 20030418-1.c
│   │   │           │   ├── 20030503-1.c
│   │   │           │   ├── 20030518-1.c
│   │   │           │   ├── 20030530-1.c
│   │   │           │   ├── 20030530-3.c
│   │   │           │   ├── 20030604-1.c
│   │   │           │   ├── 20030605-1.c
│   │   │           │   ├── 20030612-1.c
│   │   │           │   ├── 20030624-1.c
│   │   │           │   ├── 20030703-1.c
│   │   │           │   ├── 20030704-1.c
│   │   │           │   ├── 20030707-1.c
│   │   │           │   ├── 20030708-1.c
│   │   │           │   ├── 20030716-1.c
│   │   │           │   ├── 20030725-1.c
│   │   │           │   ├── 20030804-1.c
│   │   │           │   ├── 20030821-1.c
│   │   │           │   ├── 20030823-1.c
│   │   │           │   ├── 20030902-1.c
│   │   │           │   ├── 20030903-1.c
│   │   │           │   ├── 20030904-1.c
│   │   │           │   ├── 20030907-1.c
│   │   │           │   ├── 20030910-1.c
│   │   │           │   ├── 20030917-1.c
│   │   │           │   ├── 20030921-1.c
│   │   │           │   ├── 20031002-1.c
│   │   │           │   ├── 20031010-1.c
│   │   │           │   ├── 20031011-1.c
│   │   │           │   ├── 20031011-2.c
│   │   │           │   ├── 20031023-1.c
│   │   │           │   ├── 20031023-2.c
│   │   │           │   ├── 20031023-3.c
│   │   │           │   ├── 20031023-4.c
│   │   │           │   ├── 20031031-1.c
│   │   │           │   ├── 20031031-2.c
│   │   │           │   ├── 20031102-1.c
│   │   │           │   ├── 20031112-1.c
│   │   │           │   ├── 20031113-1.c
│   │   │           │   ├── 20031124-1.c
│   │   │           │   ├── 20031125-1.c
│   │   │           │   ├── 20031125-2.c
│   │   │           │   ├── 20031203-1.c
│   │   │           │   ├── 20031203-2.c
│   │   │           │   ├── 20031203-3.c
│   │   │           │   ├── 20031208-1.c
│   │   │           │   ├── 20031220-1.c
│   │   │           │   ├── 20031220-2.c
│   │   │           │   ├── 20031227-1.c
│   │   │           │   ├── 20031231-1.c
│   │   │           │   ├── 20040101-1.c
│   │   │           │   ├── 20040109-1.c
│   │   │           │   ├── 20040121-1.c
│   │   │           │   ├── 20040124-1.c
│   │   │           │   ├── 20040130-1.c
│   │   │           │   ├── 20040202-1.c
│   │   │           │   ├── 20040209-1.c
│   │   │           │   ├── 20040214-1.c
│   │   │           │   ├── 20040214-2.c
│   │   │           │   ├── 20040216-1.c
│   │   │           │   ├── 20040219-1.c
│   │   │           │   ├── 20040220-1.c
│   │   │           │   ├── 20040303-1.c
│   │   │           │   ├── 20040303-2.c
│   │   │           │   ├── 20040304-1.c
│   │   │           │   ├── 20040309-1.c
│   │   │           │   ├── 20040310-1.c
│   │   │           │   ├── 20040317-1.c
│   │   │           │   ├── 20040317-2.c
│   │   │           │   ├── 20040317-3.c
│   │   │           │   ├── 20040323-1.c
│   │   │           │   ├── 20040401-1.c
│   │   │           │   ├── 20040415-1.c
│   │   │           │   ├── 20040415-2.c
│   │   │           │   ├── 20040419-1.c
│   │   │           │   ├── 20040602-1.c
│   │   │           │   ├── 20040610-1.c
│   │   │           │   ├── 20040611-1.c
│   │   │           │   ├── 20040614-1.c
│   │   │           │   ├── 20040621-1.c
│   │   │           │   ├── 20040624-1.c
│   │   │           │   ├── 20040705-1.c
│   │   │           │   ├── 20040708-1.c
│   │   │           │   ├── 20040709-1.c
│   │   │           │   ├── 20040726-1.c
│   │   │           │   ├── 20040726-2.c
│   │   │           │   ├── 20040727-1.c
│   │   │           │   ├── 20040730-1.c
│   │   │           │   ├── 20040817-1.c
│   │   │           │   ├── 20040824-1.c
│   │   │           │   ├── 20040901-1.c
│   │   │           │   ├── 20040907-1.c
│   │   │           │   ├── 20040908-1.c
│   │   │           │   ├── 20040909-1.c
│   │   │           │   ├── 20040914-1.c
│   │   │           │   ├── 20040916-1.c
│   │   │           │   ├── 20041005-1.c
│   │   │           │   ├── 20041007-1.c
│   │   │           │   ├── 20041018-1.c
│   │   │           │   ├── 20041026-1.c
│   │   │           │   ├── 20041119-1.c
│   │   │           │   ├── 20041211-1.c
│   │   │           │   ├── 20050105-1.c
│   │   │           │   ├── 20050113-1.c
│   │   │           │   ├── 20050119-1.c
│   │   │           │   ├── 20050122-1.c
│   │   │           │   ├── 20050122-2.c
│   │   │           │   ├── 20050202-1.c
│   │   │           │   ├── 20050206-1.c
│   │   │           │   ├── 20050210-1.c
│   │   │           │   ├── 20050215-1.c
│   │   │           │   ├── 20050215-2.c
│   │   │           │   ├── 20050215-3.c
│   │   │           │   ├── 20050217-1.c
│   │   │           │   ├── 20050303-1.c
│   │   │           │   ├── 20050328-1.c
│   │   │           │   ├── 20050423-1.c
│   │   │           │   ├── 20050510-1.c
│   │   │           │   ├── 20050516-1.c
│   │   │           │   ├── 20050520-1.c
│   │   │           │   ├── 20050622-1.c
│   │   │           │   ├── 20050721-1.c
│   │   │           │   ├── 20050801-1.c
│   │   │           │   ├── 20050801-2.c
│   │   │           │   ├── 20051207-1.c
│   │   │           │   ├── 20051216-1.c
│   │   │           │   ├── 20051228-1.c
│   │   │           │   ├── 20060109-1.c
│   │   │           │   ├── 20060202-1.c
│   │   │           │   ├── 20060208-1.c
│   │   │           │   ├── 20060215-1.c
│   │   │           │   ├── 20060217-1.c
│   │   │           │   ├── 20060309-1.c
│   │   │           │   ├── 20060419-1.c
│   │   │           │   ├── 20060421-1.c
│   │   │           │   ├── 20060609-1.c
│   │   │           │   ├── 20060625-1.c
│   │   │           │   ├── 20060823-1.c
│   │   │           │   ├── 20060826-1.c
│   │   │           │   ├── 20060904-1.c
│   │   │           │   ├── 20061005-1.c
│   │   │           │   ├── 20061214-1.c
│   │   │           │   ├── 20070121.c
│   │   │           │   ├── 20070129.c
│   │   │           │   ├── 20070419-1.c
│   │   │           │   ├── 20070501-1.c
│   │   │           │   ├── 20070520-1.c
│   │   │           │   ├── 20070522-1.c
│   │   │           │   ├── 20070529-1.c
│   │   │           │   ├── 20070529-2.c
│   │   │           │   ├── 20070531-1.c
│   │   │           │   ├── 20070531-2.c
│   │   │           │   ├── 20070603-1.c
│   │   │           │   ├── 20070603-2.c
│   │   │           │   ├── 20070605-1.c
│   │   │           │   ├── 20070827-1.c
│   │   │           │   ├── 20070905-1.c
│   │   │           │   ├── 20070906-1.c
│   │   │           │   ├── 20070915-1.c
│   │   │           │   ├── 20070919-1.c
│   │   │           │   ├── 20071027-1.c
│   │   │           │   ├── 20071102-1.c
│   │   │           │   ├── 20071105-1.c
│   │   │           │   ├── 20071107-1.c
│   │   │           │   ├── 20071108-1.c
│   │   │           │   ├── 20071114-1.c
│   │   │           │   ├── 20071117-1.c
│   │   │           │   ├── 20071118-1.c
│   │   │           │   ├── 20071128-1.c
│   │   │           │   ├── 20071203-1.c
│   │   │           │   ├── 20071207-1.c
│   │   │           │   ├── 20071214-1.c
│   │   │           │   ├── 20080114-1.c
│   │   │           │   ├── 20080124-1.c
│   │   │           │   ├── 20080419-1.c
│   │   │           │   ├── 20080613-1.c
│   │   │           │   ├── 20080625-1.c
│   │   │           │   ├── 20080628-1.c
│   │   │           │   ├── 20080704-1.c
│   │   │           │   ├── 20080721-1.c
│   │   │           │   ├── 20080806-1.c
│   │   │           │   ├── 20080812-1.c
│   │   │           │   ├── 20080820-1.c
│   │   │           │   ├── 20080903-1.c
│   │   │           │   ├── 20080910-1.c
│   │   │           │   ├── 20080922-1.c
│   │   │           │   ├── 20080929-1.c
│   │   │           │   ├── 20081101-1.c
│   │   │           │   ├── 20081108-1.c
│   │   │           │   ├── 20081108-2.c
│   │   │           │   ├── 20081108-3.c
│   │   │           │   ├── 20081119-1.c
│   │   │           │   ├── 20081203-1.c
│   │   │           │   ├── 20090107-1.c
│   │   │           │   ├── 20090114-1.c
│   │   │           │   ├── 20090209-1.c
│   │   │           │   ├── 20090303-1.c
│   │   │           │   ├── 20090303-2.c
│   │   │           │   ├── 20090328-1.c
│   │   │           │   ├── 20090331-1.c
│   │   │           │   ├── 20090401-1.c
│   │   │           │   ├── 20090518-1.c
│   │   │           │   ├── 20090519-1.c
│   │   │           │   ├── 20090721-1.c
│   │   │           │   ├── 20090907-1.c
│   │   │           │   ├── 20090917-1.c
│   │   │           │   ├── 20091215-1.c
│   │   │           │   ├── 20100609-1.c
│   │   │           │   ├── 20100907.c
│   │   │           │   ├── 20100915-1.c
│   │   │           │   ├── 20101216-1.c
│   │   │           │   ├── 20101217-1.c
│   │   │           │   ├── 20110126-1.c
│   │   │           │   ├── 20110131-1.c
│   │   │           │   ├── 20110401-1.c
│   │   │           │   ├── 20110902.c
│   │   │           │   ├── 20110906-1.c
│   │   │           │   ├── 20110913-1.c
│   │   │           │   ├── 20111209-1.c
│   │   │           │   ├── 20120524-1.c
│   │   │           │   ├── 20120727-1.c
│   │   │           │   ├── 20120727-2.c
│   │   │           │   ├── 20120822-1.c
│   │   │           │   ├── 20120830-1.c
│   │   │           │   ├── 20120830-2.c
│   │   │           │   ├── 20120913-1.c
│   │   │           │   ├── 20120917-1.c
│   │   │           │   ├── 20120927-1.c
│   │   │           │   ├── 20121010-1.c
│   │   │           │   ├── 20121027-1.c
│   │   │           │   ├── 20121107-1.c
│   │   │           │   ├── 20121220-1.c
│   │   │           │   ├── 20140110-1.c
│   │   │           │   ├── 20140213.c
│   │   │           │   ├── 20140528-1.c
│   │   │           │   ├── 20140723-1.c
│   │   │           │   ├── 20140816-1.c
│   │   │           │   ├── 20150108.c
│   │   │           │   ├── 20150327.c
│   │   │           │   ├── 20151204.c
│   │   │           │   ├── 20160205-1.c
│   │   │           │   ├── 20161124-1.c
│   │   │           │   ├── 386.c
│   │   │           │   ├── 86.c
│   │   │           │   ├── 900116-1.c
│   │   │           │   ├── 900216-1.c
│   │   │           │   ├── 900313-1.c
│   │   │           │   ├── 900407-1.c
│   │   │           │   ├── 900516-1.c
│   │   │           │   ├── 920301-1.c
│   │   │           │   ├── 920409-1.c
│   │   │           │   ├── 920409-2.c
│   │   │           │   ├── 920410-1.c
│   │   │           │   ├── 920410-2.c
│   │   │           │   ├── 920411-2.c
│   │   │           │   ├── 920413-1.c
│   │   │           │   ├── 920415-1.c
│   │   │           │   ├── 920428-1.c
│   │   │           │   ├── 920428-2.c
│   │   │           │   ├── 920428-3.c
│   │   │           │   ├── 920428-4.c
│   │   │           │   ├── 920428-5.c
│   │   │           │   ├── 920428-6.c
│   │   │           │   ├── 920428-7.c
│   │   │           │   ├── 920501-1.c
│   │   │           │   ├── 920501-10.c
│   │   │           │   ├── 920501-11.c
│   │   │           │   ├── 920501-12.c
│   │   │           │   ├── 920501-13.c
│   │   │           │   ├── 920501-15.c
│   │   │           │   ├── 920501-16.c
│   │   │           │   ├── 920501-17.c
│   │   │           │   ├── 920501-18.c
│   │   │           │   ├── 920501-19.c
│   │   │           │   ├── 920501-2.c
│   │   │           │   ├── 920501-20.c
│   │   │           │   ├── 920501-21.c
│   │   │           │   ├── 920501-22.c
│   │   │           │   ├── 920501-23.c
│   │   │           │   ├── 920501-3.c
│   │   │           │   ├── 920501-4.c
│   │   │           │   ├── 920501-6.c
│   │   │           │   ├── 920501-7.c
│   │   │           │   ├── 920501-8.c
│   │   │           │   ├── 920501-9.c
│   │   │           │   ├── 920502-1.c
│   │   │           │   ├── 920502-2.c
│   │   │           │   ├── 920520-1.c
│   │   │           │   ├── 920521-1.c
│   │   │           │   ├── 920529-1.c
│   │   │           │   ├── 920608-1.c
│   │   │           │   ├── 920611-2.c
│   │   │           │   ├── 920615-1.c
│   │   │           │   ├── 920617-1.c
│   │   │           │   ├── 920617-2.c
│   │   │           │   ├── 920623-1.c
│   │   │           │   ├── 920624-1.c
│   │   │           │   ├── 920625-1.c
│   │   │           │   ├── 920625-2.c
│   │   │           │   ├── 920626-1.c
│   │   │           │   ├── 920701-1.c
│   │   │           │   ├── 920702-1.c
│   │   │           │   ├── 920706-1.c
│   │   │           │   ├── 920710-2.c
│   │   │           │   ├── 920711-1.c
│   │   │           │   ├── 920721-1.c
│   │   │           │   ├── 920723-1.c
│   │   │           │   ├── 920729-1.c
│   │   │           │   ├── 920806-1.c
│   │   │           │   ├── 920808-1.c
│   │   │           │   ├── 920809-1.c
│   │   │           │   ├── 920817-1.c
│   │   │           │   ├── 920820-1.c
│   │   │           │   ├── 920821-1.c
│   │   │           │   ├── 920821-2.c
│   │   │           │   ├── 920825-1.c
│   │   │           │   ├── 920825-2.c
│   │   │           │   ├── 920826-1.c
│   │   │           │   ├── 920828-1.c
│   │   │           │   ├── 920829-1.c
│   │   │           │   ├── 920831-1.c
│   │   │           │   ├── 920902-1.c
│   │   │           │   ├── 920909-1.c
│   │   │           │   ├── 920917-1.c
│   │   │           │   ├── 920928-1.c
│   │   │           │   ├── 920928-2.c
│   │   │           │   ├── 920928-3.c
│   │   │           │   ├── 920928-4.c
│   │   │           │   ├── 920928-5.c
│   │   │           │   ├── 920928-6.c
│   │   │           │   ├── 921004-1.c
│   │   │           │   ├── 921011-1.c
│   │   │           │   ├── 921011-2.c
│   │   │           │   ├── 921012-1.c
│   │   │           │   ├── 921012-2.c
│   │   │           │   ├── 921013-1.c
│   │   │           │   ├── 921019-1.c
│   │   │           │   ├── 921021-1.c
│   │   │           │   ├── 921024-1.c
│   │   │           │   ├── 921026-1.c
│   │   │           │   ├── 921103-1.c
│   │   │           │   ├── 921109-1.c
│   │   │           │   ├── 921111-1.c
│   │   │           │   ├── 921116-2.c
│   │   │           │   ├── 921118-1.c
│   │   │           │   ├── 921126-1.c
│   │   │           │   ├── 921202-1.c
│   │   │           │   ├── 921202-2.c
│   │   │           │   ├── 921203-1.c
│   │   │           │   ├── 921203-2.c
│   │   │           │   ├── 921206-1.c
│   │   │           │   ├── 921227-1.c
│   │   │           │   ├── 930109-1.c
│   │   │           │   ├── 930109-2.c
│   │   │           │   ├── 930111-1.c
│   │   │           │   ├── 930117-1.c
│   │   │           │   ├── 930118-1.c
│   │   │           │   ├── 930120-1.c
│   │   │           │   ├── 930126-1.c
│   │   │           │   ├── 930210-1.c
│   │   │           │   ├── 930217-1.c
│   │   │           │   ├── 930222-1.c
│   │   │           │   ├── 930325-1.c
│   │   │           │   ├── 930326-1.c
│   │   │           │   ├── 930411-1.c
│   │   │           │   ├── 930421-1.c
│   │   │           │   ├── 930427-2.c
│   │   │           │   ├── 930503-1.c
│   │   │           │   ├── 930503-2.c
│   │   │           │   ├── 930506-1.c
│   │   │           │   ├── 930506-2.c
│   │   │           │   ├── 930510-1.c
│   │   │           │   ├── 930513-1.c
│   │   │           │   ├── 930513-2.c
│   │   │           │   ├── 930513-3.c
│   │   │           │   ├── 930523-1.c
│   │   │           │   ├── 930525-1.c
│   │   │           │   ├── 930527-1.c
│   │   │           │   ├── 930529-1.c
│   │   │           │   ├── 930530-1.c
│   │   │           │   ├── 930602-1.c
│   │   │           │   ├── 930603-1.c
│   │   │           │   ├── 930607-1.c
│   │   │           │   ├── 930611-1.c
│   │   │           │   ├── 930618-1.c
│   │   │           │   ├── 930621-1.c
│   │   │           │   ├── 930623-1.c
│   │   │           │   ├── 930702-1.c
│   │   │           │   ├── 930926-1.c
│   │   │           │   ├── 930927-1.c
│   │   │           │   ├── 931003-1.c
│   │   │           │   ├── 931004-1.c
│   │   │           │   ├── 931013-1.c
│   │   │           │   ├── 931013-2.c
│   │   │           │   ├── 931013-3.c
│   │   │           │   ├── 931018-1.c
│   │   │           │   ├── 931031-1.c
│   │   │           │   ├── 931102-1.c
│   │   │           │   ├── 931102-2.c
│   │   │           │   ├── 931203-1.c
│   │   │           │   ├── 940611-1.c
│   │   │           │   ├── 940712-1.c
│   │   │           │   ├── 940718-1.c
│   │   │           │   ├── 941014-1.c
│   │   │           │   ├── 941014-2.c
│   │   │           │   ├── 941014-3.c
│   │   │           │   ├── 941014-4.c
│   │   │           │   ├── 941019-1.c
│   │   │           │   ├── 941111-1.c
│   │   │           │   ├── 941113-1.c
│   │   │           │   ├── 950122-1.c
│   │   │           │   ├── 950124-1.c
│   │   │           │   ├── 950221-1.c
│   │   │           │   ├── 950329-1.c
│   │   │           │   ├── 950512-1.c
│   │   │           │   ├── 950530-1.c
│   │   │           │   ├── 950607-1.c
│   │   │           │   ├── 950610-1.c
│   │   │           │   ├── 950612-1.c
│   │   │           │   ├── 950613-1.c
│   │   │           │   ├── 950618-1.c
│   │   │           │   ├── 950719-1.c
│   │   │           │   ├── 950729-1.c
│   │   │           │   ├── 950816-1.c
│   │   │           │   ├── 950816-2.c
│   │   │           │   ├── 950816-3.c
│   │   │           │   ├── 950910-1.c
│   │   │           │   ├── 950919-1.c
│   │   │           │   ├── 950921-1.c
│   │   │           │   ├── 950922-1.c
│   │   │           │   ├── 951004-1.c
│   │   │           │   ├── 951106-1.c
│   │   │           │   ├── 951116-1.c
│   │   │           │   ├── 951128-1.c
│   │   │           │   ├── 951220-1.c
│   │   │           │   ├── 951222-1.c
│   │   │           │   ├── 960106-1.c
│   │   │           │   ├── 960130-1.c
│   │   │           │   ├── 960201-1.c
│   │   │           │   ├── 960218-1.c
│   │   │           │   ├── 960220-1.c
│   │   │           │   ├── 960221-1.c
│   │   │           │   ├── 960319-1.c
│   │   │           │   ├── 960514-1.c
│   │   │           │   ├── 960704-1.c
│   │   │           │   ├── 960829-1.c
│   │   │           │   ├── 961004-1.c
│   │   │           │   ├── 961010-1.c
│   │   │           │   ├── 961019-1.c
│   │   │           │   ├── 961031-1.c
│   │   │           │   ├── 961126-1.c
│   │   │           │   ├── 961203-1.c
│   │   │           │   ├── 970206-1.c
│   │   │           │   ├── 970214-1.c
│   │   │           │   ├── 980329-1.c
│   │   │           │   ├── 980408-1.c
│   │   │           │   ├── 980504-1.c
│   │   │           │   ├── 980506-1.c
│   │   │           │   ├── 980506-2.c
│   │   │           │   ├── 980511-1.c
│   │   │           │   ├── 980701-1.c
│   │   │           │   ├── 980706-1.c
│   │   │           │   ├── 980726-1.c
│   │   │           │   ├── 980729-1.c
│   │   │           │   ├── 980816-1.c
│   │   │           │   ├── 980821-1.c
│   │   │           │   ├── 980825-1.c
│   │   │           │   ├── 981001-1.c
│   │   │           │   ├── 981001-2.c
│   │   │           │   ├── 981001-3.c
│   │   │           │   ├── 981001-4.c
│   │   │           │   ├── 981006-1.c
│   │   │           │   ├── 981007-1.c
│   │   │           │   ├── 981107-1.c
│   │   │           │   ├── 981223-1.c
│   │   │           │   ├── 990107-1.c
│   │   │           │   ├── 990117-1.c
│   │   │           │   ├── 990203-1.c
│   │   │           │   ├── 990517-1.c
│   │   │           │   ├── 990519-1.c
│   │   │           │   ├── 990523-1.c
│   │   │           │   ├── 990527-1.c
│   │   │           │   ├── 990617-1.c
│   │   │           │   ├── 990625-1.c
│   │   │           │   ├── 990625-2.c
│   │   │           │   ├── 990801-1.c
│   │   │           │   ├── 990801-2.c
│   │   │           │   ├── 990829-1.c
│   │   │           │   ├── 990913-1.c
│   │   │           │   ├── 990928-1.c
│   │   │           │   ├── 991008-1.c
│   │   │           │   ├── 991026-1.c
│   │   │           │   ├── 991026-2.c
│   │   │           │   ├── 991127-1.c
│   │   │           │   ├── 991202-1.c
│   │   │           │   ├── 991208-1.c
│   │   │           │   ├── 991213-1.c
│   │   │           │   ├── 991213-2.c
│   │   │           │   ├── 991213-3.c
│   │   │           │   ├── 991214-1.c
│   │   │           │   ├── 991214-2.c
│   │   │           │   ├── 991229-1.c
│   │   │           │   ├── 991229-2.c
│   │   │           │   ├── 991229-3.c
│   │   │           │   ├── BUG1.c
│   │   │           │   ├── BUG11.c
│   │   │           │   ├── BUG12.c
│   │   │           │   ├── BUG13.c
│   │   │           │   ├── BUG16.c
│   │   │           │   ├── BUG17.c
│   │   │           │   ├── BUG18.c
│   │   │           │   ├── BUG2.c
│   │   │           │   ├── BUG21.c
│   │   │           │   ├── BUG22.c
│   │   │           │   ├── BUG23.c
│   │   │           │   ├── BUG24.c
│   │   │           │   ├── BUG25.c
│   │   │           │   ├── BUG3.c
│   │   │           │   ├── BUG4.c
│   │   │           │   ├── BUG5.c
│   │   │           │   ├── BUG6.c
│   │   │           │   ├── DFcmp.c
│   │   │           │   ├── HIcmp.c
│   │   │           │   ├── HIset.c
│   │   │           │   ├── PYRBUG.c
│   │   │           │   ├── QIcmp.c
│   │   │           │   ├── QIset.c
│   │   │           │   ├── SFset.c
│   │   │           │   ├── SIcmp.c
│   │   │           │   ├── SIset.c
│   │   │           │   ├── UHIcmp.c
│   │   │           │   ├── UQIcmp.c
│   │   │           │   ├── USIcmp.c
│   │   │           │   ├── a.c
│   │   │           │   ├── a1.c
│   │   │           │   ├── a3.c
│   │   │           │   ├── aa.c
│   │   │           │   ├── aaa.c
│   │   │           │   ├── abs.c
│   │   │           │   ├── ac.c
│   │   │           │   ├── acc.c
│   │   │           │   ├── acc1.c
│   │   │           │   ├── add.c
│   │   │           │   ├── add386.c
│   │   │           │   ├── addcc.c
│   │   │           │   ├── andm.c
│   │   │           │   ├── andmem.c
│   │   │           │   ├── andn.c
│   │   │           │   ├── andok.c
│   │   │           │   ├── andsi.c
│   │   │           │   ├── andsparc.c
│   │   │           │   ├── aos.c
│   │   │           │   ├── arr.c
│   │   │           │   ├── as.c
│   │   │           │   ├── ase.c
│   │   │           │   ├── asmgoto-1.c
│   │   │           │   ├── b.c
│   │   │           │   ├── b1.c
│   │   │           │   ├── b2.c
│   │   │           │   ├── b3.c
│   │   │           │   ├── b88.c
│   │   │           │   ├── bad.c
│   │   │           │   ├── band.c
│   │   │           │   ├── bb0.c
│   │   │           │   ├── bb1.c
│   │   │           │   ├── bbb.c
│   │   │           │   ├── bc.c
│   │   │           │   ├── bcopy-1.c
│   │   │           │   ├── bcopy.c
│   │   │           │   ├── bf.c
│   │   │           │   ├── bfins.c
│   │   │           │   ├── bfx.c
│   │   │           │   ├── bge.c
│   │   │           │   ├── bit.c
│   │   │           │   ├── bitf.c
│   │   │           │   ├── bitw.c
│   │   │           │   ├── blk.c
│   │   │           │   ├── bt.c
│   │   │           │   ├── bt386.c
│   │   │           │   ├── bug.c
│   │   │           │   ├── bugc.c
│   │   │           │   ├── builtin_constant_p.c
│   │   │           │   ├── builtin_unreachable-1.c
│   │   │           │   ├── buns.c
│   │   │           │   ├── bx.c
│   │   │           │   ├── c.c
│   │   │           │   ├── c1.c
│   │   │           │   ├── c2.c
│   │   │           │   ├── call.c
│   │   │           │   ├── call386.c
│   │   │           │   ├── callind.c
│   │   │           │   ├── calls-void.c
│   │   │           │   ├── calls.c
│   │   │           │   ├── cc.c
│   │   │           │   ├── charmtst.c
│   │   │           │   ├── cmb.c
│   │   │           │   ├── cmp.c
│   │   │           │   ├── cmpdi-1.c
│   │   │           │   ├── cmphi.c
│   │   │           │   ├── cmpsi386.c
│   │   │           │   ├── cmul.c
│   │   │           │   ├── cn1.c
│   │   │           │   ├── comb.c
│   │   │           │   ├── combine-hang.c
│   │   │           │   ├── compile.exp
│   │   │           │   ├── complex-1.c
│   │   │           │   ├── complex-2.c
│   │   │           │   ├── complex-3.c
│   │   │           │   ├── complex-4.c
│   │   │           │   ├── complex-5.c
│   │   │           │   ├── complex-6.c
│   │   │           │   ├── compound-literal-1.c
│   │   │           │   ├── compound-literal-2.c
│   │   │           │   ├── compound-literal-3.c
│   │   │           │   ├── consec.c
│   │   │           │   ├── const-high-part.c
│   │   │           │   ├── const.c
│   │   │           │   ├── conv.c
│   │   │           │   ├── conv_tst.c
│   │   │           │   ├── cp.c
│   │   │           │   ├── cpp-1.c
│   │   │           │   ├── cpp-2.c
│   │   │           │   ├── csebug.c
│   │   │           │   ├── cvt.c
│   │   │           │   ├── d.c
│   │   │           │   ├── dbl_parm.c
│   │   │           │   ├── dblbug.c
│   │   │           │   ├── ddd.c
│   │   │           │   ├── dead.c
│   │   │           │   ├── debugvlafunction-1.c
│   │   │           │   ├── delay.c
│   │   │           │   ├── di.c
│   │   │           │   ├── dic.c
│   │   │           │   ├── dilayout.c
│   │   │           │   ├── dimove.c
│   │   │           │   ├── dimul.c
│   │   │           │   ├── div.c
│   │   │           │   ├── divdf.c
│   │   │           │   ├── dll.c
│   │   │           │   ├── dm.c
│   │   │           │   ├── dshift.c
│   │   │           │   ├── e.c
│   │   │           │   ├── ex.c
│   │   │           │   ├── ext.c
│   │   │           │   ├── f1.c
│   │   │           │   ├── f2.c
│   │   │           │   ├── fdmul.c
│   │   │           │   ├── fix-trunc-mem-1.c
│   │   │           │   ├── flo.c
│   │   │           │   ├── float.c
│   │   │           │   ├── flt_const.c
│   │   │           │   ├── fnul.c
│   │   │           │   ├── foo.c
│   │   │           │   ├── forgetcc.c
│   │   │           │   ├── fq.c
│   │   │           │   ├── funcptr-1.c
│   │   │           │   ├── g.c
│   │   │           │   ├── gen_tst.c
│   │   │           │   ├── glob.c
│   │   │           │   ├── goto-1.c
│   │   │           │   ├── gronk.c
│   │   │           │   ├── hi.c
│   │   │           │   ├── hibug.c
│   │   │           │   ├── i++.c
│   │   │           │   ├── i.c
│   │   │           │   ├── ic.c
│   │   │           │   ├── icfmatch.c
│   │   │           │   ├── icmp.c
│   │   │           │   ├── ifreg.c
│   │   │           │   ├── iftrap-1.c
│   │   │           │   ├── iftrap-2.c
│   │   │           │   ├── iftrap-3.c
│   │   │           │   ├── imm.c
│   │   │           │   ├── init-1.c
│   │   │           │   ├── init-2.c
│   │   │           │   ├── init-3.c
│   │   │           │   ├── inline-1.c
│   │   │           │   ├── isinf.c
│   │   │           │   ├── jmp.c
│   │   │           │   ├── jumptab.c
│   │   │           │   ├── l.c
│   │   │           │   ├── labels-1.c
│   │   │           │   ├── labels-2.c
│   │   │           │   ├── labels-3.c
│   │   │           │   ├── layout.c
│   │   │           │   ├── lbug.c
│   │   │           │   ├── libcall-1.c
│   │   │           │   ├── limits-blockid.c
│   │   │           │   ├── limits-caselabels.c
│   │   │           │   ├── limits-declparen.c
│   │   │           │   ├── limits-enumconst.c
│   │   │           │   ├── limits-exprparen.c
│   │   │           │   ├── limits-externalid.c
│   │   │           │   ├── limits-externdecl.c
│   │   │           │   ├── limits-fnargs.c
│   │   │           │   ├── limits-fndefn.c
│   │   │           │   ├── limits-idexternal.c
│   │   │           │   ├── limits-idinternal.c
│   │   │           │   ├── limits-pointer.c
│   │   │           │   ├── limits-stringlit.c
│   │   │           │   ├── limits-structmem.c
│   │   │           │   ├── limits-structnest.c
│   │   │           │   ├── ll1.c
│   │   │           │   ├── llbug.c
│   │   │           │   ├── lll.c
│   │   │           │   ├── load8.c
│   │   │           │   ├── loadhicc.c
│   │   │           │   ├── loop-1.c
│   │   │           │   ├── loop386.c
│   │   │           │   ├── lop.c
│   │   │           │   ├── m1.c
│   │   │           │   ├── m2.c
│   │   │           │   ├── m5.c
│   │   │           │   ├── m68.c
│   │   │           │   ├── m68k-byte-addr.c
│   │   │           │   ├── mangle-1.c
│   │   │           │   ├── mbyte.c
│   │   │           │   ├── mchar.c
│   │   │           │   ├── mcmp.c
│   │   │           │   ├── mdouble.c
│   │   │           │   ├── memcpy-1.c
│   │   │           │   ├── memcpy-2.c
│   │   │           │   ├── memtst.c
│   │   │           │   ├── mipscop-1.c
│   │   │           │   ├── mipscop-2.c
│   │   │           │   ├── mipscop-3.c
│   │   │           │   ├── mipscop-4.c
│   │   │           │   ├── miscomp.c
│   │   │           │   ├── mm.c
│   │   │           │   ├── mod.c
│   │   │           │   ├── modcc.c
│   │   │           │   ├── move.c
│   │   │           │   ├── move_qhi.c
│   │   │           │   ├── mregtst.c
│   │   │           │   ├── msp.c
│   │   │           │   ├── mtst.c
│   │   │           │   ├── mu.c
│   │   │           │   ├── mul.c
│   │   │           │   ├── mword.c
│   │   │           │   ├── mword1.c
│   │   │           │   ├── n.c
│   │   │           │   ├── n1.c
│   │   │           │   ├── nand.c
│   │   │           │   ├── neg.c
│   │   │           │   ├── nested-1.c
│   │   │           │   ├── nested-2.c
│   │   │           │   ├── o.c
│   │   │           │   ├── omit.c
│   │   │           │   ├── opout.c
│   │   │           │   ├── opt.c
│   │   │           │   ├── or.c
│   │   │           │   ├── or386.c
│   │   │           │   ├── p.c
│   │   │           │   ├── packed-1.c
│   │   │           │   ├── parms.c
│   │   │           │   ├── pass.c
│   │   │           │   ├── pc44485.c
│   │   │           │   ├── pmt.c
│   │   │           │   ├── poor.c
│   │   │           │   ├── pp.c
│   │   │           │   ├── pr12517.c
│   │   │           │   ├── pr12578.c
│   │   │           │   ├── pr12899.c
│   │   │           │   ├── pr13066-1.c
│   │   │           │   ├── pr13889.c
│   │   │           │   ├── pr14692.c
│   │   │           │   ├── pr14730.c
│   │   │           │   ├── pr15245.c
│   │   │           │   ├── pr16461.c
│   │   │           │   ├── pr16566-1.c
│   │   │           │   ├── pr16566-2.c
│   │   │           │   ├── pr16566-3.c
│   │   │           │   ├── pr16808.c
│   │   │           │   ├── pr17119.c
│   │   │           │   ├── pr17273.c
│   │   │           │   ├── pr17397.c
│   │   │           │   ├── pr17407.c
│   │   │           │   ├── pr17408.c
│   │   │           │   ├── pr17529.c
│   │   │           │   ├── pr17558.c
│   │   │           │   ├── pr17656.c
│   │   │           │   ├── pr17906.c
│   │   │           │   ├── pr17913.c
│   │   │           │   ├── pr18291.c
│   │   │           │   ├── pr18299-1.c
│   │   │           │   ├── pr18712.c
│   │   │           │   ├── pr18903.c
│   │   │           │   ├── pr19080.c
│   │   │           │   ├── pr19121.c
│   │   │           │   ├── pr19357.c
│   │   │           │   ├── pr19736.c
│   │   │           │   ├── pr19853.c
│   │   │           │   ├── pr20203.c
│   │   │           │   ├── pr20412.c
│   │   │           │   ├── pr20539-1.c
│   │   │           │   ├── pr20583.c
│   │   │           │   ├── pr20928.c
│   │   │           │   ├── pr21021.c
│   │   │           │   ├── pr21030.c
│   │   │           │   ├── pr21293.c
│   │   │           │   ├── pr21356.c
│   │   │           │   ├── pr21380.c
│   │   │           │   ├── pr21532.c
│   │   │           │   ├── pr21562.c
│   │   │           │   ├── pr21638.c
│   │   │           │   ├── pr21728.c
│   │   │           │   ├── pr21761.c
│   │   │           │   ├── pr21839.c
│   │   │           │   ├── pr21840.c
│   │   │           │   ├── pr22013-1.c
│   │   │           │   ├── pr22269.c
│   │   │           │   ├── pr22379.c
│   │   │           │   ├── pr22398.c
│   │   │           │   ├── pr22422.c
│   │   │           │   ├── pr22531.c
│   │   │           │   ├── pr22589-1.c
│   │   │           │   ├── pr23233-1.c
│   │   │           │   ├── pr23237.c
│   │   │           │   ├── pr23435.c
│   │   │           │   ├── pr23445.c
│   │   │           │   ├── pr23476.c
│   │   │           │   ├── pr23929.c
│   │   │           │   ├── pr23944.c
│   │   │           │   ├── pr23946.c
│   │   │           │   ├── pr23960.c
│   │   │           │   ├── pr24227.c
│   │   │           │   ├── pr24883.c
│   │   │           │   ├── pr24930.c
│   │   │           │   ├── pr25224.c
│   │   │           │   ├── pr25310.c
│   │   │           │   ├── pr25311.c
│   │   │           │   ├── pr25483.c
│   │   │           │   ├── pr25513.c
│   │   │           │   ├── pr25514.c
│   │   │           │   ├── pr25860.c
│   │   │           │   ├── pr25861.c
│   │   │           │   ├── pr26213.c
│   │   │           │   ├── pr26255.c
│   │   │           │   ├── pr26425.c
│   │   │           │   ├── pr26622.c
│   │   │           │   ├── pr26626.c
│   │   │           │   ├── pr26725.c
│   │   │           │   ├── pr26781-1.c
│   │   │           │   ├── pr26781-2.c
│   │   │           │   ├── pr26833.c
│   │   │           │   ├── pr26840.c
│   │   │           │   ├── pr27087.c
│   │   │           │   ├── pr27282.c
│   │   │           │   ├── pr27341-1.c
│   │   │           │   ├── pr27341-2.c
│   │   │           │   ├── pr27373.c
│   │   │           │   ├── pr27528.c
│   │   │           │   ├── pr27571.c
│   │   │           │   ├── pr27863.c
│   │   │           │   ├── pr27889.c
│   │   │           │   ├── pr27907.c
│   │   │           │   ├── pr28489.c
│   │   │           │   ├── pr28675.c
│   │   │           │   ├── pr28776-1.c
│   │   │           │   ├── pr28776-2.c
│   │   │           │   ├── pr28865.c
│   │   │           │   ├── pr28905.c
│   │   │           │   ├── pr29128.c
│   │   │           │   ├── pr29201.c
│   │   │           │   ├── pr29241.c
│   │   │           │   ├── pr29250.c
│   │   │           │   ├── pr29945.c
│   │   │           │   ├── pr30132.c
│   │   │           │   ├── pr30311.c
│   │   │           │   ├── pr30338.c
│   │   │           │   ├── pr30433.c
│   │   │           │   ├── pr30564-1.c
│   │   │           │   ├── pr30564-2.c
│   │   │           │   ├── pr30984.c
│   │   │           │   ├── pr31034.c
│   │   │           │   ├── pr31345-1.c
│   │   │           │   ├── pr31541.c
│   │   │           │   ├── pr31703.c
│   │   │           │   ├── pr31710.c
│   │   │           │   ├── pr31797.c
│   │   │           │   ├── pr31953.c
│   │   │           │   ├── pr32139.c
│   │   │           │   ├── pr32169.c
│   │   │           │   ├── pr32349.c
│   │   │           │   ├── pr32355.c
│   │   │           │   ├── pr32372.c
│   │   │           │   ├── pr32399.c
│   │   │           │   ├── pr32453.c
│   │   │           │   ├── pr32482.c
│   │   │           │   ├── pr32571.c
│   │   │           │   ├── pr32584.c
│   │   │           │   ├── pr32606.c
│   │   │           │   ├── pr32780.c
│   │   │           │   ├── pr32796.c
│   │   │           │   ├── pr32919.c
│   │   │           │   ├── pr32920.c
│   │   │           │   ├── pr32988.c
│   │   │           │   ├── pr33122.c
│   │   │           │   ├── pr33133.c
│   │   │           │   ├── pr33146.c
│   │   │           │   ├── pr33166.c
│   │   │           │   ├── pr33173.c
│   │   │           │   ├── pr33382.c
│   │   │           │   ├── pr33614.c
│   │   │           │   ├── pr33617.c
│   │   │           │   ├── pr33641.c
│   │   │           │   ├── pr33855.c
│   │   │           │   ├── pr34029-1.c
│   │   │           │   ├── pr34029-2.c
│   │   │           │   ├── pr34030.c
│   │   │           │   ├── pr34091.c
│   │   │           │   ├── pr34093.c
│   │   │           │   ├── pr34113.c
│   │   │           │   ├── pr34127.c
│   │   │           │   ├── pr34138.c
│   │   │           │   ├── pr34334.c
│   │   │           │   ├── pr34448.c
│   │   │           │   ├── pr34458.c
│   │   │           │   ├── pr34648.c
│   │   │           │   ├── pr34688.c
│   │   │           │   ├── pr34808.c
│   │   │           │   ├── pr34856.c
│   │   │           │   ├── pr34885.c
│   │   │           │   ├── pr34966.c
│   │   │           │   ├── pr34993.c
│   │   │           │   ├── pr35006.c
│   │   │           │   ├── pr35043.c
│   │   │           │   ├── pr35171.c
│   │   │           │   ├── pr35318.c
│   │   │           │   ├── pr35431.c
│   │   │           │   ├── pr35432.c
│   │   │           │   ├── pr35468.c
│   │   │           │   ├── pr35492.c
│   │   │           │   ├── pr35595.c
│   │   │           │   ├── pr35607.c
│   │   │           │   ├── pr35760.c
│   │   │           │   ├── pr35869.c
│   │   │           │   ├── pr36125.c
│   │   │           │   ├── pr36141.c
│   │   │           │   ├── pr36154.c
│   │   │           │   ├── pr36172.c
│   │   │           │   ├── pr36238.c
│   │   │           │   ├── pr36245.c
│   │   │           │   ├── pr36666.c
│   │   │           │   ├── pr36817.c
│   │   │           │   ├── pr36988.c
│   │   │           │   ├── pr37026.c
│   │   │           │   ├── pr37056.c
│   │   │           │   ├── pr37078.c
│   │   │           │   ├── pr37207.c
│   │   │           │   ├── pr37258.c
│   │   │           │   ├── pr37285.c
│   │   │           │   ├── pr37305.c
│   │   │           │   ├── pr37327.c
│   │   │           │   ├── pr37341.c
│   │   │           │   ├── pr37380.c
│   │   │           │   ├── pr37381.c
│   │   │           │   ├── pr37382.c
│   │   │           │   ├── pr37387.c
│   │   │           │   ├── pr37395.c
│   │   │           │   ├── pr37418-1.c
│   │   │           │   ├── pr37418-2.c
│   │   │           │   ├── pr37418-3.c
│   │   │           │   ├── pr37418-4.c
│   │   │           │   ├── pr37432.c
│   │   │           │   ├── pr37433-1.c
│   │   │           │   ├── pr37433.c
│   │   │           │   ├── pr37483.c
│   │   │           │   ├── pr37617.c
│   │   │           │   ├── pr37662.c
│   │   │           │   ├── pr37664.c
│   │   │           │   ├── pr37669-2.c
│   │   │           │   ├── pr37669.c
│   │   │           │   ├── pr37713.c
│   │   │           │   ├── pr37742-3.c
│   │   │           │   ├── pr37742.c
│   │   │           │   ├── pr37878.c
│   │   │           │   ├── pr37913.c
│   │   │           │   ├── pr37955.c
│   │   │           │   ├── pr37976.c
│   │   │           │   ├── pr37991.c
│   │   │           │   ├── pr38123.c
│   │   │           │   ├── pr38343-2.c
│   │   │           │   ├── pr38343.c
│   │   │           │   ├── pr38359.c
│   │   │           │   ├── pr38360.c
│   │   │           │   ├── pr38428.c
│   │   │           │   ├── pr38505.c
│   │   │           │   ├── pr38554.c
│   │   │           │   ├── pr38564.c
│   │   │           │   ├── pr38590-1.c
│   │   │           │   ├── pr38590-2.c
│   │   │           │   ├── pr38621.c
│   │   │           │   ├── pr38661-1.c
│   │   │           │   ├── pr38661.c
│   │   │           │   ├── pr38752.c
│   │   │           │   ├── pr38771.c
│   │   │           │   ├── pr38789.c
│   │   │           │   ├── pr38807.c
│   │   │           │   ├── pr38857.c
│   │   │           │   ├── pr38926.c
│   │   │           │   ├── pr39041.c
│   │   │           │   ├── pr39202.c
│   │   │           │   ├── pr39360.c
│   │   │           │   ├── pr39394.c
│   │   │           │   ├── pr39423-1.c
│   │   │           │   ├── pr39423-2.c
│   │   │           │   ├── pr39614-1.c
│   │   │           │   ├── pr39614-2.c
│   │   │           │   ├── pr39614-3.c
│   │   │           │   ├── pr39614-4.c
│   │   │           │   ├── pr39614-5.c
│   │   │           │   ├── pr39636.c
│   │   │           │   ├── pr39648.c
│   │   │           │   ├── pr39673-1.c
│   │   │           │   ├── pr39673-2.c
│   │   │           │   ├── pr39779.c
│   │   │           │   ├── pr39824.c
│   │   │           │   ├── pr39834.c
│   │   │           │   ├── pr39845.c
│   │   │           │   ├── pr39886.c
│   │   │           │   ├── pr39928-1.c
│   │   │           │   ├── pr39928-2.c
│   │   │           │   ├── pr39937.c
│   │   │           │   ├── pr39941.c
│   │   │           │   ├── pr39943.c
│   │   │           │   ├── pr39983.c
│   │   │           │   ├── pr39999.c
│   │   │           │   ├── pr40023.c
│   │   │           │   ├── pr40026.c
│   │   │           │   ├── pr40035.c
│   │   │           │   ├── pr40080.c
│   │   │           │   ├── pr40204.c
│   │   │           │   ├── pr40233.c
│   │   │           │   ├── pr40252.c
│   │   │           │   ├── pr40291.c
│   │   │           │   ├── pr40321.c
│   │   │           │   ├── pr40351.c
│   │   │           │   ├── pr40432.c
│   │   │           │   ├── pr40556.c
│   │   │           │   ├── pr40570.c
│   │   │           │   ├── pr40582.c
│   │   │           │   ├── pr40640.c
│   │   │           │   ├── pr40676.c
│   │   │           │   ├── pr40692.c
│   │   │           │   ├── pr40753.c
│   │   │           │   ├── pr40797.c
│   │   │           │   ├── pr40964.c
│   │   │           │   ├── pr41006-1.c
│   │   │           │   ├── pr41006-2.c
│   │   │           │   ├── pr41016.c
│   │   │           │   ├── pr41101.c
│   │   │           │   ├── pr41163.c
│   │   │           │   ├── pr41181.c
│   │   │           │   ├── pr41182-1.c
│   │   │           │   ├── pr41282.c
│   │   │           │   ├── pr41469.c
│   │   │           │   ├── pr41634.c
│   │   │           │   ├── pr41646.c
│   │   │           │   ├── pr41661.c
│   │   │           │   ├── pr41679.c
│   │   │           │   ├── pr41728.c
│   │   │           │   ├── pr41987.c
│   │   │           │   ├── pr42025-1.c
│   │   │           │   ├── pr42025-2.c
│   │   │           │   ├── pr42049.c
│   │   │           │   ├── pr42164.c
│   │   │           │   ├── pr42196-1.c
│   │   │           │   ├── pr42196-2.c
│   │   │           │   ├── pr42196-3.c
│   │   │           │   ├── pr42234.c
│   │   │           │   ├── pr42237.c
│   │   │           │   ├── pr42299.c
│   │   │           │   ├── pr42347.c
│   │   │           │   ├── pr42398.c
│   │   │           │   ├── pr42559.c
│   │   │           │   ├── pr42632.c
│   │   │           │   ├── pr42703.c
│   │   │           │   ├── pr42705.c
│   │   │           │   ├── pr42708-1.c
│   │   │           │   ├── pr42716.c
│   │   │           │   ├── pr42717.c
│   │   │           │   ├── pr42730.c
│   │   │           │   ├── pr42749.c
│   │   │           │   ├── pr42927.c
│   │   │           │   ├── pr42956.c
│   │   │           │   ├── pr42998.c
│   │   │           │   ├── pr43066.c
│   │   │           │   ├── pr43164.c
│   │   │           │   ├── pr43186.c
│   │   │           │   ├── pr43188.c
│   │   │           │   ├── pr43191.c
│   │   │           │   ├── pr43255.c
│   │   │           │   ├── pr43288.c
│   │   │           │   ├── pr43367.c
│   │   │           │   ├── pr43415.c
│   │   │           │   ├── pr43417.c
│   │   │           │   ├── pr43614.c
│   │   │           │   ├── pr43635.c
│   │   │           │   ├── pr43636.c
│   │   │           │   ├── pr43661.c
│   │   │           │   ├── pr43679.c
│   │   │           │   ├── pr43791.c
│   │   │           │   ├── pr43845.c
│   │   │           │   ├── pr44030.c
│   │   │           │   ├── pr44038.c
│   │   │           │   ├── pr44043.c
│   │   │           │   ├── pr44063.c
│   │   │           │   ├── pr44119.c
│   │   │           │   ├── pr44197.c
│   │   │           │   ├── pr44246.c
│   │   │           │   ├── pr44686.c
│   │   │           │   ├── pr44687.c
│   │   │           │   ├── pr44707.c
│   │   │           │   ├── pr44784.c
│   │   │           │   ├── pr44788.c
│   │   │           │   ├── pr44831.c
│   │   │           │   ├── pr44891.c
│   │   │           │   ├── pr44937.c
│   │   │           │   ├── pr44941.c
│   │   │           │   ├── pr44946.c
│   │   │           │   ├── pr44988.c
│   │   │           │   ├── pr45047.c
│   │   │           │   ├── pr45059.c
│   │   │           │   ├── pr45109.c
│   │   │           │   ├── pr45182.c
│   │   │           │   ├── pr45412.c
│   │   │           │   ├── pr45535.c
│   │   │           │   ├── pr45728.c
│   │   │           │   ├── pr45771.c
│   │   │           │   ├── pr45876.c
│   │   │           │   ├── pr45919.c
│   │   │           │   ├── pr45969-1.c
│   │   │           │   ├── pr46002.c
│   │   │           │   ├── pr46034.c
│   │   │           │   ├── pr46107.c
│   │   │           │   ├── pr46248.c
│   │   │           │   ├── pr46360.c
│   │   │           │   ├── pr46388.c
│   │   │           │   ├── pr46461.c
│   │   │           │   ├── pr46534.c
│   │   │           │   ├── pr46547-1.c
│   │   │           │   ├── pr46637.c
│   │   │           │   ├── pr46832.c
│   │   │           │   ├── pr46856.c
│   │   │           │   ├── pr46866.c
│   │   │           │   ├── pr46883.c
│   │   │           │   ├── pr46934.c
│   │   │           │   ├── pr47140.c
│   │   │           │   ├── pr47141.c
│   │   │           │   ├── pr47150.c
│   │   │           │   ├── pr47157.c
│   │   │           │   ├── pr47265.c
│   │   │           │   ├── pr47364-1.c
│   │   │           │   ├── pr47364-2.c
│   │   │           │   ├── pr47427.c
│   │   │           │   ├── pr47428.c
│   │   │           │   ├── pr47967.c
│   │   │           │   ├── pr48136.c
│   │   │           │   ├── pr48161.c
│   │   │           │   ├── pr48305.c
│   │   │           │   ├── pr48335-1.c
│   │   │           │   ├── pr48381.c
│   │   │           │   ├── pr48517.c
│   │   │           │   ├── pr48596.c
│   │   │           │   ├── pr48641.c
│   │   │           │   ├── pr48734.c
│   │   │           │   ├── pr48742.c
│   │   │           │   ├── pr48767.c
│   │   │           │   ├── pr48929.c
│   │   │           │   ├── pr49029.c
│   │   │           │   ├── pr49049.c
│   │   │           │   ├── pr49145.c
│   │   │           │   ├── pr49163.c
│   │   │           │   ├── pr49206.c
│   │   │           │   ├── pr49220.c
│   │   │           │   ├── pr49238.c
│   │   │           │   ├── pr49474.c
│   │   │           │   ├── pr49710.c
│   │   │           │   ├── pr49735.c
│   │   │           │   ├── pr50009.c
│   │   │           │   ├── pr50380.c
│   │   │           │   ├── pr50565-1.c
│   │   │           │   ├── pr50565-2.c
│   │   │           │   ├── pr50650.c
│   │   │           │   ├── pr51069.c
│   │   │           │   ├── pr51077.c
│   │   │           │   ├── pr51246.c
│   │   │           │   ├── pr51247.c
│   │   │           │   ├── pr51354.c
│   │   │           │   ├── pr51495.c
│   │   │           │   ├── pr51694.c
│   │   │           │   ├── pr51761.c
│   │   │           │   ├── pr51767.c
│   │   │           │   ├── pr51856.c
│   │   │           │   ├── pr52073.c
│   │   │           │   ├── pr52074.c
│   │   │           │   ├── pr52092.c
│   │   │           │   ├── pr52113.c
│   │   │           │   ├── pr52115.c
│   │   │           │   ├── pr52175.c
│   │   │           │   ├── pr52255.c
│   │   │           │   ├── pr52306.c
│   │   │           │   ├── pr52375.c
│   │   │           │   ├── pr52437.c
│   │   │           │   ├── pr52533.c
│   │   │           │   ├── pr52555.c
│   │   │           │   ├── pr52714.c
│   │   │           │   ├── pr52750.c
│   │   │           │   ├── pr52773.c
│   │   │           │   ├── pr52891-1.c
│   │   │           │   ├── pr52891-2.c
│   │   │           │   ├── pr52979-1.c
│   │   │           │   ├── pr53058.c
│   │   │           │   ├── pr53163.c
│   │   │           │   ├── pr53187.c
│   │   │           │   ├── pr53226.c
│   │   │           │   ├── pr53409.c
│   │   │           │   ├── pr53410-1.c
│   │   │           │   ├── pr53410-2.c
│   │   │           │   ├── pr53411.c
│   │   │           │   ├── pr53418-1.c
│   │   │           │   ├── pr53418-2.c
│   │   │           │   ├── pr53495.c
│   │   │           │   ├── pr53519.c
│   │   │           │   ├── pr53748.c
│   │   │           │   ├── pr53886.c
│   │   │           │   ├── pr54103-1.c
│   │   │           │   ├── pr54103-2.c
│   │   │           │   ├── pr54103-3.c
│   │   │           │   ├── pr54103-4.c
│   │   │           │   ├── pr54103-5.c
│   │   │           │   ├── pr54103-6.c
│   │   │           │   ├── pr54321.c
│   │   │           │   ├── pr54428.c
│   │   │           │   ├── pr54552-1.c
│   │   │           │   ├── pr54559.c
│   │   │           │   ├── pr54713-1.c
│   │   │           │   ├── pr54713-2.c
│   │   │           │   ├── pr54713-3.c
│   │   │           │   ├── pr54925.c
│   │   │           │   ├── pr55273.c
│   │   │           │   ├── pr55350.c
│   │   │           │   ├── pr55569.c
│   │   │           │   ├── pr55832.c
│   │   │           │   ├── pr55851.c
│   │   │           │   ├── pr55920.c
│   │   │           │   ├── pr55921.c
│   │   │           │   ├── pr55955.c
│   │   │           │   ├── pr56405.c
│   │   │           │   ├── pr56448.c
│   │   │           │   ├── pr56484.c
│   │   │           │   ├── pr56539.c
│   │   │           │   ├── pr56571.c
│   │   │           │   ├── pr56745.c
│   │   │           │   ├── pr56984.c
│   │   │           │   ├── pr57108.c
│   │   │           │   ├── pr57331.c
│   │   │           │   ├── pr57441.c
│   │   │           │   ├── pr57698.c
│   │   │           │   ├── pr58088.c
│   │   │           │   ├── pr58164.c
│   │   │           │   ├── pr58332.c
│   │   │           │   ├── pr58340.c
│   │   │           │   ├── pr58343.c
│   │   │           │   ├── pr58344.c
│   │   │           │   ├── pr58775.c
│   │   │           │   ├── pr58946.c
│   │   │           │   ├── pr58970-1.c
│   │   │           │   ├── pr58970-2.c
│   │   │           │   ├── pr58978.c
│   │   │           │   ├── pr58997.c
│   │   │           │   ├── pr59102.c
│   │   │           │   ├── pr59119.c
│   │   │           │   ├── pr59134.c
│   │   │           │   ├── pr59322.c
│   │   │           │   ├── pr59362.c
│   │   │           │   ├── pr59386.c
│   │   │           │   ├── pr59417.c
│   │   │           │   ├── pr59569-1.c
│   │   │           │   ├── pr59569-2.c
│   │   │           │   ├── pr59743.c
│   │   │           │   ├── pr59803.c
│   │   │           │   ├── pr59919.c
│   │   │           │   ├── pr60071.c
│   │   │           │   ├── pr60268.c
│   │   │           │   ├── pr60502.c
│   │   │           │   ├── pr60556.c
│   │   │           │   ├── pr60655-1.c
│   │   │           │   ├── pr60655-2.c
│   │   │           │   ├── pr61042.c
│   │   │           │   ├── pr61222-1.c
│   │   │           │   ├── pr61222-2.c
│   │   │           │   ├── pr61684.c
│   │   │           │   ├── pr61848.c
│   │   │           │   ├── pr62312.c
│   │   │           │   ├── pr63282.c
│   │   │           │   ├── pr63761.c
│   │   │           │   ├── pr64067.c
│   │   │           │   ├── pr64269.c
│   │   │           │   ├── pr64494.c
│   │   │           │   ├── pr65014.c
│   │   │           │   ├── pr65153.c
│   │   │           │   ├── pr65163.c
│   │   │           │   ├── pr65241.c
│   │   │           │   ├── pr65540.c
│   │   │           │   ├── pr65593.c
│   │   │           │   ├── pr65595.c
│   │   │           │   ├── pr65680.c
│   │   │           │   ├── pr65735.c
│   │   │           │   ├── pr65803.c
│   │   │           │   ├── pr65873.c
│   │   │           │   ├── pr65875.c
│   │   │           │   ├── pr66168.c
│   │   │           │   ├── pr67106.c
│   │   │           │   ├── pr67143.c
│   │   │           │   ├── pr67506.c
│   │   │           │   ├── pr67816.c
│   │   │           │   ├── pr68013.c
│   │   │           │   ├── pr69102.c
│   │   │           │   ├── pr69161.c
│   │   │           │   ├── pr69209.c
│   │   │           │   ├── pr69214.c
│   │   │           │   ├── pr69740-1.c
│   │   │           │   ├── pr69740-2.c
│   │   │           │   ├── pr69989-2.c
│   │   │           │   ├── pr69999.c
│   │   │           │   ├── pr70061.c
│   │   │           │   ├── pr70190.c
│   │   │           │   ├── pr70199.c
│   │   │           │   ├── pr70240.c
│   │   │           │   ├── pr70263-1.c
│   │   │           │   ├── pr70355.c
│   │   │           │   ├── pr70633.c
│   │   │           │   ├── pr70916.c
│   │   │           │   ├── pr71693.c
│   │   │           │   ├── pr71916.c
│   │   │           │   ├── pr72802.c
│   │   │           │   ├── pret-arg.c
│   │   │           │   ├── pta-1.c
│   │   │           │   ├── ptr-conv-1.c
│   │   │           │   ├── pyr.c
│   │   │           │   ├── pyr2.c
│   │   │           │   ├── q.c
│   │   │           │   ├── r.c
│   │   │           │   ├── r1.c
│   │   │           │   ├── rel.c
│   │   │           │   ├── rmsc.c
│   │   │           │   ├── round.c
│   │   │           │   ├── run.c
│   │   │           │   ├── s.c
│   │   │           │   ├── sar.c
│   │   │           │   ├── sc.c
│   │   │           │   ├── scal.c
│   │   │           │   ├── scc.c
│   │   │           │   ├── scond.c
│   │   │           │   ├── section.c
│   │   │           │   ├── selfrec.c
│   │   │           │   ├── seq.c
│   │   │           │   ├── set386.c
│   │   │           │   ├── set88.c
│   │   │           │   ├── sh.c
│   │   │           │   ├── shand.c
│   │   │           │   ├── shft.c
│   │   │           │   ├── shift.c
│   │   │           │   ├── shloop.c
│   │   │           │   ├── shm.c
│   │   │           │   ├── signext.c
│   │   │           │   ├── signext2.c
│   │   │           │   ├── sim.c
│   │   │           │   ├── simd-1.c
│   │   │           │   ├── simd-2.c
│   │   │           │   ├── simd-3.c
│   │   │           │   ├── simd-4.c
│   │   │           │   ├── simd-5.c
│   │   │           │   ├── simd-6.c
│   │   │           │   ├── simple.c
│   │   │           │   ├── sizeof-macros-1.c
│   │   │           │   ├── sne.c
│   │   │           │   ├── sound.c
│   │   │           │   ├── sparcbug.c
│   │   │           │   ├── speed.c
│   │   │           │   ├── sra-1.c
│   │   │           │   ├── ssa-pre-1.c
│   │   │           │   ├── statement-expression-1.c
│   │   │           │   ├── stor.c
│   │   │           │   ├── store0.c
│   │   │           │   ├── storecc.c
│   │   │           │   ├── str.c
│   │   │           │   ├── strcpy-1.c
│   │   │           │   ├── strcpy-2.c
│   │   │           │   ├── stru.c
│   │   │           │   ├── struct-non-lval-1.c
│   │   │           │   ├── struct-non-lval-2.c
│   │   │           │   ├── struct-non-lval-3.c
│   │   │           │   ├── structret.c
│   │   │           │   ├── structs.c
│   │   │           │   ├── stuct.c
│   │   │           │   ├── sub32.c
│   │   │           │   ├── subcc.c
│   │   │           │   ├── subcse.c
│   │   │           │   ├── switch-1.c
│   │   │           │   ├── sym.c
│   │   │           │   ├── symconst.c
│   │   │           │   ├── sync-1.c
│   │   │           │   ├── sync-2.c
│   │   │           │   ├── sync-3.c
│   │   │           │   ├── t.c
│   │   │           │   ├── test-flow.c
│   │   │           │   ├── test-loop.c
│   │   │           │   ├── test.c
│   │   │           │   ├── time.c
│   │   │           │   ├── tmp.c
│   │   │           │   ├── trivial.c
│   │   │           │   ├── trunc.c
│   │   │           │   ├── trunctfdf.c
│   │   │           │   ├── u.c
│   │   │           │   ├── udconvert.c
│   │   │           │   ├── udivmod4.c
│   │   │           │   ├── unalign-1.c
│   │   │           │   ├── uns.c
│   │   │           │   ├── uns_tst.c
│   │   │           │   ├── uuarg.c
│   │   │           │   ├── v.c
│   │   │           │   ├── vector-1.c
│   │   │           │   ├── vector-2.c
│   │   │           │   ├── vector-3.c
│   │   │           │   ├── vector-4.c
│   │   │           │   ├── vector-5.c
│   │   │           │   ├── vector-6.c
│   │   │           │   ├── vector-align-1.c
│   │   │           │   ├── vla-const-1.c
│   │   │           │   ├── vla-const-2.c
│   │   │           │   ├── volatile-1.c
│   │   │           │   ├── w.c
│   │   │           │   ├── widechar-1.c
│   │   │           │   ├── ww.c
│   │   │           │   ├── x.c
│   │   │           │   ├── xb.c
│   │   │           │   ├── xbg.c
│   │   │           │   ├── xc.c
│   │   │           │   ├── xcsebug.c
│   │   │           │   ├── xdi.c
│   │   │           │   ├── xfoo.c
│   │   │           │   ├── xi.c
│   │   │           │   ├── xlop.c
│   │   │           │   ├── xmtst.c
│   │   │           │   ├── xneg.c
│   │   │           │   ├── xopt.c
│   │   │           │   ├── xor.c
│   │   │           │   ├── xorn.c
│   │   │           │   ├── xp.c
│   │   │           │   ├── xpp.c
│   │   │           │   ├── xs.c
│   │   │           │   ├── xsh.c
│   │   │           │   ├── xz.c
│   │   │           │   ├── xzz.c
│   │   │           │   ├── zero-strct-1.c
│   │   │           │   ├── zero-strct-2.c
│   │   │           │   ├── zero-strct-3.c
│   │   │           │   ├── zero-strct-4.c
│   │   │           │   └── zero-strct-5.c
│   │   │           ├── execute/
│   │   │           │   ├── 20000112-1.c
│   │   │           │   ├── 20000113-1.c
│   │   │           │   ├── 20000121-1.c
│   │   │           │   ├── 20000205-1.c
│   │   │           │   ├── 20000217-1.c
│   │   │           │   ├── 20000223-1.c
│   │   │           │   ├── 20000224-1.c
│   │   │           │   ├── 20000225-1.c
│   │   │           │   ├── 20000227-1.c
│   │   │           │   ├── 20000313-1.c
│   │   │           │   ├── 20000314-1.c
│   │   │           │   ├── 20000314-2.c
│   │   │           │   ├── 20000314-3.c
│   │   │           │   ├── 20000402-1.c
│   │   │           │   ├── 20000403-1.c
│   │   │           │   ├── 20000412-1.c
│   │   │           │   ├── 20000412-2.c
│   │   │           │   ├── 20000412-3.c
│   │   │           │   ├── 20000412-4.c
│   │   │           │   ├── 20000412-5.c
│   │   │           │   ├── 20000412-6.c
│   │   │           │   ├── 20000419-1.c
│   │   │           │   ├── 20000422-1.c
│   │   │           │   ├── 20000503-1.c
│   │   │           │   ├── 20000511-1.c
│   │   │           │   ├── 20000519-1.c
│   │   │           │   ├── 20000519-2.c
│   │   │           │   ├── 20000523-1.c
│   │   │           │   ├── 20000528-1.c
│   │   │           │   ├── 20000603-1.c
│   │   │           │   ├── 20000605-1.c
│   │   │           │   ├── 20000605-2.c
│   │   │           │   ├── 20000605-3.c
│   │   │           │   ├── 20000622-1.c
│   │   │           │   ├── 20000703-1.c
│   │   │           │   ├── 20000706-1.c
│   │   │           │   ├── 20000706-2.c
│   │   │           │   ├── 20000706-3.c
│   │   │           │   ├── 20000706-4.c
│   │   │           │   ├── 20000706-5.c
│   │   │           │   ├── 20000707-1.c
│   │   │           │   ├── 20000715-1.c
│   │   │           │   ├── 20000715-2.c
│   │   │           │   ├── 20000717-1.c
│   │   │           │   ├── 20000717-2.c
│   │   │           │   ├── 20000717-3.c
│   │   │           │   ├── 20000717-4.c
│   │   │           │   ├── 20000717-5.c
│   │   │           │   ├── 20000722-1.c
│   │   │           │   ├── 20000726-1.c
│   │   │           │   ├── 20000731-1.c
│   │   │           │   ├── 20000731-2.c
│   │   │           │   ├── 20000801-1.c
│   │   │           │   ├── 20000801-2.c
│   │   │           │   ├── 20000801-3.c
│   │   │           │   ├── 20000801-4.c
│   │   │           │   ├── 20000808-1.c
│   │   │           │   ├── 20000815-1.c
│   │   │           │   ├── 20000818-1.c
│   │   │           │   ├── 20000819-1.c
│   │   │           │   ├── 20000822-1.c
│   │   │           │   ├── 20000910-1.c
│   │   │           │   ├── 20000910-2.c
│   │   │           │   ├── 20000914-1.c
│   │   │           │   ├── 20000917-1.c
│   │   │           │   ├── 20001009-1.c
│   │   │           │   ├── 20001009-2.c
│   │   │           │   ├── 20001011-1.c
│   │   │           │   ├── 20001013-1.c
│   │   │           │   ├── 20001017-1.c
│   │   │           │   ├── 20001017-2.c
│   │   │           │   ├── 20001024-1.c
│   │   │           │   ├── 20001026-1.c
│   │   │           │   ├── 20001027-1.c
│   │   │           │   ├── 20001031-1.c
│   │   │           │   ├── 20001101.c
│   │   │           │   ├── 20001108-1.c
│   │   │           │   ├── 20001111-1.c
│   │   │           │   ├── 20001112-1.c
│   │   │           │   ├── 20001121-1.c
│   │   │           │   ├── 20001124-1.c
│   │   │           │   ├── 20001130-1.c
│   │   │           │   ├── 20001130-2.c
│   │   │           │   ├── 20001203-1.c
│   │   │           │   ├── 20001203-2.c
│   │   │           │   ├── 20001221-1.c
│   │   │           │   ├── 20001228-1.c
│   │   │           │   ├── 20001229-1.c
│   │   │           │   ├── 20010106-1.c
│   │   │           │   ├── 20010114-1.c
│   │   │           │   ├── 20010116-1.c
│   │   │           │   ├── 20010118-1.c
│   │   │           │   ├── 20010119-1.c
│   │   │           │   ├── 20010122-1.c
│   │   │           │   ├── 20010123-1.c
│   │   │           │   ├── 20010129-1.c
│   │   │           │   ├── 20010206-1.c
│   │   │           │   ├── 20010209-1.c
│   │   │           │   ├── 20010221-1.c
│   │   │           │   ├── 20010222-1.c
│   │   │           │   ├── 20010224-1.c
│   │   │           │   ├── 20010325-1.c
│   │   │           │   ├── 20010329-1.c
│   │   │           │   ├── 20010403-1.c
│   │   │           │   ├── 20010409-1.c
│   │   │           │   ├── 20010422-1.c
│   │   │           │   ├── 20010518-1.c
│   │   │           │   ├── 20010518-2.c
│   │   │           │   ├── 20010520-1.c
│   │   │           │   ├── 20010604-1.c
│   │   │           │   ├── 20010605-1.c
│   │   │           │   ├── 20010605-2.c
│   │   │           │   ├── 20010711-1.c
│   │   │           │   ├── 20010717-1.c
│   │   │           │   ├── 20010723-1.c
│   │   │           │   ├── 20010904-1.c
│   │   │           │   ├── 20010904-2.c
│   │   │           │   ├── 20010910-1.c
│   │   │           │   ├── 20010915-1.c
│   │   │           │   ├── 20010924-1.c
│   │   │           │   ├── 20010925-1.c
│   │   │           │   ├── 20011008-3.c
│   │   │           │   ├── 20011019-1.c
│   │   │           │   ├── 20011024-1.c
│   │   │           │   ├── 20011109-1.c
│   │   │           │   ├── 20011109-2.c
│   │   │           │   ├── 20011113-1.c
│   │   │           │   ├── 20011114-1.c
│   │   │           │   ├── 20011115-1.c
│   │   │           │   ├── 20011121-1.c
│   │   │           │   ├── 20011126-1.c
│   │   │           │   ├── 20011126-2.c
│   │   │           │   ├── 20011128-1.c
│   │   │           │   ├── 20011217-1.c
│   │   │           │   ├── 20011219-1.c
│   │   │           │   ├── 20011223-1.c
│   │   │           │   ├── 20020103-1.c
│   │   │           │   ├── 20020107-1.c
│   │   │           │   ├── 20020108-1.c
│   │   │           │   ├── 20020118-1.c
│   │   │           │   ├── 20020127-1.c
│   │   │           │   ├── 20020129-1.c
│   │   │           │   ├── 20020201-1.c
│   │   │           │   ├── 20020206-1.c
│   │   │           │   ├── 20020206-2.c
│   │   │           │   ├── 20020213-1.c
│   │   │           │   ├── 20020215-1.c
│   │   │           │   ├── 20020216-1.c
│   │   │           │   ├── 20020219-1.c
│   │   │           │   ├── 20020225-1.c
│   │   │           │   ├── 20020225-2.c
│   │   │           │   ├── 20020226-1.c
│   │   │           │   ├── 20020227-1.c
│   │   │           │   ├── 20020307-1.c
│   │   │           │   ├── 20020314-1.c
│   │   │           │   ├── 20020320-1.c
│   │   │           │   ├── 20020321-1.c
│   │   │           │   ├── 20020328-1.c
│   │   │           │   ├── 20020402-1.c
│   │   │           │   ├── 20020402-2.c
│   │   │           │   ├── 20020402-3.c
│   │   │           │   ├── 20020404-1.c
│   │   │           │   ├── 20020406-1.c
│   │   │           │   ├── 20020411-1.c
│   │   │           │   ├── 20020412-1.c
│   │   │           │   ├── 20020413-1.c
│   │   │           │   ├── 20020418-1.c
│   │   │           │   ├── 20020423-1.c
│   │   │           │   ├── 20020503-1.c
│   │   │           │   ├── 20020506-1.c
│   │   │           │   ├── 20020508-1.c
│   │   │           │   ├── 20020508-2.c
│   │   │           │   ├── 20020508-3.c
│   │   │           │   ├── 20020510-1.c
│   │   │           │   ├── 20020529-1.c
│   │   │           │   ├── 20020611-1.c
│   │   │           │   ├── 20020614-1.c
│   │   │           │   ├── 20020615-1.c
│   │   │           │   ├── 20020619-1.c
│   │   │           │   ├── 20020716-1.c
│   │   │           │   ├── 20020720-1.c
│   │   │           │   ├── 20020805-1.c
│   │   │           │   ├── 20020810-1.c
│   │   │           │   ├── 20020819-1.c
│   │   │           │   ├── 20020904-1.c
│   │   │           │   ├── 20020911-1.c
│   │   │           │   ├── 20020916-1.c
│   │   │           │   ├── 20020920-1.c
│   │   │           │   ├── 20021010-1.c
│   │   │           │   ├── 20021010-2.c
│   │   │           │   ├── 20021011-1.c
│   │   │           │   ├── 20021015-1.c
│   │   │           │   ├── 20021024-1.c
│   │   │           │   ├── 20021111-1.c
│   │   │           │   ├── 20021113-1.c
│   │   │           │   ├── 20021118-1.c
│   │   │           │   ├── 20021118-2.c
│   │   │           │   ├── 20021118-3.c
│   │   │           │   ├── 20021119-1.c
│   │   │           │   ├── 20021120-1.c
│   │   │           │   ├── 20021120-2.c
│   │   │           │   ├── 20021120-3.c
│   │   │           │   ├── 20021127-1.c
│   │   │           │   ├── 20021204-1.c
│   │   │           │   ├── 20021219-1.c
│   │   │           │   ├── 20030105-1.c
│   │   │           │   ├── 20030109-1.c
│   │   │           │   ├── 20030117-1.c
│   │   │           │   ├── 20030120-1.c
│   │   │           │   ├── 20030120-2.c
│   │   │           │   ├── 20030125-1.c
│   │   │           │   ├── 20030128-1.c
│   │   │           │   ├── 20030203-1.c
│   │   │           │   ├── 20030209-1.c
│   │   │           │   ├── 20030216-1.c
│   │   │           │   ├── 20030218-1.c
│   │   │           │   ├── 20030221-1.c
│   │   │           │   ├── 20030222-1.c
│   │   │           │   ├── 20030224-2.c
│   │   │           │   ├── 20030307-1.c
│   │   │           │   ├── 20030313-1.c
│   │   │           │   ├── 20030316-1.c
│   │   │           │   ├── 20030323-1.c
│   │   │           │   ├── 20030330-1.c
│   │   │           │   ├── 20030401-1.c
│   │   │           │   ├── 20030403-1.c
│   │   │           │   ├── 20030404-1.c
│   │   │           │   ├── 20030408-1.c
│   │   │           │   ├── 20030501-1.c
│   │   │           │   ├── 20030606-1.c
│   │   │           │   ├── 20030613-1.c
│   │   │           │   ├── 20030626-1.c
│   │   │           │   ├── 20030626-2.c
│   │   │           │   ├── 20030714-1.c
│   │   │           │   ├── 20030715-1.c
│   │   │           │   ├── 20030717-1.c
│   │   │           │   ├── 20030718-1.c
│   │   │           │   ├── 20030811-1.c
│   │   │           │   ├── 20030821-1.c
│   │   │           │   ├── 20030828-1.c
│   │   │           │   ├── 20030828-2.c
│   │   │           │   ├── 20030903-1.c
│   │   │           │   ├── 20030909-1.c
│   │   │           │   ├── 20030910-1.c
│   │   │           │   ├── 20030913-1.c
│   │   │           │   ├── 20030914-1.c
│   │   │           │   ├── 20030914-2.c
│   │   │           │   ├── 20030916-1.c
│   │   │           │   ├── 20030920-1.c
│   │   │           │   ├── 20030928-1.c
│   │   │           │   ├── 20031003-1.c
│   │   │           │   ├── 20031010-1.c
│   │   │           │   ├── 20031011-1.c
│   │   │           │   ├── 20031012-1.c
│   │   │           │   ├── 20031020-1.c
│   │   │           │   ├── 20031201-1.c
│   │   │           │   ├── 20031204-1.c
│   │   │           │   ├── 20031211-1.c
│   │   │           │   ├── 20031211-2.c
│   │   │           │   ├── 20031214-1.c
│   │   │           │   ├── 20031215-1.c
│   │   │           │   ├── 20031216-1.c
│   │   │           │   ├── 20040208-1.c
│   │   │           │   ├── 20040218-1.c
│   │   │           │   ├── 20040223-1.c
│   │   │           │   ├── 20040302-1.c
│   │   │           │   ├── 20040307-1.c
│   │   │           │   ├── 20040308-1.c
│   │   │           │   ├── 20040309-1.c
│   │   │           │   ├── 20040311-1.c
│   │   │           │   ├── 20040313-1.c
│   │   │           │   ├── 20040319-1.c
│   │   │           │   ├── 20040331-1.c
│   │   │           │   ├── 20040409-1.c
│   │   │           │   ├── 20040409-2.c
│   │   │           │   ├── 20040409-3.c
│   │   │           │   ├── 20040411-1.c
│   │   │           │   ├── 20040423-1.c
│   │   │           │   ├── 20040520-1.c
│   │   │           │   ├── 20040625-1.c
│   │   │           │   ├── 20040629-1.c
│   │   │           │   ├── 20040703-1.c
│   │   │           │   ├── 20040704-1.c
│   │   │           │   ├── 20040705-1.c
│   │   │           │   ├── 20040705-2.c
│   │   │           │   ├── 20040706-1.c
│   │   │           │   ├── 20040707-1.c
│   │   │           │   ├── 20040709-1.c
│   │   │           │   ├── 20040709-2.c
│   │   │           │   ├── 20040805-1.c
│   │   │           │   ├── 20040811-1.c
│   │   │           │   ├── 20040820-1.c
│   │   │           │   ├── 20040823-1.c
│   │   │           │   ├── 20040831-1.c
│   │   │           │   ├── 20040917-1.c
│   │   │           │   ├── 20041011-1.c
│   │   │           │   ├── 20041019-1.c
│   │   │           │   ├── 20041112-1.c
│   │   │           │   ├── 20041113-1.c
│   │   │           │   ├── 20041114-1.c
│   │   │           │   ├── 20041124-1.c
│   │   │           │   ├── 20041126-1.c
│   │   │           │   ├── 20041201-1.c
│   │   │           │   ├── 20041210-1.c
│   │   │           │   ├── 20041212-1.c
│   │   │           │   ├── 20041213-2.c
│   │   │           │   ├── 20041214-1.c
│   │   │           │   ├── 20041218-1.c
│   │   │           │   ├── 20041218-2.c
│   │   │           │   ├── 20050104-1.c
│   │   │           │   ├── 20050106-1.c
│   │   │           │   ├── 20050107-1.c
│   │   │           │   ├── 20050111-1.c
│   │   │           │   ├── 20050119-1.c
│   │   │           │   ├── 20050119-2.c
│   │   │           │   ├── 20050121-1.c
│   │   │           │   ├── 20050124-1.c
│   │   │           │   ├── 20050125-1.c
│   │   │           │   ├── 20050131-1.c
│   │   │           │   ├── 20050203-1.c
│   │   │           │   ├── 20050215-1.c
│   │   │           │   ├── 20050218-1.c
│   │   │           │   ├── 20050224-1.c
│   │   │           │   ├── 20050316-1.c
│   │   │           │   ├── 20050316-2.c
│   │   │           │   ├── 20050316-3.c
│   │   │           │   ├── 20050410-1.c
│   │   │           │   ├── 20050502-1.c
│   │   │           │   ├── 20050502-2.c
│   │   │           │   ├── 20050604-1.c
│   │   │           │   ├── 20050607-1.c
│   │   │           │   ├── 20050613-1.c
│   │   │           │   ├── 20050713-1.c
│   │   │           │   ├── 20050826-1.c
│   │   │           │   ├── 20050826-2.c
│   │   │           │   ├── 20050929-1.c
│   │   │           │   ├── 20051012-1.c
│   │   │           │   ├── 20051021-1.c
│   │   │           │   ├── 20051104-1.c
│   │   │           │   ├── 20051110-1.c
│   │   │           │   ├── 20051110-2.c
│   │   │           │   ├── 20051113-1.c
│   │   │           │   ├── 20051215-1.c
│   │   │           │   ├── 20060102-1.c
│   │   │           │   ├── 20060110-1.c
│   │   │           │   ├── 20060110-2.c
│   │   │           │   ├── 20060127-1.c
│   │   │           │   ├── 20060412-1.c
│   │   │           │   ├── 20060420-1.c
│   │   │           │   ├── 20060905-1.c
│   │   │           │   ├── 20060910-1.c
│   │   │           │   ├── 20060929-1.c
│   │   │           │   ├── 20060930-1.c
│   │   │           │   ├── 20060930-2.c
│   │   │           │   ├── 20061031-1.c
│   │   │           │   ├── 20061101-1.c
│   │   │           │   ├── 20061101-2.c
│   │   │           │   ├── 20061220-1.c
│   │   │           │   ├── 20070201-1.c
│   │   │           │   ├── 20070212-1.c
│   │   │           │   ├── 20070212-2.c
│   │   │           │   ├── 20070212-3.c
│   │   │           │   ├── 20070424-1.c
│   │   │           │   ├── 20070517-1.c
│   │   │           │   ├── 20070614-1.c
│   │   │           │   ├── 20070623-1.c
│   │   │           │   ├── 20070724-1.c
│   │   │           │   ├── 20070824-1.c
│   │   │           │   ├── 20070919-1.c
│   │   │           │   ├── 20071011-1.c
│   │   │           │   ├── 20071018-1.c
│   │   │           │   ├── 20071029-1.c
│   │   │           │   ├── 20071030-1.c
│   │   │           │   ├── 20071108-1.c
│   │   │           │   ├── 20071120-1.c
│   │   │           │   ├── 20071202-1.c
│   │   │           │   ├── 20071205-1.c
│   │   │           │   ├── 20071210-1.c
│   │   │           │   ├── 20071211-1.c
│   │   │           │   ├── 20071213-1.c
│   │   │           │   ├── 20071216-1.c
│   │   │           │   ├── 20071219-1.c
│   │   │           │   ├── 20071220-1.c
│   │   │           │   ├── 20071220-2.c
│   │   │           │   ├── 20080117-1.c
│   │   │           │   ├── 20080122-1.c
│   │   │           │   ├── 20080222-1.c
│   │   │           │   ├── 20080408-1.c
│   │   │           │   ├── 20080424-1.c
│   │   │           │   ├── 20080502-1.c
│   │   │           │   ├── 20080506-1.c
│   │   │           │   ├── 20080506-2.c
│   │   │           │   ├── 20080519-1.c
│   │   │           │   ├── 20080522-1.c
│   │   │           │   ├── 20080529-1.c
│   │   │           │   ├── 20080604-1.c
│   │   │           │   ├── 20080719-1.c
│   │   │           │   ├── 20080813-1.c
│   │   │           │   ├── 20081103-1.c
│   │   │           │   ├── 20081112-1.c
│   │   │           │   ├── 20081117-1.c
│   │   │           │   ├── 20081218-1.c
│   │   │           │   ├── 20090113-1.c
│   │   │           │   ├── 20090113-2.c
│   │   │           │   ├── 20090113-3.c
│   │   │           │   ├── 20090207-1.c
│   │   │           │   ├── 20090219-1.c
│   │   │           │   ├── 20090527-1.c
│   │   │           │   ├── 20090623-1.c
│   │   │           │   ├── 20090711-1.c
│   │   │           │   ├── 20090814-1.c
│   │   │           │   ├── 20091229-1.c
│   │   │           │   ├── 20100209-1.c
│   │   │           │   ├── 20100316-1.c
│   │   │           │   ├── 20100416-1.c
│   │   │           │   ├── 20100430-1.c
│   │   │           │   ├── 20100708-1.c
│   │   │           │   ├── 20100805-1.c
│   │   │           │   ├── 20100827-1.c
│   │   │           │   ├── 20101011-1.c
│   │   │           │   ├── 20101013-1.c
│   │   │           │   ├── 20101025-1.c
│   │   │           │   ├── 20110418-1.c
│   │   │           │   ├── 20111208-1.c
│   │   │           │   ├── 20111212-1.c
│   │   │           │   ├── 20111227-1.c
│   │   │           │   ├── 20120105-1.c
│   │   │           │   ├── 20120111-1.c
│   │   │           │   ├── 20120207-1.c
│   │   │           │   ├── 20120427-1.c
│   │   │           │   ├── 20120427-2.c
│   │   │           │   ├── 20120615-1.c
│   │   │           │   ├── 20120808-1.c
│   │   │           │   ├── 20120817-1.c
│   │   │           │   ├── 20120919-1.c
│   │   │           │   ├── 20121108-1.c
│   │   │           │   ├── 20131127-1.c
│   │   │           │   ├── 20140212-1.c
│   │   │           │   ├── 20140212-2.c
│   │   │           │   ├── 20140326-1.c
│   │   │           │   ├── 20140425-1.c
│   │   │           │   ├── 20140622-1.c
│   │   │           │   ├── 20140828-1.c
│   │   │           │   ├── 20141022-1.c
│   │   │           │   ├── 20141107-1.c
│   │   │           │   ├── 20141125-1.c
│   │   │           │   ├── 20150611-1.c
│   │   │           │   ├── 900409-1.c
│   │   │           │   ├── 920202-1.c
│   │   │           │   ├── 920302-1.c
│   │   │           │   ├── 920409-1.c
│   │   │           │   ├── 920410-1.c
│   │   │           │   ├── 920411-1.c
│   │   │           │   ├── 920415-1.c
│   │   │           │   ├── 920428-1.c
│   │   │           │   ├── 920428-2.c
│   │   │           │   ├── 920429-1.c
│   │   │           │   ├── 920501-1.c
│   │   │           │   ├── 920501-2.c
│   │   │           │   ├── 920501-3.c
│   │   │           │   ├── 920501-4.c
│   │   │           │   ├── 920501-5.c
│   │   │           │   ├── 920501-6.c
│   │   │           │   ├── 920501-7.c
│   │   │           │   ├── 920501-8.c
│   │   │           │   ├── 920501-9.c
│   │   │           │   ├── 920506-1.c
│   │   │           │   ├── 920520-1.c
│   │   │           │   ├── 920603-1.c
│   │   │           │   ├── 920604-1.c
│   │   │           │   ├── 920612-1.c
│   │   │           │   ├── 920612-2.c
│   │   │           │   ├── 920618-1.c
│   │   │           │   ├── 920625-1.c
│   │   │           │   ├── 920710-1.c
│   │   │           │   ├── 920711-1.c
│   │   │           │   ├── 920721-1.c
│   │   │           │   ├── 920721-2.c
│   │   │           │   ├── 920721-3.c
│   │   │           │   ├── 920721-4.c
│   │   │           │   ├── 920726-1.c
│   │   │           │   ├── 920728-1.c
│   │   │           │   ├── 920730-1.c
│   │   │           │   ├── 920731-1.c
│   │   │           │   ├── 920810-1.c
│   │   │           │   ├── 920812-1.c
│   │   │           │   ├── 920829-1.c
│   │   │           │   ├── 920908-1.c
│   │   │           │   ├── 920908-2.c
│   │   │           │   ├── 920909-1.c
│   │   │           │   ├── 920922-1.c
│   │   │           │   ├── 920929-1.c
│   │   │           │   ├── 921006-1.c
│   │   │           │   ├── 921007-1.c
│   │   │           │   ├── 921013-1.c
│   │   │           │   ├── 921016-1.c
│   │   │           │   ├── 921017-1.c
│   │   │           │   ├── 921019-1.c
│   │   │           │   ├── 921019-2.c
│   │   │           │   ├── 921029-1.c
│   │   │           │   ├── 921104-1.c
│   │   │           │   ├── 921110-1.c
│   │   │           │   ├── 921112-1.c
│   │   │           │   ├── 921113-1.c
│   │   │           │   ├── 921117-1.c
│   │   │           │   ├── 921123-1.c
│   │   │           │   ├── 921123-2.c
│   │   │           │   ├── 921124-1.c
│   │   │           │   ├── 921202-1.c
│   │   │           │   ├── 921202-2.c
│   │   │           │   ├── 921204-1.c
│   │   │           │   ├── 921207-1.c
│   │   │           │   ├── 921208-1.c
│   │   │           │   ├── 921208-2.c
│   │   │           │   ├── 921215-1.c
│   │   │           │   ├── 921218-1.c
│   │   │           │   ├── 921218-2.c
│   │   │           │   ├── 930106-1.c
│   │   │           │   ├── 930111-1.c
│   │   │           │   ├── 930123-1.c
│   │   │           │   ├── 930126-1.c
│   │   │           │   ├── 930208-1.c
│   │   │           │   ├── 930406-1.c
│   │   │           │   ├── 930408-1.c
│   │   │           │   ├── 930429-1.c
│   │   │           │   ├── 930429-2.c
│   │   │           │   ├── 930513-1.c
│   │   │           │   ├── 930513-2.c
│   │   │           │   ├── 930518-1.c
│   │   │           │   ├── 930526-1.c
│   │   │           │   ├── 930527-1.c
│   │   │           │   ├── 930529-1.c
│   │   │           │   ├── 930603-1.c
│   │   │           │   ├── 930603-2.c
│   │   │           │   ├── 930603-3.c
│   │   │           │   ├── 930608-1.c
│   │   │           │   ├── 930614-1.c
│   │   │           │   ├── 930614-2.c
│   │   │           │   ├── 930621-1.c
│   │   │           │   ├── 930622-1.c
│   │   │           │   ├── 930622-2.c
│   │   │           │   ├── 930628-1.c
│   │   │           │   ├── 930630-1.c
│   │   │           │   ├── 930702-1.c
│   │   │           │   ├── 930713-1.c
│   │   │           │   ├── 930718-1.c
│   │   │           │   ├── 930719-1.c
│   │   │           │   ├── 930725-1.c
│   │   │           │   ├── 930818-1.c
│   │   │           │   ├── 930916-1.c
│   │   │           │   ├── 930921-1.c
│   │   │           │   ├── 930929-1.c
│   │   │           │   ├── 930930-1.c
│   │   │           │   ├── 930930-2.c
│   │   │           │   ├── 931002-1.c
│   │   │           │   ├── 931004-1.c
│   │   │           │   ├── 931004-10.c
│   │   │           │   ├── 931004-11.c
│   │   │           │   ├── 931004-12.c
│   │   │           │   ├── 931004-13.c
│   │   │           │   ├── 931004-14.c
│   │   │           │   ├── 931004-2.c
│   │   │           │   ├── 931004-3.c
│   │   │           │   ├── 931004-4.c
│   │   │           │   ├── 931004-5.c
│   │   │           │   ├── 931004-6.c
│   │   │           │   ├── 931004-7.c
│   │   │           │   ├── 931004-8.c
│   │   │           │   ├── 931004-9.c
│   │   │           │   ├── 931005-1.c
│   │   │           │   ├── 931009-1.c
│   │   │           │   ├── 931012-1.c
│   │   │           │   ├── 931017-1.c
│   │   │           │   ├── 931018-1.c
│   │   │           │   ├── 931031-1.c
│   │   │           │   ├── 931102-1.c
│   │   │           │   ├── 931102-2.c
│   │   │           │   ├── 931110-1.c
│   │   │           │   ├── 931110-2.c
│   │   │           │   ├── 931208-1.c
│   │   │           │   ├── 931228-1.c
│   │   │           │   ├── 940115-1.c
│   │   │           │   ├── 940122-1.c
│   │   │           │   ├── 941014-1.c
│   │   │           │   ├── 941014-2.c
│   │   │           │   ├── 941015-1.c
│   │   │           │   ├── 941021-1.c
│   │   │           │   ├── 941025-1.c
│   │   │           │   ├── 941031-1.c
│   │   │           │   ├── 941101-1.c
│   │   │           │   ├── 941110-1.c
│   │   │           │   ├── 941202-1.c
│   │   │           │   ├── 950221-1.c
│   │   │           │   ├── 950322-1.c
│   │   │           │   ├── 950426-1.c
│   │   │           │   ├── 950426-2.c
│   │   │           │   ├── 950503-1.c
│   │   │           │   ├── 950511-1.c
│   │   │           │   ├── 950512-1.c
│   │   │           │   ├── 950605-1.c
│   │   │           │   ├── 950607-1.c
│   │   │           │   ├── 950607-2.c
│   │   │           │   ├── 950612-1.c
│   │   │           │   ├── 950621-1.c
│   │   │           │   ├── 950628-1.c
│   │   │           │   ├── 950704-1.c
│   │   │           │   ├── 950706-1.c
│   │   │           │   ├── 950710-1.c
│   │   │           │   ├── 950714-1.c
│   │   │           │   ├── 950809-1.c
│   │   │           │   ├── 950906-1.c
│   │   │           │   ├── 950915-1.c
│   │   │           │   ├── 950929-1.c
│   │   │           │   ├── 951003-1.c
│   │   │           │   ├── 951115-1.c
│   │   │           │   ├── 951204-1.c
│   │   │           │   ├── 960116-1.c
│   │   │           │   ├── 960117-1.c
│   │   │           │   ├── 960209-1.c
│   │   │           │   ├── 960215-1.c
│   │   │           │   ├── 960218-1.c
│   │   │           │   ├── 960219-1.c
│   │   │           │   ├── 960301-1.c
│   │   │           │   ├── 960302-1.c
│   │   │           │   ├── 960311-1.c
│   │   │           │   ├── 960311-2.c
│   │   │           │   ├── 960311-3.c
│   │   │           │   ├── 960312-1.c
│   │   │           │   ├── 960317-1.c
│   │   │           │   ├── 960321-1.c
│   │   │           │   ├── 960326-1.c
│   │   │           │   ├── 960327-1.c
│   │   │           │   ├── 960402-1.c
│   │   │           │   ├── 960405-1.c
│   │   │           │   ├── 960416-1.c
│   │   │           │   ├── 960419-1.c
│   │   │           │   ├── 960419-2.c
│   │   │           │   ├── 960512-1.c
│   │   │           │   ├── 960513-1.c
│   │   │           │   ├── 960521-1.c
│   │   │           │   ├── 960608-1.c
│   │   │           │   ├── 960801-1.c
│   │   │           │   ├── 960802-1.c
│   │   │           │   ├── 960830-1.c
│   │   │           │   ├── 960909-1.c
│   │   │           │   ├── 961004-1.c
│   │   │           │   ├── 961017-1.c
│   │   │           │   ├── 961017-2.c
│   │   │           │   ├── 961026-1.c
│   │   │           │   ├── 961112-1.c
│   │   │           │   ├── 961122-1.c
│   │   │           │   ├── 961122-2.c
│   │   │           │   ├── 961125-1.c
│   │   │           │   ├── 961206-1.c
│   │   │           │   ├── 961213-1.c
│   │   │           │   ├── 961223-1.c
│   │   │           │   ├── 970214-1.c
│   │   │           │   ├── 970214-2.c
│   │   │           │   ├── 970217-1.c
│   │   │           │   ├── 970923-1.c
│   │   │           │   ├── 980205.c
│   │   │           │   ├── 980223.c
│   │   │           │   ├── 980424-1.c
│   │   │           │   ├── 980505-1.c
│   │   │           │   ├── 980505-2.c
│   │   │           │   ├── 980506-1.c
│   │   │           │   ├── 980506-2.c
│   │   │           │   ├── 980506-3.c
│   │   │           │   ├── 980526-1.c
│   │   │           │   ├── 980526-2.c
│   │   │           │   ├── 980526-3.c
│   │   │           │   ├── 980602-1.c
│   │   │           │   ├── 980602-2.c
│   │   │           │   ├── 980604-1.c
│   │   │           │   ├── 980605-1.c
│   │   │           │   ├── 980608-1.c
│   │   │           │   ├── 980612-1.c
│   │   │           │   ├── 980617-1.c
│   │   │           │   ├── 980618-1.c
│   │   │           │   ├── 980701-1.c
│   │   │           │   ├── 980707-1.c
│   │   │           │   ├── 980709-1.c
│   │   │           │   ├── 980716-1.c
│   │   │           │   ├── 980929-1.c
│   │   │           │   ├── 981001-1.c
│   │   │           │   ├── 981019-1.c
│   │   │           │   ├── 981130-1.c
│   │   │           │   ├── 981206-1.c
│   │   │           │   ├── 990106-1.c
│   │   │           │   ├── 990106-2.c
│   │   │           │   ├── 990117-1.c
│   │   │           │   ├── 990127-1.c
│   │   │           │   ├── 990127-2.c
│   │   │           │   ├── 990128-1.c
│   │   │           │   ├── 990130-1.c
│   │   │           │   ├── 990208-1.c
│   │   │           │   ├── 990211-1.c
│   │   │           │   ├── 990222-1.c
│   │   │           │   ├── 990324-1.c
│   │   │           │   ├── 990326-1.c
│   │   │           │   ├── 990404-1.c
│   │   │           │   ├── 990413-2.c
│   │   │           │   ├── 990513-1.c
│   │   │           │   ├── 990524-1.c
│   │   │           │   ├── 990525-1.c
│   │   │           │   ├── 990525-2.c
│   │   │           │   ├── 990527-1.c
│   │   │           │   ├── 990531-1.c
│   │   │           │   ├── 990604-1.c
│   │   │           │   ├── 990628-1.c
│   │   │           │   ├── 990804-1.c
│   │   │           │   ├── 990811-1.c
│   │   │           │   ├── 990826-0.c
│   │   │           │   ├── 990827-1.c
│   │   │           │   ├── 990829-1.c
│   │   │           │   ├── 990923-1.c
│   │   │           │   ├── 991014-1.c
│   │   │           │   ├── 991016-1.c
│   │   │           │   ├── 991019-1.c
│   │   │           │   ├── 991023-1.c
│   │   │           │   ├── 991030-1.c
│   │   │           │   ├── 991112-1.c
│   │   │           │   ├── 991118-1.c
│   │   │           │   ├── 991201-1.c
│   │   │           │   ├── 991202-1.c
│   │   │           │   ├── 991202-2.c
│   │   │           │   ├── 991202-3.c
│   │   │           │   ├── 991216-1.c
│   │   │           │   ├── 991216-2.c
│   │   │           │   ├── 991216-4.c
│   │   │           │   ├── 991221-1.c
│   │   │           │   ├── 991227-1.c
│   │   │           │   ├── 991228-1.c
│   │   │           │   ├── alias-1.c
│   │   │           │   ├── alias-2.c
│   │   │           │   ├── alias-3.c
│   │   │           │   ├── alias-4.c
│   │   │           │   ├── align-1.c
│   │   │           │   ├── align-2.c
│   │   │           │   ├── align-3.c
│   │   │           │   ├── align-nest.c
│   │   │           │   ├── alloca-1.c
│   │   │           │   ├── anon-1.c
│   │   │           │   ├── arith-1.c
│   │   │           │   ├── arith-rand-ll.c
│   │   │           │   ├── arith-rand.c
│   │   │           │   ├── ashldi-1.c
│   │   │           │   ├── ashrdi-1.c
│   │   │           │   ├── bcp-1.c
│   │   │           │   ├── bf-layout-1.c
│   │   │           │   ├── bf-pack-1.c
│   │   │           │   ├── bf-sign-1.c
│   │   │           │   ├── bf-sign-2.c
│   │   │           │   ├── bf64-1.c
│   │   │           │   ├── bitfld-1.c
│   │   │           │   ├── bitfld-2.c
│   │   │           │   ├── bitfld-3.c
│   │   │           │   ├── bitfld-4.c
│   │   │           │   ├── bitfld-5.c
│   │   │           │   ├── bitfld-6.c
│   │   │           │   ├── bitfld-7.c
│   │   │           │   ├── bswap-1.c
│   │   │           │   ├── bswap-2.c
│   │   │           │   ├── built-in-setjmp.c
│   │   │           │   ├── builtin-bitops-1.c
│   │   │           │   ├── builtin-constant.c
│   │   │           │   ├── builtin-prefetch-1.c
│   │   │           │   ├── builtin-prefetch-2.c
│   │   │           │   ├── builtin-prefetch-3.c
│   │   │           │   ├── builtin-prefetch-4.c
│   │   │           │   ├── builtin-prefetch-5.c
│   │   │           │   ├── builtin-prefetch-6.c
│   │   │           │   ├── builtin-types-compatible-p.c
│   │   │           │   ├── builtins/
│   │   │           │   │   ├── 20010124-1-lib.c
│   │   │           │   │   ├── 20010124-1.c
│   │   │           │   │   ├── 20010124-1.x
│   │   │           │   │   ├── abs-1-lib.c
│   │   │           │   │   ├── abs-1.c
│   │   │           │   │   ├── abs-1.x
│   │   │           │   │   ├── abs-2-lib.c
│   │   │           │   │   ├── abs-2.c
│   │   │           │   │   ├── abs-3-lib.c
│   │   │           │   │   ├── abs-3.c
│   │   │           │   │   ├── builtins.exp
│   │   │           │   │   ├── chk.h
│   │   │           │   │   ├── complex-1-lib.c
│   │   │           │   │   ├── complex-1.c
│   │   │           │   │   ├── fprintf-lib.c
│   │   │           │   │   ├── fprintf.c
│   │   │           │   │   ├── fprintf.x
│   │   │           │   │   ├── fputs-lib.c
│   │   │           │   │   ├── fputs.c
│   │   │           │   │   ├── fputs.x
│   │   │           │   │   ├── lib/
│   │   │           │   │   │   ├── abs.c
│   │   │           │   │   │   ├── bfill.c
│   │   │           │   │   │   ├── bzero.c
│   │   │           │   │   │   ├── chk.c
│   │   │           │   │   │   ├── fprintf.c
│   │   │           │   │   │   ├── main.c
│   │   │           │   │   │   ├── memchr.c
│   │   │           │   │   │   ├── memcmp.c
│   │   │           │   │   │   ├── memmove.c
│   │   │           │   │   │   ├── mempcpy.c
│   │   │           │   │   │   ├── memset.c
│   │   │           │   │   │   ├── printf.c
│   │   │           │   │   │   ├── sprintf.c
│   │   │           │   │   │   ├── stpcpy.c
│   │   │           │   │   │   ├── strcat.c
│   │   │           │   │   │   ├── strchr.c
│   │   │           │   │   │   ├── strcmp.c
│   │   │           │   │   │   ├── strcpy.c
│   │   │           │   │   │   ├── strcspn.c
│   │   │           │   │   │   ├── strlen.c
│   │   │           │   │   │   ├── strncat.c
│   │   │           │   │   │   ├── strncmp.c
│   │   │           │   │   │   ├── strncpy.c
│   │   │           │   │   │   ├── strpbrk.c
│   │   │           │   │   │   ├── strrchr.c
│   │   │           │   │   │   ├── strspn.c
│   │   │           │   │   │   └── strstr.c
│   │   │           │   │   ├── memchr-lib.c
│   │   │           │   │   ├── memchr.c
│   │   │           │   │   ├── memcmp-lib.c
│   │   │           │   │   ├── memcmp.c
│   │   │           │   │   ├── memcpy-chk-lib.c
│   │   │           │   │   ├── memcpy-chk.c
│   │   │           │   │   ├── memcpy-chk.x
│   │   │           │   │   ├── memmove-2-lib.c
│   │   │           │   │   ├── memmove-2.c
│   │   │           │   │   ├── memmove-chk-lib.c
│   │   │           │   │   ├── memmove-chk.c
│   │   │           │   │   ├── memmove-chk.x
│   │   │           │   │   ├── memmove-lib.c
│   │   │           │   │   ├── memmove.c
│   │   │           │   │   ├── memops-asm-lib.c
│   │   │           │   │   ├── memops-asm.c
│   │   │           │   │   ├── memops-asm.x
│   │   │           │   │   ├── mempcpy-2-lib.c
│   │   │           │   │   ├── mempcpy-2.c
│   │   │           │   │   ├── mempcpy-chk-lib.c
│   │   │           │   │   ├── mempcpy-chk.c
│   │   │           │   │   ├── mempcpy-chk.x
│   │   │           │   │   ├── mempcpy-lib.c
│   │   │           │   │   ├── mempcpy.c
│   │   │           │   │   ├── memset-chk-lib.c
│   │   │           │   │   ├── memset-chk.c
│   │   │           │   │   ├── memset-chk.x
│   │   │           │   │   ├── memset-lib.c
│   │   │           │   │   ├── memset.c
│   │   │           │   │   ├── pr22237-lib.c
│   │   │           │   │   ├── pr22237.c
│   │   │           │   │   ├── pr23484-chk-lib.c
│   │   │           │   │   ├── pr23484-chk.c
│   │   │           │   │   ├── pr23484-chk.x
│   │   │           │   │   ├── printf-lib.c
│   │   │           │   │   ├── printf.c
│   │   │           │   │   ├── snprintf-chk-lib.c
│   │   │           │   │   ├── snprintf-chk.c
│   │   │           │   │   ├── snprintf-chk.x
│   │   │           │   │   ├── sprintf-chk-lib.c
│   │   │           │   │   ├── sprintf-chk.c
│   │   │           │   │   ├── sprintf-chk.x
│   │   │           │   │   ├── sprintf-lib.c
│   │   │           │   │   ├── sprintf.c
│   │   │           │   │   ├── stpcpy-chk-lib.c
│   │   │           │   │   ├── stpcpy-chk.c
│   │   │           │   │   ├── stpcpy-chk.x
│   │   │           │   │   ├── stpncpy-chk-lib.c
│   │   │           │   │   ├── stpncpy-chk.c
│   │   │           │   │   ├── stpncpy-chk.x
│   │   │           │   │   ├── strcat-chk-lib.c
│   │   │           │   │   ├── strcat-chk.c
│   │   │           │   │   ├── strcat-chk.x
│   │   │           │   │   ├── strcat-lib.c
│   │   │           │   │   ├── strcat.c
│   │   │           │   │   ├── strchr-lib.c
│   │   │           │   │   ├── strchr.c
│   │   │           │   │   ├── strcmp-lib.c
│   │   │           │   │   ├── strcmp.c
│   │   │           │   │   ├── strcpy-2-lib.c
│   │   │           │   │   ├── strcpy-2.c
│   │   │           │   │   ├── strcpy-chk-lib.c
│   │   │           │   │   ├── strcpy-chk.c
│   │   │           │   │   ├── strcpy-chk.x
│   │   │           │   │   ├── strcpy-lib.c
│   │   │           │   │   ├── strcpy.c
│   │   │           │   │   ├── strcspn-lib.c
│   │   │           │   │   ├── strcspn.c
│   │   │           │   │   ├── strlen-2-lib.c
│   │   │           │   │   ├── strlen-2.c
│   │   │           │   │   ├── strlen-3-lib.c
│   │   │           │   │   ├── strlen-3.c
│   │   │           │   │   ├── strlen-lib.c
│   │   │           │   │   ├── strlen.c
│   │   │           │   │   ├── strncat-chk-lib.c
│   │   │           │   │   ├── strncat-chk.c
│   │   │           │   │   ├── strncat-chk.x
│   │   │           │   │   ├── strncat-lib.c
│   │   │           │   │   ├── strncat.c
│   │   │           │   │   ├── strncmp-2-lib.c
│   │   │           │   │   ├── strncmp-2.c
│   │   │           │   │   ├── strncmp-lib.c
│   │   │           │   │   ├── strncmp.c
│   │   │           │   │   ├── strncpy-chk-lib.c
│   │   │           │   │   ├── strncpy-chk.c
│   │   │           │   │   ├── strncpy-chk.x
│   │   │           │   │   ├── strncpy-lib.c
│   │   │           │   │   ├── strncpy.c
│   │   │           │   │   ├── strpbrk-lib.c
│   │   │           │   │   ├── strpbrk.c
│   │   │           │   │   ├── strpcpy-2-lib.c
│   │   │           │   │   ├── strpcpy-2.c
│   │   │           │   │   ├── strpcpy-lib.c
│   │   │           │   │   ├── strpcpy.c
│   │   │           │   │   ├── strrchr-lib.c
│   │   │           │   │   ├── strrchr.c
│   │   │           │   │   ├── strspn-lib.c
│   │   │           │   │   ├── strspn.c
│   │   │           │   │   ├── strstr-asm-lib.c
│   │   │           │   │   ├── strstr-asm.c
│   │   │           │   │   ├── strstr-asm.x
│   │   │           │   │   ├── strstr-lib.c
│   │   │           │   │   ├── strstr.c
│   │   │           │   │   ├── vsnprintf-chk-lib.c
│   │   │           │   │   ├── vsnprintf-chk.c
│   │   │           │   │   ├── vsnprintf-chk.x
│   │   │           │   │   ├── vsprintf-chk-lib.c
│   │   │           │   │   ├── vsprintf-chk.c
│   │   │           │   │   └── vsprintf-chk.x
│   │   │           │   ├── call-trap-1.c
│   │   │           │   ├── cbrt.c
│   │   │           │   ├── cmpdi-1.c
│   │   │           │   ├── cmpsf-1.c
│   │   │           │   ├── cmpsi-1.c
│   │   │           │   ├── cmpsi-2.c
│   │   │           │   ├── comp-goto-1.c
│   │   │           │   ├── comp-goto-2.c
│   │   │           │   ├── compare-1.c
│   │   │           │   ├── compare-2.c
│   │   │           │   ├── compare-3.c
│   │   │           │   ├── complex-1.c
│   │   │           │   ├── complex-2.c
│   │   │           │   ├── complex-3.c
│   │   │           │   ├── complex-4.c
│   │   │           │   ├── complex-5.c
│   │   │           │   ├── complex-6.c
│   │   │           │   ├── complex-7.c
│   │   │           │   ├── compndlit-1.c
│   │   │           │   ├── const-addr-expr-1.c
│   │   │           │   ├── conversion.c
│   │   │           │   ├── cvt-1.c
│   │   │           │   ├── dbra-1.c
│   │   │           │   ├── divcmp-1.c
│   │   │           │   ├── divcmp-2.c
│   │   │           │   ├── divcmp-3.c
│   │   │           │   ├── divcmp-4.c
│   │   │           │   ├── divcmp-5.c
│   │   │           │   ├── divconst-1.c
│   │   │           │   ├── divconst-2.c
│   │   │           │   ├── divconst-3.c
│   │   │           │   ├── divmod-1.c
│   │   │           │   ├── doloop-1.c
│   │   │           │   ├── doloop-2.c
│   │   │           │   ├── eeprof-1.c
│   │   │           │   ├── enum-1.c
│   │   │           │   ├── enum-2.c
│   │   │           │   ├── enum-3.c
│   │   │           │   ├── execute.exp
│   │   │           │   ├── extzvsi.c
│   │   │           │   ├── ffs-1.c
│   │   │           │   ├── ffs-2.c
│   │   │           │   ├── float-floor.c
│   │   │           │   ├── floatunsisf-1.c
│   │   │           │   ├── fprintf-1.c
│   │   │           │   ├── fprintf-chk-1.c
│   │   │           │   ├── frame-address.c
│   │   │           │   ├── func-ptr-1.c
│   │   │           │   ├── gofast.c
│   │   │           │   ├── ieee/
│   │   │           │   │   ├── 20000320-1.c
│   │   │           │   │   ├── 20000320-1.x
│   │   │           │   │   ├── 20001122-1.c
│   │   │           │   │   ├── 20010114-2.c
│   │   │           │   │   ├── 20010114-2.x
│   │   │           │   │   ├── 20010226-1.c
│   │   │           │   │   ├── 20011123-1.c
│   │   │           │   │   ├── 20030331-1.c
│   │   │           │   │   ├── 20030331-1.x
│   │   │           │   │   ├── 20041213-1.c
│   │   │           │   │   ├── 920518-1.c
│   │   │           │   │   ├── 920518-1.x
│   │   │           │   │   ├── 920810-1.c
│   │   │           │   │   ├── 930529-1.c
│   │   │           │   │   ├── 980619-1.c
│   │   │           │   │   ├── 980619-1.x
│   │   │           │   │   ├── acc1.c
│   │   │           │   │   ├── acc2.c
│   │   │           │   │   ├── builtin-nan-1.c
│   │   │           │   │   ├── compare-fp-1.c
│   │   │           │   │   ├── compare-fp-1.x
│   │   │           │   │   ├── compare-fp-2.c
│   │   │           │   │   ├── compare-fp-3.c
│   │   │           │   │   ├── compare-fp-3.x
│   │   │           │   │   ├── compare-fp-4.c
│   │   │           │   │   ├── compare-fp-4.x
│   │   │           │   │   ├── copysign1.c
│   │   │           │   │   ├── copysign2.c
│   │   │           │   │   ├── fp-cmp-1.c
│   │   │           │   │   ├── fp-cmp-1.x
│   │   │           │   │   ├── fp-cmp-2.c
│   │   │           │   │   ├── fp-cmp-2.x
│   │   │           │   │   ├── fp-cmp-3.c
│   │   │           │   │   ├── fp-cmp-3.x
│   │   │           │   │   ├── fp-cmp-4.c
│   │   │           │   │   ├── fp-cmp-4e.c
│   │   │           │   │   ├── fp-cmp-4f.c
│   │   │           │   │   ├── fp-cmp-4f.x
│   │   │           │   │   ├── fp-cmp-4l.c
│   │   │           │   │   ├── fp-cmp-5.c
│   │   │           │   │   ├── fp-cmp-6.c
│   │   │           │   │   ├── fp-cmp-6.x
│   │   │           │   │   ├── fp-cmp-7.c
│   │   │           │   │   ├── fp-cmp-8.c
│   │   │           │   │   ├── fp-cmp-8e.c
│   │   │           │   │   ├── fp-cmp-8f.c
│   │   │           │   │   ├── fp-cmp-8f.x
│   │   │           │   │   ├── fp-cmp-8l.c
│   │   │           │   │   ├── hugeval.c
│   │   │           │   │   ├── hugeval.x
│   │   │           │   │   ├── ieee.exp
│   │   │           │   │   ├── inf-1.c
│   │   │           │   │   ├── inf-2.c
│   │   │           │   │   ├── inf-3.c
│   │   │           │   │   ├── minuszero.c
│   │   │           │   │   ├── mul-subnormal-single-1.c
│   │   │           │   │   ├── mul-subnormal-single-1.x
│   │   │           │   │   ├── mzero2.c
│   │   │           │   │   ├── mzero2.x
│   │   │           │   │   ├── mzero3.c
│   │   │           │   │   ├── mzero4.c
│   │   │           │   │   ├── mzero5.c
│   │   │           │   │   ├── mzero6.c
│   │   │           │   │   ├── pr28634.c
│   │   │           │   │   ├── pr29302-1.c
│   │   │           │   │   ├── pr29302-1.x
│   │   │           │   │   ├── pr30704.c
│   │   │           │   │   ├── pr30704.x
│   │   │           │   │   ├── pr36332.c
│   │   │           │   │   ├── pr38016.c
│   │   │           │   │   ├── pr38016.x
│   │   │           │   │   ├── pr50310.c
│   │   │           │   │   ├── pr67218.c
│   │   │           │   │   ├── pr72824-2.c
│   │   │           │   │   ├── pr72824.c
│   │   │           │   │   ├── rbug.c
│   │   │           │   │   ├── rbug.x
│   │   │           │   │   ├── unsafe-fp-assoc-1.c
│   │   │           │   │   ├── unsafe-fp-assoc-1.x
│   │   │           │   │   └── unsafe-fp-assoc.c
│   │   │           │   ├── ifcvt-onecmpl-abs-1.c
│   │   │           │   ├── index-1.c
│   │   │           │   ├── inst-check.c
│   │   │           │   ├── int-compare.c
│   │   │           │   ├── ipa-sra-1.c
│   │   │           │   ├── ipa-sra-2.c
│   │   │           │   ├── longlong.c
│   │   │           │   ├── loop-1.c
│   │   │           │   ├── loop-10.c
│   │   │           │   ├── loop-11.c
│   │   │           │   ├── loop-12.c
│   │   │           │   ├── loop-13.c
│   │   │           │   ├── loop-14.c
│   │   │           │   ├── loop-15.c
│   │   │           │   ├── loop-2.c
│   │   │           │   ├── loop-2b.c
│   │   │           │   ├── loop-2c.c
│   │   │           │   ├── loop-2d.c
│   │   │           │   ├── loop-2e.c
│   │   │           │   ├── loop-2f.c
│   │   │           │   ├── loop-2g.c
│   │   │           │   ├── loop-3.c
│   │   │           │   ├── loop-3b.c
│   │   │           │   ├── loop-3c.c
│   │   │           │   ├── loop-4.c
│   │   │           │   ├── loop-4b.c
│   │   │           │   ├── loop-5.c
│   │   │           │   ├── loop-6.c
│   │   │           │   ├── loop-7.c
│   │   │           │   ├── loop-8.c
│   │   │           │   ├── loop-9.c
│   │   │           │   ├── loop-ivopts-1.c
│   │   │           │   ├── loop-ivopts-2.c
│   │   │           │   ├── lshrdi-1.c
│   │   │           │   ├── lto-tbaa-1.c
│   │   │           │   ├── mayalias-1.c
│   │   │           │   ├── mayalias-2.c
│   │   │           │   ├── mayalias-3.c
│   │   │           │   ├── medce-1.c
│   │   │           │   ├── memcpy-1.c
│   │   │           │   ├── memcpy-2.c
│   │   │           │   ├── memcpy-bi.c
│   │   │           │   ├── memset-1.c
│   │   │           │   ├── memset-2.c
│   │   │           │   ├── memset-3.c
│   │   │           │   ├── memset-4.c
│   │   │           │   ├── mod-1.c
│   │   │           │   ├── mode-dependent-address.c
│   │   │           │   ├── multdi-1.c
│   │   │           │   ├── multi-ix.c
│   │   │           │   ├── nest-align-1.c
│   │   │           │   ├── nest-stdar-1.c
│   │   │           │   ├── nestfunc-1.c
│   │   │           │   ├── nestfunc-2.c
│   │   │           │   ├── nestfunc-3.c
│   │   │           │   ├── nestfunc-4.c
│   │   │           │   ├── nestfunc-5.c
│   │   │           │   ├── nestfunc-6.c
│   │   │           │   ├── nestfunc-7.c
│   │   │           │   ├── p18298.c
│   │   │           │   ├── packed-1.c
│   │   │           │   ├── packed-2.c
│   │   │           │   ├── pending-4.c
│   │   │           │   ├── postmod-1.c
│   │   │           │   ├── pr15262-1.c
│   │   │           │   ├── pr15262-2.c
│   │   │           │   ├── pr15262.c
│   │   │           │   ├── pr15296.c
│   │   │           │   ├── pr16790-1.c
│   │   │           │   ├── pr17078-1.c
│   │   │           │   ├── pr17133.c
│   │   │           │   ├── pr17252.c
│   │   │           │   ├── pr17377.c
│   │   │           │   ├── pr19005.c
│   │   │           │   ├── pr19449.c
│   │   │           │   ├── pr19515.c
│   │   │           │   ├── pr19606.c
│   │   │           │   ├── pr19687.c
│   │   │           │   ├── pr19689.c
│   │   │           │   ├── pr20100-1.c
│   │   │           │   ├── pr20187-1.c
│   │   │           │   ├── pr20466-1.c
│   │   │           │   ├── pr20527-1.c
│   │   │           │   ├── pr20601-1.c
│   │   │           │   ├── pr20621-1.c
│   │   │           │   ├── pr21173.c
│   │   │           │   ├── pr21331.c
│   │   │           │   ├── pr21964-1.c
│   │   │           │   ├── pr22061-1.c
│   │   │           │   ├── pr22061-2.c
│   │   │           │   ├── pr22061-3.c
│   │   │           │   ├── pr22061-4.c
│   │   │           │   ├── pr22098-1.c
│   │   │           │   ├── pr22098-2.c
│   │   │           │   ├── pr22098-3.c
│   │   │           │   ├── pr22348.c
│   │   │           │   ├── pr22429.c
│   │   │           │   ├── pr22493-1.c
│   │   │           │   ├── pr22630.c
│   │   │           │   ├── pr23047.c
│   │   │           │   ├── pr23135.c
│   │   │           │   ├── pr23324.c
│   │   │           │   ├── pr23467.c
│   │   │           │   ├── pr23604.c
│   │   │           │   ├── pr23941.c
│   │   │           │   ├── pr24135.c
│   │   │           │   ├── pr24141.c
│   │   │           │   ├── pr24142.c
│   │   │           │   ├── pr24716.c
│   │   │           │   ├── pr24851.c
│   │   │           │   ├── pr25125.c
│   │   │           │   ├── pr25737.c
│   │   │           │   ├── pr27073.c
│   │   │           │   ├── pr27260.c
│   │   │           │   ├── pr27285.c
│   │   │           │   ├── pr27364.c
│   │   │           │   ├── pr27671-1.c
│   │   │           │   ├── pr28289.c
│   │   │           │   ├── pr28403.c
│   │   │           │   ├── pr28651.c
│   │   │           │   ├── pr28778.c
│   │   │           │   ├── pr28865.c
│   │   │           │   ├── pr28982a.c
│   │   │           │   ├── pr28982b.c
│   │   │           │   ├── pr29006.c
│   │   │           │   ├── pr29156.c
│   │   │           │   ├── pr29695-1.c
│   │   │           │   ├── pr29695-2.c
│   │   │           │   ├── pr29797-1.c
│   │   │           │   ├── pr29797-2.c
│   │   │           │   ├── pr29798.c
│   │   │           │   ├── pr30185.c
│   │   │           │   ├── pr30778.c
│   │   │           │   ├── pr31072.c
│   │   │           │   ├── pr31136.c
│   │   │           │   ├── pr31169.c
│   │   │           │   ├── pr31448-2.c
│   │   │           │   ├── pr31448.c
│   │   │           │   ├── pr31605.c
│   │   │           │   ├── pr32244-1.c
│   │   │           │   ├── pr32500.c
│   │   │           │   ├── pr33142.c
│   │   │           │   ├── pr33382.c
│   │   │           │   ├── pr33631.c
│   │   │           │   ├── pr33669.c
│   │   │           │   ├── pr33779-1.c
│   │   │           │   ├── pr33779-2.c
│   │   │           │   ├── pr33870-1.c
│   │   │           │   ├── pr33870.c
│   │   │           │   ├── pr33992.c
│   │   │           │   ├── pr34070-1.c
│   │   │           │   ├── pr34070-2.c
│   │   │           │   ├── pr34099-2.c
│   │   │           │   ├── pr34099.c
│   │   │           │   ├── pr34130.c
│   │   │           │   ├── pr34154.c
│   │   │           │   ├── pr34176.c
│   │   │           │   ├── pr34415.c
│   │   │           │   ├── pr34456.c
│   │   │           │   ├── pr34768-1.c
│   │   │           │   ├── pr34768-2.c
│   │   │           │   ├── pr34971.c
│   │   │           │   ├── pr34982.c
│   │   │           │   ├── pr35163.c
│   │   │           │   ├── pr35231.c
│   │   │           │   ├── pr35390.c
│   │   │           │   ├── pr35456.c
│   │   │           │   ├── pr35472.c
│   │   │           │   ├── pr35800.c
│   │   │           │   ├── pr36034-1.c
│   │   │           │   ├── pr36034-2.c
│   │   │           │   ├── pr36038.c
│   │   │           │   ├── pr36077.c
│   │   │           │   ├── pr36093.c
│   │   │           │   ├── pr36321.c
│   │   │           │   ├── pr36339.c
│   │   │           │   ├── pr36343.c
│   │   │           │   ├── pr36691.c
│   │   │           │   ├── pr36765.c
│   │   │           │   ├── pr37102.c
│   │   │           │   ├── pr37125.c
│   │   │           │   ├── pr37573.c
│   │   │           │   ├── pr37882.c
│   │   │           │   ├── pr37924.c
│   │   │           │   ├── pr37931.c
│   │   │           │   ├── pr38048-1.c
│   │   │           │   ├── pr38048-2.c
│   │   │           │   ├── pr38051.c
│   │   │           │   ├── pr38151.c
│   │   │           │   ├── pr38212.c
│   │   │           │   ├── pr38236.c
│   │   │           │   ├── pr38422.c
│   │   │           │   ├── pr38533.c
│   │   │           │   ├── pr38819.c
│   │   │           │   ├── pr38969.c
│   │   │           │   ├── pr39100.c
│   │   │           │   ├── pr39120.c
│   │   │           │   ├── pr39228.c
│   │   │           │   ├── pr39233.c
│   │   │           │   ├── pr39240.c
│   │   │           │   ├── pr39339.c
│   │   │           │   ├── pr39501.c
│   │   │           │   ├── pr40022.c
│   │   │           │   ├── pr40057.c
│   │   │           │   ├── pr40386.c
│   │   │           │   ├── pr40404.c
│   │   │           │   ├── pr40493.c
│   │   │           │   ├── pr40579.c
│   │   │           │   ├── pr40657.c
│   │   │           │   ├── pr40668.c
│   │   │           │   ├── pr40747.c
│   │   │           │   ├── pr41239.c
│   │   │           │   ├── pr41317.c
│   │   │           │   ├── pr41395-1.c
│   │   │           │   ├── pr41395-2.c
│   │   │           │   ├── pr41463.c
│   │   │           │   ├── pr41750.c
│   │   │           │   ├── pr41917.c
│   │   │           │   ├── pr41919.c
│   │   │           │   ├── pr41935.c
│   │   │           │   ├── pr42006.c
│   │   │           │   ├── pr42142.c
│   │   │           │   ├── pr42154.c
│   │   │           │   ├── pr42231.c
│   │   │           │   ├── pr42248.c
│   │   │           │   ├── pr42269-2.c
│   │   │           │   ├── pr42512.c
│   │   │           │   ├── pr42544.c
│   │   │           │   ├── pr42570.c
│   │   │           │   ├── pr42614.c
│   │   │           │   ├── pr42691.c
│   │   │           │   ├── pr42721.c
│   │   │           │   ├── pr42833.c
│   │   │           │   ├── pr43008.c
│   │   │           │   ├── pr43220.c
│   │   │           │   ├── pr43236.c
│   │   │           │   ├── pr43269.c
│   │   │           │   ├── pr43385.c
│   │   │           │   ├── pr43438.c
│   │   │           │   ├── pr43560.c
│   │   │           │   ├── pr43629.c
│   │   │           │   ├── pr43783.c
│   │   │           │   ├── pr43784.c
│   │   │           │   ├── pr43835.c
│   │   │           │   ├── pr43987.c
│   │   │           │   ├── pr44164.c
│   │   │           │   ├── pr44202-1.c
│   │   │           │   ├── pr44468.c
│   │   │           │   ├── pr44555.c
│   │   │           │   ├── pr44575.c
│   │   │           │   ├── pr44683.c
│   │   │           │   ├── pr44828.c
│   │   │           │   ├── pr44852.c
│   │   │           │   ├── pr44858.c
│   │   │           │   ├── pr44942.c
│   │   │           │   ├── pr45034.c
│   │   │           │   ├── pr45070.c
│   │   │           │   ├── pr45262.c
│   │   │           │   ├── pr45695.c
│   │   │           │   ├── pr46019.c
│   │   │           │   ├── pr46309.c
│   │   │           │   ├── pr46316.c
│   │   │           │   ├── pr46909-1.c
│   │   │           │   ├── pr46909-2.c
│   │   │           │   ├── pr47148.c
│   │   │           │   ├── pr47155.c
│   │   │           │   ├── pr47237.c
│   │   │           │   ├── pr47299.c
│   │   │           │   ├── pr47337.c
│   │   │           │   ├── pr47538.c
│   │   │           │   ├── pr47925.c
│   │   │           │   ├── pr48197.c
│   │   │           │   ├── pr48571-1.c
│   │   │           │   ├── pr48717.c
│   │   │           │   ├── pr48809.c
│   │   │           │   ├── pr48814-1.c
│   │   │           │   ├── pr48814-2.c
│   │   │           │   ├── pr48973-1.c
│   │   │           │   ├── pr48973-2.c
│   │   │           │   ├── pr49039.c
│   │   │           │   ├── pr49073.c
│   │   │           │   ├── pr49123.c
│   │   │           │   ├── pr49161.c
│   │   │           │   ├── pr49186.c
│   │   │           │   ├── pr49218.c
│   │   │           │   ├── pr49279.c
│   │   │           │   ├── pr49281.c
│   │   │           │   ├── pr49390.c
│   │   │           │   ├── pr49419.c
│   │   │           │   ├── pr49644.c
│   │   │           │   ├── pr49712.c
│   │   │           │   ├── pr49768.c
│   │   │           │   ├── pr49886.c
│   │   │           │   ├── pr50865.c
│   │   │           │   ├── pr51023.c
│   │   │           │   ├── pr51323.c
│   │   │           │   ├── pr51447.c
│   │   │           │   ├── pr51466.c
│   │   │           │   ├── pr51581-1.c
│   │   │           │   ├── pr51581-2.c
│   │   │           │   ├── pr51877.c
│   │   │           │   ├── pr51933.c
│   │   │           │   ├── pr52129.c
│   │   │           │   ├── pr52209.c
│   │   │           │   ├── pr52286.c
│   │   │           │   ├── pr52760.c
│   │   │           │   ├── pr52979-1.c
│   │   │           │   ├── pr52979-2.c
│   │   │           │   ├── pr53084.c
│   │   │           │   ├── pr53160.c
│   │   │           │   ├── pr53465.c
│   │   │           │   ├── pr53645-2.c
│   │   │           │   ├── pr53645.c
│   │   │           │   ├── pr53688.c
│   │   │           │   ├── pr54471.c
│   │   │           │   ├── pr54937.c
│   │   │           │   ├── pr54985.c
│   │   │           │   ├── pr55137.c
│   │   │           │   ├── pr55750.c
│   │   │           │   ├── pr55875.c
│   │   │           │   ├── pr56051.c
│   │   │           │   ├── pr56205.c
│   │   │           │   ├── pr56250.c
│   │   │           │   ├── pr56799.c
│   │   │           │   ├── pr56837.c
│   │   │           │   ├── pr56866.c
│   │   │           │   ├── pr56899.c
│   │   │           │   ├── pr56962.c
│   │   │           │   ├── pr56982.c
│   │   │           │   ├── pr57124.c
│   │   │           │   ├── pr57130.c
│   │   │           │   ├── pr57131.c
│   │   │           │   ├── pr57144.c
│   │   │           │   ├── pr57281.c
│   │   │           │   ├── pr57321.c
│   │   │           │   ├── pr57344-1.c
│   │   │           │   ├── pr57344-2.c
│   │   │           │   ├── pr57344-3.c
│   │   │           │   ├── pr57344-4.c
│   │   │           │   ├── pr57568.c
│   │   │           │   ├── pr57829.c
│   │   │           │   ├── pr57860.c
│   │   │           │   ├── pr57861.c
│   │   │           │   ├── pr57875.c
│   │   │           │   ├── pr57876.c
│   │   │           │   ├── pr57877.c
│   │   │           │   ├── pr58209.c
│   │   │           │   ├── pr58277-1.c
│   │   │           │   ├── pr58277-2.c
│   │   │           │   ├── pr58364.c
│   │   │           │   ├── pr58365.c
│   │   │           │   ├── pr58385.c
│   │   │           │   ├── pr58387.c
│   │   │           │   ├── pr58419.c
│   │   │           │   ├── pr58431.c
│   │   │           │   ├── pr58564.c
│   │   │           │   ├── pr58570.c
│   │   │           │   ├── pr58574.c
│   │   │           │   ├── pr58640-2.c
│   │   │           │   ├── pr58640.c
│   │   │           │   ├── pr58662.c
│   │   │           │   ├── pr58726.c
│   │   │           │   ├── pr58831.c
│   │   │           │   ├── pr58943.c
│   │   │           │   ├── pr58984.c
│   │   │           │   ├── pr59014-2.c
│   │   │           │   ├── pr59014.c
│   │   │           │   ├── pr59101.c
│   │   │           │   ├── pr59221.c
│   │   │           │   ├── pr59229.c
│   │   │           │   ├── pr59358.c
│   │   │           │   ├── pr59387.c
│   │   │           │   ├── pr59388.c
│   │   │           │   ├── pr59413.c
│   │   │           │   ├── pr59643.c
│   │   │           │   ├── pr59747.c
│   │   │           │   ├── pr60003.c
│   │   │           │   ├── pr60017.c
│   │   │           │   ├── pr60062.c
│   │   │           │   ├── pr60072.c
│   │   │           │   ├── pr60454.c
│   │   │           │   ├── pr60822.c
│   │   │           │   ├── pr60960.c
│   │   │           │   ├── pr61306-1.c
│   │   │           │   ├── pr61306-2.c
│   │   │           │   ├── pr61306-3.c
│   │   │           │   ├── pr61375.c
│   │   │           │   ├── pr61517.c
│   │   │           │   ├── pr61673.c
│   │   │           │   ├── pr61682.c
│   │   │           │   ├── pr61725.c
│   │   │           │   ├── pr62151.c
│   │   │           │   ├── pr63209.c
│   │   │           │   ├── pr63302.c
│   │   │           │   ├── pr63641.c
│   │   │           │   ├── pr63659.c
│   │   │           │   ├── pr63843.c
│   │   │           │   ├── pr64006.c
│   │   │           │   ├── pr64255.c
│   │   │           │   ├── pr64260.c
│   │   │           │   ├── pr64682.c
│   │   │           │   ├── pr64718.c
│   │   │           │   ├── pr64756.c
│   │   │           │   ├── pr64957.c
│   │   │           │   ├── pr64979.c
│   │   │           │   ├── pr65053-1.c
│   │   │           │   ├── pr65053-2.c
│   │   │           │   ├── pr65170.c
│   │   │           │   ├── pr65215-1.c
│   │   │           │   ├── pr65215-2.c
│   │   │           │   ├── pr65215-3.c
│   │   │           │   ├── pr65215-4.c
│   │   │           │   ├── pr65215-5.c
│   │   │           │   ├── pr65216.c
│   │   │           │   ├── pr65369.c
│   │   │           │   ├── pr65401.c
│   │   │           │   ├── pr65418-1.c
│   │   │           │   ├── pr65418-2.c
│   │   │           │   ├── pr65427.c
│   │   │           │   ├── pr65648.c
│   │   │           │   ├── pr65956.c
│   │   │           │   ├── pr66187.c
│   │   │           │   ├── pr66233.c
│   │   │           │   ├── pr66556.c
│   │   │           │   ├── pr66757.c
│   │   │           │   ├── pr67037.c
│   │   │           │   ├── pr67226.c
│   │   │           │   ├── pr67714.c
│   │   │           │   ├── pr67781.c
│   │   │           │   ├── pr67929_1.c
│   │   │           │   ├── pr68143_1.c
│   │   │           │   ├── pr68185.c
│   │   │           │   ├── pr68249.c
│   │   │           │   ├── pr68250.c
│   │   │           │   ├── pr68321.c
│   │   │           │   ├── pr68328.c
│   │   │           │   ├── pr68376-1.c
│   │   │           │   ├── pr68376-2.c
│   │   │           │   ├── pr68381.c
│   │   │           │   ├── pr68390.c
│   │   │           │   ├── pr68506.c
│   │   │           │   ├── pr68532.c
│   │   │           │   ├── pr68624.c
│   │   │           │   ├── pr68648.c
│   │   │           │   ├── pr68841.c
│   │   │           │   ├── pr68911.c
│   │   │           │   ├── pr69097-1.c
│   │   │           │   ├── pr69097-2.c
│   │   │           │   ├── pr69320-1.c
│   │   │           │   ├── pr69320-2.c
│   │   │           │   ├── pr69320-3.c
│   │   │           │   ├── pr69320-4.c
│   │   │           │   ├── pr69403.c
│   │   │           │   ├── pr69447.c
│   │   │           │   ├── pr69691.c
│   │   │           │   ├── pr70005.c
│   │   │           │   ├── pr70127.c
│   │   │           │   ├── pr70222-1.c
│   │   │           │   ├── pr70222-2.c
│   │   │           │   ├── pr70429.c
│   │   │           │   ├── pr70460.c
│   │   │           │   ├── pr70566.c
│   │   │           │   ├── pr70586.c
│   │   │           │   ├── pr70602.c
│   │   │           │   ├── pr71083.c
│   │   │           │   ├── pr71494.c
│   │   │           │   ├── pr71554.c
│   │   │           │   ├── pr71626-1.c
│   │   │           │   ├── pr71626-2.c
│   │   │           │   ├── pr71700.c
│   │   │           │   ├── pr7284-1.c
│   │   │           │   ├── pr78378.c
│   │   │           │   ├── printf-1.c
│   │   │           │   ├── printf-chk-1.c
│   │   │           │   ├── pta-field-1.c
│   │   │           │   ├── pta-field-2.c
│   │   │           │   ├── ptr-arith-1.c
│   │   │           │   ├── pure-1.c
│   │   │           │   ├── pushpop_macro.c
│   │   │           │   ├── regstack-1.c
│   │   │           │   ├── restrict-1.c
│   │   │           │   ├── scal-to-vec1.c
│   │   │           │   ├── scal-to-vec2.c
│   │   │           │   ├── scal-to-vec3.c
│   │   │           │   ├── scope-1.c
│   │   │           │   ├── shiftdi.c
│   │   │           │   ├── shiftopt-1.c
│   │   │           │   ├── simd-1.c
│   │   │           │   ├── simd-2.c
│   │   │           │   ├── simd-4.c
│   │   │           │   ├── simd-5.c
│   │   │           │   ├── simd-6.c
│   │   │           │   ├── stdarg-1.c
│   │   │           │   ├── stdarg-2.c
│   │   │           │   ├── stdarg-3.c
│   │   │           │   ├── stdarg-4.c
│   │   │           │   ├── stkalign.c
│   │   │           │   ├── strcmp-1.c
│   │   │           │   ├── strcpy-1.c
│   │   │           │   ├── strcpy-2.c
│   │   │           │   ├── strct-pack-1.c
│   │   │           │   ├── strct-pack-2.c
│   │   │           │   ├── strct-pack-3.c
│   │   │           │   ├── strct-pack-4.c
│   │   │           │   ├── strct-stdarg-1.c
│   │   │           │   ├── strct-varg-1.c
│   │   │           │   ├── string-opt-17.c
│   │   │           │   ├── string-opt-18.c
│   │   │           │   ├── string-opt-5.c
│   │   │           │   ├── strlen-1.c
│   │   │           │   ├── strncmp-1.c
│   │   │           │   ├── struct-aliasing-1.c
│   │   │           │   ├── struct-cpy-1.c
│   │   │           │   ├── struct-ini-1.c
│   │   │           │   ├── struct-ini-2.c
│   │   │           │   ├── struct-ini-3.c
│   │   │           │   ├── struct-ini-4.c
│   │   │           │   ├── struct-ret-1.c
│   │   │           │   ├── struct-ret-2.c
│   │   │           │   ├── switch-1.c
│   │   │           │   ├── tstdi-1.c
│   │   │           │   ├── unroll-1.c
│   │   │           │   ├── usmul.c
│   │   │           │   ├── va-arg-1.c
│   │   │           │   ├── va-arg-10.c
│   │   │           │   ├── va-arg-11.c
│   │   │           │   ├── va-arg-12.c
│   │   │           │   ├── va-arg-13.c
│   │   │           │   ├── va-arg-14.c
│   │   │           │   ├── va-arg-15.c
│   │   │           │   ├── va-arg-16.c
│   │   │           │   ├── va-arg-17.c
│   │   │           │   ├── va-arg-18.c
│   │   │           │   ├── va-arg-19.c
│   │   │           │   ├── va-arg-2.c
│   │   │           │   ├── va-arg-20.c
│   │   │           │   ├── va-arg-21.c
│   │   │           │   ├── va-arg-22.c
│   │   │           │   ├── va-arg-23.c
│   │   │           │   ├── va-arg-24.c
│   │   │           │   ├── va-arg-26.c
│   │   │           │   ├── va-arg-4.c
│   │   │           │   ├── va-arg-5.c
│   │   │           │   ├── va-arg-6.c
│   │   │           │   ├── va-arg-7.c
│   │   │           │   ├── va-arg-8.c
│   │   │           │   ├── va-arg-9.c
│   │   │           │   ├── va-arg-pack-1.c
│   │   │           │   ├── va-arg-trap-1.c
│   │   │           │   ├── vfprintf-1.c
│   │   │           │   ├── vfprintf-chk-1.c
│   │   │           │   ├── vla-dealloc-1.c
│   │   │           │   ├── vprintf-1.c
│   │   │           │   ├── vprintf-chk-1.c
│   │   │           │   ├── vrp-1.c
│   │   │           │   ├── vrp-2.c
│   │   │           │   ├── vrp-3.c
│   │   │           │   ├── vrp-4.c
│   │   │           │   ├── vrp-5.c
│   │   │           │   ├── vrp-6.c
│   │   │           │   ├── vrp-7.c
│   │   │           │   ├── wchar_t-1.c
│   │   │           │   ├── widechar-1.c
│   │   │           │   ├── widechar-2.c
│   │   │           │   ├── zero-struct-1.c
│   │   │           │   ├── zero-struct-2.c
│   │   │           │   ├── zerolen-1.c
│   │   │           │   └── zerolen-2.c
│   │   │           └── unsorted/
│   │   │               ├── dump-noaddr.c
│   │   │               ├── dump-noaddr.x
│   │   │               └── unsorted.exp
│   │   └── source-url
│   ├── issue3.h
│   ├── issue4.c
│   ├── issue50.h
│   ├── issue57.c
│   ├── issue62.c
│   ├── issue64.c
│   ├── issue65.c
│   ├── issue66.c
│   ├── issue67.c
│   ├── issue68.h
│   ├── issue69.h
│   ├── issue72.h
│   ├── issue74.h
│   ├── issue77.c
│   ├── issue78.c
│   ├── issue8.h
│   ├── issue80.c
│   ├── issue81.c
│   ├── issue82.c
│   ├── issue84.c
│   ├── issue85.c
│   ├── issue86.c
│   ├── issue87.c
│   ├── issue88.c
│   ├── issue89.c
│   ├── issue9.c
│   ├── issue90.c
│   ├── issue92.c
│   ├── issue93.c
│   ├── issue93.h
│   ├── issue9b.c
│   ├── paste.c
│   ├── paste2.c
│   ├── redecl.c
│   ├── tcc-0.9.26/
│   │   ├── COPYING
│   │   ├── source-url
│   │   └── tests/
│   │       └── tests2/
│   │           ├── 00_assignment.c
│   │           ├── 00_assignment.expect
│   │           ├── 01_comment.c
│   │           ├── 01_comment.expect
│   │           ├── 02_printf.c
│   │           ├── 02_printf.expect
│   │           ├── 03_struct.c
│   │           ├── 03_struct.expect
│   │           ├── 04_for.c
│   │           ├── 04_for.expect
│   │           ├── 05_array.c
│   │           ├── 05_array.expect
│   │           ├── 06_case.c
│   │           ├── 06_case.expect
│   │           ├── 07_function.c
│   │           ├── 07_function.expect
│   │           ├── 08_while.c
│   │           ├── 08_while.expect
│   │           ├── 09_do_while.c
│   │           ├── 09_do_while.expect
│   │           ├── 10_pointer.c
│   │           ├── 10_pointer.expect
│   │           ├── 11_precedence.c
│   │           ├── 11_precedence.expect
│   │           ├── 12_hashdefine.c
│   │           ├── 12_hashdefine.expect
│   │           ├── 13_integer_literals.c
│   │           ├── 13_integer_literals.expect
│   │           ├── 14_if.c
│   │           ├── 14_if.expect
│   │           ├── 15_recursion.c
│   │           ├── 15_recursion.expect
│   │           ├── 16_nesting.c
│   │           ├── 16_nesting.expect
│   │           ├── 17_enum.c
│   │           ├── 17_enum.expect
│   │           ├── 18_include.c
│   │           ├── 18_include.expect
│   │           ├── 18_include.h
│   │           ├── 19_pointer_arithmetic.c
│   │           ├── 19_pointer_arithmetic.expect
│   │           ├── 20_pointer_comparison.c
│   │           ├── 20_pointer_comparison.expect
│   │           ├── 21_char_array.c
│   │           ├── 21_char_array.expect
│   │           ├── 22_floating_point.c
│   │           ├── 22_floating_point.expect
│   │           ├── 23_type_coercion.c
│   │           ├── 23_type_coercion.expect
│   │           ├── 24_math_library.c
│   │           ├── 24_math_library.expect
│   │           ├── 25_quicksort.c
│   │           ├── 25_quicksort.expect
│   │           ├── 26_character_constants.c
│   │           ├── 26_character_constants.expect
│   │           ├── 27_sizeof.c
│   │           ├── 27_sizeof.expect
│   │           ├── 28_strings.c
│   │           ├── 28_strings.expect
│   │           ├── 29_array_address.c
│   │           ├── 29_array_address.expect
│   │           ├── 30_hanoi.c
│   │           ├── 30_hanoi.expect
│   │           ├── 31_args.c
│   │           ├── 31_args.expect
│   │           ├── 32_led.c
│   │           ├── 32_led.expect
│   │           ├── 33_ternary_op.c
│   │           ├── 33_ternary_op.expect
│   │           ├── 34_array_assignment.c
│   │           ├── 34_array_assignment.expect
│   │           ├── 35_sizeof.c
│   │           ├── 35_sizeof.expect
│   │           ├── 36_array_initialisers.c
│   │           ├── 36_array_initialisers.expect
│   │           ├── 37_sprintf.c
│   │           ├── 37_sprintf.expect
│   │           ├── 38_multiple_array_index.c
│   │           ├── 38_multiple_array_index.expect
│   │           ├── 39_typedef.c
│   │           ├── 39_typedef.expect
│   │           ├── 40_stdio.c
│   │           ├── 40_stdio.expect
│   │           ├── 41_hashif.c
│   │           ├── 41_hashif.expect
│   │           ├── 42_function_pointer.c
│   │           ├── 42_function_pointer.expect
│   │           ├── 43_void_param.c
│   │           ├── 43_void_param.expect
│   │           ├── 44_scoped_declarations.c
│   │           ├── 44_scoped_declarations.expect
│   │           ├── 45_empty_for.c
│   │           ├── 45_empty_for.expect
│   │           ├── 46_grep.c
│   │           ├── 47_switch_return.c
│   │           ├── 47_switch_return.expect
│   │           ├── 48_nested_break.c
│   │           ├── 48_nested_break.expect
│   │           ├── 49_bracket_evaluation.c
│   │           ├── 49_bracket_evaluation.expect
│   │           ├── 50_logical_second_arg.c
│   │           ├── 50_logical_second_arg.expect
│   │           ├── 51_static.c
│   │           ├── 51_static.expect
│   │           ├── 52_unnamed_enum.c
│   │           ├── 52_unnamed_enum.expect
│   │           ├── 54_goto.c
│   │           ├── 54_goto.expect
│   │           ├── 55_lshift_type.c
│   │           ├── 55_lshift_type.expect
│   │           ├── LICENSE
│   │           └── Makefile
│   └── vers2.h
├── trigraphs.go
├── trigraphs.l
├── ucn32.go
├── ucn64.go
├── v2/
│   ├── AUTHORS
│   ├── CONTRIBUTORS
│   ├── LICENSE
│   ├── Makefile
│   ├── README.md
│   ├── all_test.go
│   ├── ast.go
│   ├── ast2.go
│   ├── ast_test.go
│   ├── cc.go
│   ├── cpp.go
│   ├── encoding.go
│   ├── enum.go
│   ├── etc.go
│   ├── headers/
│   │   ├── LICENSE-GCC-RTE-V3.1
│   │   ├── LICENSE-GPL-V3.txt
│   │   ├── Makefile
│   │   ├── all_test.go
│   │   ├── features.c
│   │   ├── generator.go
│   │   ├── linux_386/
│   │   │   ├── builtin.h
│   │   │   ├── paths
│   │   │   ├── predefined.h
│   │   │   └── usr/
│   │   │       ├── include/
│   │   │       │   ├── alloca.h
│   │   │       │   ├── arpa/
│   │   │       │   │   └── inet.h
│   │   │       │   ├── asm-generic/
│   │   │       │   │   ├── errno-base.h
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── ioctls.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   └── sockios.h
│   │   │       │   ├── assert.h
│   │   │       │   ├── ctype.h
│   │   │       │   ├── dirent.h
│   │   │       │   ├── dlfcn.h
│   │   │       │   ├── endian.h
│   │   │       │   ├── errno.h
│   │   │       │   ├── execinfo.h
│   │   │       │   ├── fcntl.h
│   │   │       │   ├── features.h
│   │   │       │   ├── fts.h
│   │   │       │   ├── getopt.h
│   │   │       │   ├── grp.h
│   │   │       │   ├── i386-linux-gnu/
│   │   │       │   │   ├── asm/
│   │   │       │   │   │   ├── errno.h
│   │   │       │   │   │   ├── ioctl.h
│   │   │       │   │   │   ├── ioctls.h
│   │   │       │   │   │   ├── param.h
│   │   │       │   │   │   ├── socket.h
│   │   │       │   │   │   └── sockios.h
│   │   │       │   │   ├── bits/
│   │   │       │   │   │   ├── _G_config.h
│   │   │       │   │   │   ├── byteswap-16.h
│   │   │       │   │   │   ├── byteswap.h
│   │   │       │   │   │   ├── confname.h
│   │   │       │   │   │   ├── cpu-set.h
│   │   │       │   │   │   ├── dirent.h
│   │   │       │   │   │   ├── dlfcn.h
│   │   │       │   │   │   ├── endian.h
│   │   │       │   │   │   ├── environments.h
│   │   │       │   │   │   ├── errno.h
│   │   │       │   │   │   ├── fcntl-linux.h
│   │   │       │   │   │   ├── fcntl.h
│   │   │       │   │   │   ├── floatn-common.h
│   │   │       │   │   │   ├── floatn.h
│   │   │       │   │   │   ├── flt-eval-method.h
│   │   │       │   │   │   ├── fp-fast.h
│   │   │       │   │   │   ├── fp-logb.h
│   │   │       │   │   │   ├── getopt_core.h
│   │   │       │   │   │   ├── getopt_ext.h
│   │   │       │   │   │   ├── getopt_posix.h
│   │   │       │   │   │   ├── in.h
│   │   │       │   │   │   ├── ioctl-types.h
│   │   │       │   │   │   ├── ioctls.h
│   │   │       │   │   │   ├── libc-header-start.h
│   │   │       │   │   │   ├── libio.h
│   │   │       │   │   │   ├── libm-simd-decl-stubs.h
│   │   │       │   │   │   ├── local_lim.h
│   │   │       │   │   │   ├── locale.h
│   │   │       │   │   │   ├── long-double.h
│   │   │       │   │   │   ├── math-vector.h
│   │   │       │   │   │   ├── mathcalls-helper-functions.h
│   │   │       │   │   │   ├── mathcalls.h
│   │   │       │   │   │   ├── mman-linux.h
│   │   │       │   │   │   ├── mman-shared.h
│   │   │       │   │   │   ├── mman.h
│   │   │       │   │   │   ├── netdb.h
│   │   │       │   │   │   ├── param.h
│   │   │       │   │   │   ├── posix1_lim.h
│   │   │       │   │   │   ├── posix2_lim.h
│   │   │       │   │   │   ├── posix_opt.h
│   │   │       │   │   │   ├── pthreadtypes-arch.h
│   │   │       │   │   │   ├── pthreadtypes.h
│   │   │       │   │   │   ├── resource.h
│   │   │       │   │   │   ├── sched.h
│   │   │       │   │   │   ├── select.h
│   │   │       │   │   │   ├── setjmp.h
│   │   │       │   │   │   ├── sigaction.h
│   │   │       │   │   │   ├── sigcontext.h
│   │   │       │   │   │   ├── sigevent-consts.h
│   │   │       │   │   │   ├── siginfo-arch.h
│   │   │       │   │   │   ├── siginfo-consts.h
│   │   │       │   │   │   ├── signum-generic.h
│   │   │       │   │   │   ├── signum.h
│   │   │       │   │   │   ├── sigstack.h
│   │   │       │   │   │   ├── sigthread.h
│   │   │       │   │   │   ├── sockaddr.h
│   │   │       │   │   │   ├── socket.h
│   │   │       │   │   │   ├── socket_type.h
│   │   │       │   │   │   ├── ss_flags.h
│   │   │       │   │   │   ├── stat.h
│   │   │       │   │   │   ├── statfs.h
│   │   │       │   │   │   ├── stdint-intn.h
│   │   │       │   │   │   ├── stdint-uintn.h
│   │   │       │   │   │   ├── stdio_lim.h
│   │   │       │   │   │   ├── stdlib-float.h
│   │   │       │   │   │   ├── sys_errlist.h
│   │   │       │   │   │   ├── sysmacros.h
│   │   │       │   │   │   ├── termios.h
│   │   │       │   │   │   ├── thread-shared-types.h
│   │   │       │   │   │   ├── time.h
│   │   │       │   │   │   ├── types/
│   │   │       │   │   │   │   ├── FILE.h
│   │   │       │   │   │   │   ├── __FILE.h
│   │   │       │   │   │   │   ├── __locale_t.h
│   │   │       │   │   │   │   ├── __mbstate_t.h
│   │   │       │   │   │   │   ├── __sigset_t.h
│   │   │       │   │   │   │   ├── __sigval_t.h
│   │   │       │   │   │   │   ├── clock_t.h
│   │   │       │   │   │   │   ├── clockid_t.h
│   │   │       │   │   │   │   ├── locale_t.h
│   │   │       │   │   │   │   ├── mbstate_t.h
│   │   │       │   │   │   │   ├── sig_atomic_t.h
│   │   │       │   │   │   │   ├── sigevent_t.h
│   │   │       │   │   │   │   ├── siginfo_t.h
│   │   │       │   │   │   │   ├── sigset_t.h
│   │   │       │   │   │   │   ├── sigval_t.h
│   │   │       │   │   │   │   ├── stack_t.h
│   │   │       │   │   │   │   ├── struct_iovec.h
│   │   │       │   │   │   │   ├── struct_itimerspec.h
│   │   │       │   │   │   │   ├── struct_osockaddr.h
│   │   │       │   │   │   │   ├── struct_rusage.h
│   │   │       │   │   │   │   ├── struct_sigstack.h
│   │   │       │   │   │   │   ├── struct_timespec.h
│   │   │       │   │   │   │   ├── struct_timeval.h
│   │   │       │   │   │   │   ├── struct_tm.h
│   │   │       │   │   │   │   ├── time_t.h
│   │   │       │   │   │   │   ├── timer_t.h
│   │   │       │   │   │   │   └── wint_t.h
│   │   │       │   │   │   ├── types.h
│   │   │       │   │   │   ├── typesizes.h
│   │   │       │   │   │   ├── uintn-identity.h
│   │   │       │   │   │   ├── uio_lim.h
│   │   │       │   │   │   ├── utsname.h
│   │   │       │   │   │   ├── waitflags.h
│   │   │       │   │   │   ├── waitstatus.h
│   │   │       │   │   │   ├── wchar.h
│   │   │       │   │   │   ├── wordsize.h
│   │   │       │   │   │   └── xopen_lim.h
│   │   │       │   │   ├── gnu/
│   │   │       │   │   │   ├── stubs-32.h
│   │   │       │   │   │   └── stubs.h
│   │   │       │   │   └── sys/
│   │   │       │   │       ├── cdefs.h
│   │   │       │   │       ├── file.h
│   │   │       │   │       ├── ioctl.h
│   │   │       │   │       ├── mman.h
│   │   │       │   │       ├── param.h
│   │   │       │   │       ├── resource.h
│   │   │       │   │       ├── select.h
│   │   │       │   │       ├── socket.h
│   │   │       │   │       ├── stat.h
│   │   │       │   │       ├── statfs.h
│   │   │       │   │       ├── sysmacros.h
│   │   │       │   │       ├── time.h
│   │   │       │   │       ├── ttydefaults.h
│   │   │       │   │       ├── types.h
│   │   │       │   │       ├── ucontext.h
│   │   │       │   │       ├── uio.h
│   │   │       │   │       ├── un.h
│   │   │       │   │       ├── utsname.h
│   │   │       │   │       └── wait.h
│   │   │       │   ├── inttypes.h
│   │   │       │   ├── limits.h
│   │   │       │   ├── linux/
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── limits.h
│   │   │       │   │   └── param.h
│   │   │       │   ├── locale.h
│   │   │       │   ├── malloc.h
│   │   │       │   ├── math.h
│   │   │       │   ├── memory.h
│   │   │       │   ├── netdb.h
│   │   │       │   ├── netinet/
│   │   │       │   │   └── in.h
│   │   │       │   ├── pthread.h
│   │   │       │   ├── pwd.h
│   │   │       │   ├── rpc/
│   │   │       │   │   └── netdb.h
│   │   │       │   ├── sched.h
│   │   │       │   ├── setjmp.h
│   │   │       │   ├── signal.h
│   │   │       │   ├── stdc-predef.h
│   │   │       │   ├── stdint.h
│   │   │       │   ├── stdio.h
│   │   │       │   ├── stdlib.h
│   │   │       │   ├── string.h
│   │   │       │   ├── strings.h
│   │   │       │   ├── termios.h
│   │   │       │   ├── time.h
│   │   │       │   ├── unistd.h
│   │   │       │   ├── utime.h
│   │   │       │   ├── wchar.h
│   │   │       │   ├── zconf.h
│   │   │       │   └── zlib.h
│   │   │       └── lib/
│   │   │           └── gcc/
│   │   │               └── i686-linux-gnu/
│   │   │                   └── 7/
│   │   │                       ├── include/
│   │   │                       │   ├── float.h
│   │   │                       │   ├── stdarg.h
│   │   │                       │   ├── stdbool.h
│   │   │                       │   ├── stddef.h
│   │   │                       │   └── stdint.h
│   │   │                       └── include-fixed/
│   │   │                           ├── limits.h
│   │   │                           └── syslimits.h
│   │   ├── linux_amd64/
│   │   │   ├── builtin.h
│   │   │   ├── paths
│   │   │   ├── predefined.h
│   │   │   └── usr/
│   │   │       ├── include/
│   │   │       │   ├── _G_config.h
│   │   │       │   ├── alloca.h
│   │   │       │   ├── arpa/
│   │   │       │   │   └── inet.h
│   │   │       │   ├── asm/
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── ioctls.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   └── sockios.h
│   │   │       │   ├── asm-generic/
│   │   │       │   │   ├── errno-base.h
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── ioctls.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   └── sockios.h
│   │   │       │   ├── assert.h
│   │   │       │   ├── bits/
│   │   │       │   │   ├── byteswap-16.h
│   │   │       │   │   ├── byteswap.h
│   │   │       │   │   ├── confname.h
│   │   │       │   │   ├── dirent.h
│   │   │       │   │   ├── dlfcn.h
│   │   │       │   │   ├── endian.h
│   │   │       │   │   ├── environments.h
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── fcntl-linux.h
│   │   │       │   │   ├── fcntl.h
│   │   │       │   │   ├── huge_val.h
│   │   │       │   │   ├── huge_valf.h
│   │   │       │   │   ├── huge_vall.h
│   │   │       │   │   ├── in.h
│   │   │       │   │   ├── inf.h
│   │   │       │   │   ├── ioctl-types.h
│   │   │       │   │   ├── ioctls.h
│   │   │       │   │   ├── libm-simd-decl-stubs.h
│   │   │       │   │   ├── local_lim.h
│   │   │       │   │   ├── locale.h
│   │   │       │   │   ├── math-vector.h
│   │   │       │   │   ├── mathcalls.h
│   │   │       │   │   ├── mathdef.h
│   │   │       │   │   ├── mman-linux.h
│   │   │       │   │   ├── mman.h
│   │   │       │   │   ├── nan.h
│   │   │       │   │   ├── netdb.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── posix1_lim.h
│   │   │       │   │   ├── posix2_lim.h
│   │   │       │   │   ├── posix_opt.h
│   │   │       │   │   ├── pthreadtypes.h
│   │   │       │   │   ├── resource.h
│   │   │       │   │   ├── sched.h
│   │   │       │   │   ├── select.h
│   │   │       │   │   ├── setjmp.h
│   │   │       │   │   ├── sigaction.h
│   │   │       │   │   ├── sigcontext.h
│   │   │       │   │   ├── siginfo.h
│   │   │       │   │   ├── signum.h
│   │   │       │   │   ├── sigset.h
│   │   │       │   │   ├── sigstack.h
│   │   │       │   │   ├── sigthread.h
│   │   │       │   │   ├── sockaddr.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   ├── socket_type.h
│   │   │       │   │   ├── stat.h
│   │   │       │   │   ├── statfs.h
│   │   │       │   │   ├── stdio_lim.h
│   │   │       │   │   ├── stdlib-float.h
│   │   │       │   │   ├── sys_errlist.h
│   │   │       │   │   ├── termios.h
│   │   │       │   │   ├── time.h
│   │   │       │   │   ├── types.h
│   │   │       │   │   ├── typesizes.h
│   │   │       │   │   ├── uio.h
│   │   │       │   │   ├── utsname.h
│   │   │       │   │   ├── waitflags.h
│   │   │       │   │   ├── waitstatus.h
│   │   │       │   │   ├── wchar.h
│   │   │       │   │   ├── wordsize.h
│   │   │       │   │   └── xopen_lim.h
│   │   │       │   ├── ctype.h
│   │   │       │   ├── dirent.h
│   │   │       │   ├── dlfcn.h
│   │   │       │   ├── endian.h
│   │   │       │   ├── errno.h
│   │   │       │   ├── execinfo.h
│   │   │       │   ├── fcntl.h
│   │   │       │   ├── features.h
│   │   │       │   ├── fts.h
│   │   │       │   ├── getopt.h
│   │   │       │   ├── gnu/
│   │   │       │   │   ├── stubs-64.h
│   │   │       │   │   └── stubs.h
│   │   │       │   ├── grp.h
│   │   │       │   ├── inttypes.h
│   │   │       │   ├── libio.h
│   │   │       │   ├── limits.h
│   │   │       │   ├── linux/
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── limits.h
│   │   │       │   │   └── param.h
│   │   │       │   ├── locale.h
│   │   │       │   ├── malloc.h
│   │   │       │   ├── math.h
│   │   │       │   ├── memory.h
│   │   │       │   ├── netdb.h
│   │   │       │   ├── netinet/
│   │   │       │   │   └── in.h
│   │   │       │   ├── pthread.h
│   │   │       │   ├── pwd.h
│   │   │       │   ├── rpc/
│   │   │       │   │   └── netdb.h
│   │   │       │   ├── sched.h
│   │   │       │   ├── setjmp.h
│   │   │       │   ├── signal.h
│   │   │       │   ├── stdc-predef.h
│   │   │       │   ├── stdint.h
│   │   │       │   ├── stdio.h
│   │   │       │   ├── stdlib.h
│   │   │       │   ├── string.h
│   │   │       │   ├── strings.h
│   │   │       │   ├── sys/
│   │   │       │   │   ├── cdefs.h
│   │   │       │   │   ├── file.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── mman.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── resource.h
│   │   │       │   │   ├── select.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   ├── stat.h
│   │   │       │   │   ├── statfs.h
│   │   │       │   │   ├── sysmacros.h
│   │   │       │   │   ├── time.h
│   │   │       │   │   ├── times.h
│   │   │       │   │   ├── ttydefaults.h
│   │   │       │   │   ├── types.h
│   │   │       │   │   ├── ucontext.h
│   │   │       │   │   ├── uio.h
│   │   │       │   │   ├── un.h
│   │   │       │   │   ├── utsname.h
│   │   │       │   │   └── wait.h
│   │   │       │   ├── termios.h
│   │   │       │   ├── time.h
│   │   │       │   ├── unistd.h
│   │   │       │   ├── utime.h
│   │   │       │   ├── wchar.h
│   │   │       │   ├── wctype.h
│   │   │       │   ├── xlocale.h
│   │   │       │   ├── zconf.h
│   │   │       │   └── zlib.h
│   │   │       └── lib64/
│   │   │           └── gcc/
│   │   │               └── x86_64-suse-linux/
│   │   │                   └── 4.8/
│   │   │                       ├── include/
│   │   │                       │   ├── float.h
│   │   │                       │   ├── stdarg.h
│   │   │                       │   ├── stdbool.h
│   │   │                       │   ├── stddef.h
│   │   │                       │   └── stdint.h
│   │   │                       └── include-fixed/
│   │   │                           ├── limits.h
│   │   │                           └── syslimits.h
│   │   └── linux_arm/
│   │       ├── builtin.h
│   │       ├── paths
│   │       ├── predefined.h
│   │       └── usr/
│   │           ├── include/
│   │           │   ├── _G_config.h
│   │           │   ├── alloca.h
│   │           │   ├── arm-linux-gnueabihf/
│   │           │   │   ├── asm/
│   │           │   │   │   ├── errno.h
│   │           │   │   │   ├── ioctl.h
│   │           │   │   │   ├── ioctls.h
│   │           │   │   │   ├── param.h
│   │           │   │   │   ├── sigcontext.h
│   │           │   │   │   ├── socket.h
│   │           │   │   │   └── sockios.h
│   │           │   │   ├── bits/
│   │           │   │   │   ├── byteswap-16.h
│   │           │   │   │   ├── byteswap.h
│   │           │   │   │   ├── confname.h
│   │           │   │   │   ├── dirent.h
│   │           │   │   │   ├── dlfcn.h
│   │           │   │   │   ├── endian.h
│   │           │   │   │   ├── environments.h
│   │           │   │   │   ├── errno.h
│   │           │   │   │   ├── fcntl-linux.h
│   │           │   │   │   ├── fcntl.h
│   │           │   │   │   ├── huge_val.h
│   │           │   │   │   ├── huge_valf.h
│   │           │   │   │   ├── huge_vall.h
│   │           │   │   │   ├── in.h
│   │           │   │   │   ├── inf.h
│   │           │   │   │   ├── ioctl-types.h
│   │           │   │   │   ├── ioctls.h
│   │           │   │   │   ├── libm-simd-decl-stubs.h
│   │           │   │   │   ├── local_lim.h
│   │           │   │   │   ├── locale.h
│   │           │   │   │   ├── math-vector.h
│   │           │   │   │   ├── mathcalls.h
│   │           │   │   │   ├── mathdef.h
│   │           │   │   │   ├── mman-linux.h
│   │           │   │   │   ├── mman.h
│   │           │   │   │   ├── nan.h
│   │           │   │   │   ├── netdb.h
│   │           │   │   │   ├── param.h
│   │           │   │   │   ├── posix1_lim.h
│   │           │   │   │   ├── posix2_lim.h
│   │           │   │   │   ├── posix_opt.h
│   │           │   │   │   ├── pthreadtypes.h
│   │           │   │   │   ├── resource.h
│   │           │   │   │   ├── sched.h
│   │           │   │   │   ├── select.h
│   │           │   │   │   ├── setjmp.h
│   │           │   │   │   ├── sigaction.h
│   │           │   │   │   ├── sigcontext.h
│   │           │   │   │   ├── siginfo.h
│   │           │   │   │   ├── signum.h
│   │           │   │   │   ├── sigset.h
│   │           │   │   │   ├── sigstack.h
│   │           │   │   │   ├── sigthread.h
│   │           │   │   │   ├── sockaddr.h
│   │           │   │   │   ├── socket.h
│   │           │   │   │   ├── socket_type.h
│   │           │   │   │   ├── stat.h
│   │           │   │   │   ├── statfs.h
│   │           │   │   │   ├── stdio_lim.h
│   │           │   │   │   ├── stdlib-float.h
│   │           │   │   │   ├── sys_errlist.h
│   │           │   │   │   ├── termios.h
│   │           │   │   │   ├── time.h
│   │           │   │   │   ├── types.h
│   │           │   │   │   ├── typesizes.h
│   │           │   │   │   ├── uio.h
│   │           │   │   │   ├── utsname.h
│   │           │   │   │   ├── waitflags.h
│   │           │   │   │   ├── waitstatus.h
│   │           │   │   │   ├── wchar.h
│   │           │   │   │   └── wordsize.h
│   │           │   │   ├── gnu/
│   │           │   │   │   ├── stubs-hard.h
│   │           │   │   │   └── stubs.h
│   │           │   │   └── sys/
│   │           │   │       ├── cdefs.h
│   │           │   │       ├── file.h
│   │           │   │       ├── ioctl.h
│   │           │   │       ├── mman.h
│   │           │   │       ├── param.h
│   │           │   │       ├── resource.h
│   │           │   │       ├── select.h
│   │           │   │       ├── socket.h
│   │           │   │       ├── stat.h
│   │           │   │       ├── statfs.h
│   │           │   │       ├── sysmacros.h
│   │           │   │       ├── time.h
│   │           │   │       ├── ttydefaults.h
│   │           │   │       ├── types.h
│   │           │   │       ├── ucontext.h
│   │           │   │       ├── uio.h
│   │           │   │       ├── un.h
│   │           │   │       ├── utsname.h
│   │           │   │       └── wait.h
│   │           │   ├── arpa/
│   │           │   │   └── inet.h
│   │           │   ├── asm-generic/
│   │           │   │   ├── errno-base.h
│   │           │   │   ├── errno.h
│   │           │   │   ├── ioctl.h
│   │           │   │   ├── ioctls.h
│   │           │   │   ├── param.h
│   │           │   │   ├── socket.h
│   │           │   │   └── sockios.h
│   │           │   ├── assert.h
│   │           │   ├── ctype.h
│   │           │   ├── dirent.h
│   │           │   ├── dlfcn.h
│   │           │   ├── endian.h
│   │           │   ├── errno.h
│   │           │   ├── execinfo.h
│   │           │   ├── fcntl.h
│   │           │   ├── features.h
│   │           │   ├── fts.h
│   │           │   ├── getopt.h
│   │           │   ├── grp.h
│   │           │   ├── inttypes.h
│   │           │   ├── libio.h
│   │           │   ├── limits.h
│   │           │   ├── linux/
│   │           │   │   ├── errno.h
│   │           │   │   ├── ioctl.h
│   │           │   │   ├── limits.h
│   │           │   │   └── param.h
│   │           │   ├── locale.h
│   │           │   ├── malloc.h
│   │           │   ├── math.h
│   │           │   ├── memory.h
│   │           │   ├── netdb.h
│   │           │   ├── netinet/
│   │           │   │   └── in.h
│   │           │   ├── pthread.h
│   │           │   ├── pwd.h
│   │           │   ├── rpc/
│   │           │   │   └── netdb.h
│   │           │   ├── sched.h
│   │           │   ├── setjmp.h
│   │           │   ├── signal.h
│   │           │   ├── stdc-predef.h
│   │           │   ├── stdint.h
│   │           │   ├── stdio.h
│   │           │   ├── stdlib.h
│   │           │   ├── string.h
│   │           │   ├── strings.h
│   │           │   ├── termios.h
│   │           │   ├── time.h
│   │           │   ├── unistd.h
│   │           │   ├── utime.h
│   │           │   ├── wchar.h
│   │           │   ├── xlocale.h
│   │           │   ├── zconf.h
│   │           │   └── zlib.h
│   │           └── lib/
│   │               └── gcc/
│   │                   └── arm-linux-gnueabihf/
│   │                       └── 6/
│   │                           ├── include/
│   │                           │   ├── float.h
│   │                           │   ├── stdarg.h
│   │                           │   ├── stdbool.h
│   │                           │   ├── stddef.h
│   │                           │   └── stdint.h
│   │                           └── include-fixed/
│   │                               ├── limits.h
│   │                               └── syslimits.h
│   ├── lexer.go
│   ├── model.go
│   ├── operand.go
│   ├── parser.go
│   ├── parser.yy
│   ├── scanner.go
│   ├── scanner.l
│   ├── stringer.go
│   ├── testdata/
│   │   ├── _sqlite/
│   │   │   ├── LICENSE
│   │   │   ├── ext/
│   │   │   │   ├── README.md
│   │   │   │   ├── async/
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── sqlite3async.c
│   │   │   │   │   └── sqlite3async.h
│   │   │   │   ├── fts1/
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── ft_hash.c
│   │   │   │   │   ├── ft_hash.h
│   │   │   │   │   ├── fts1.c
│   │   │   │   │   ├── fts1.h
│   │   │   │   │   ├── fts1_hash.c
│   │   │   │   │   ├── fts1_hash.h
│   │   │   │   │   ├── fts1_porter.c
│   │   │   │   │   ├── fts1_tokenizer.h
│   │   │   │   │   ├── fts1_tokenizer1.c
│   │   │   │   │   ├── fulltext.c
│   │   │   │   │   ├── fulltext.h
│   │   │   │   │   ├── simple_tokenizer.c
│   │   │   │   │   └── tokenizer.h
│   │   │   │   ├── fts2/
│   │   │   │   │   ├── README.tokenizers
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── fts2.c
│   │   │   │   │   ├── fts2.h
│   │   │   │   │   ├── fts2_hash.c
│   │   │   │   │   ├── fts2_hash.h
│   │   │   │   │   ├── fts2_icu.c
│   │   │   │   │   ├── fts2_porter.c
│   │   │   │   │   ├── fts2_tokenizer.c
│   │   │   │   │   ├── fts2_tokenizer.h
│   │   │   │   │   ├── fts2_tokenizer1.c
│   │   │   │   │   └── mkfts2amal.tcl
│   │   │   │   ├── fts3/
│   │   │   │   │   ├── README.content
│   │   │   │   │   ├── README.syntax
│   │   │   │   │   ├── README.tokenizers
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── fts3.c
│   │   │   │   │   ├── fts3.h
│   │   │   │   │   ├── fts3Int.h
│   │   │   │   │   ├── fts3_aux.c
│   │   │   │   │   ├── fts3_expr.c
│   │   │   │   │   ├── fts3_hash.c
│   │   │   │   │   ├── fts3_hash.h
│   │   │   │   │   ├── fts3_icu.c
│   │   │   │   │   ├── fts3_porter.c
│   │   │   │   │   ├── fts3_snippet.c
│   │   │   │   │   ├── fts3_term.c
│   │   │   │   │   ├── fts3_test.c
│   │   │   │   │   ├── fts3_tokenize_vtab.c
│   │   │   │   │   ├── fts3_tokenizer.c
│   │   │   │   │   ├── fts3_tokenizer.h
│   │   │   │   │   ├── fts3_tokenizer1.c
│   │   │   │   │   ├── fts3_unicode.c
│   │   │   │   │   ├── fts3_unicode2.c
│   │   │   │   │   ├── fts3_write.c
│   │   │   │   │   ├── fts3speed.tcl
│   │   │   │   │   ├── mkfts3amal.tcl
│   │   │   │   │   ├── tool/
│   │   │   │   │   │   ├── fts3cov.sh
│   │   │   │   │   │   └── fts3view.c
│   │   │   │   │   └── unicode/
│   │   │   │   │       ├── CaseFolding.txt
│   │   │   │   │       ├── UnicodeData.txt
│   │   │   │   │       ├── mkunicode.tcl
│   │   │   │   │       └── parseunicode.tcl
│   │   │   │   ├── fts5/
│   │   │   │   │   ├── extract_api_docs.tcl
│   │   │   │   │   ├── fts5.h
│   │   │   │   │   ├── fts5Int.h
│   │   │   │   │   ├── fts5_aux.c
│   │   │   │   │   ├── fts5_buffer.c
│   │   │   │   │   ├── fts5_config.c
│   │   │   │   │   ├── fts5_expr.c
│   │   │   │   │   ├── fts5_hash.c
│   │   │   │   │   ├── fts5_index.c
│   │   │   │   │   ├── fts5_main.c
│   │   │   │   │   ├── fts5_storage.c
│   │   │   │   │   ├── fts5_tcl.c
│   │   │   │   │   ├── fts5_test_mi.c
│   │   │   │   │   ├── fts5_test_tok.c
│   │   │   │   │   ├── fts5_tokenize.c
│   │   │   │   │   ├── fts5_unicode2.c
│   │   │   │   │   ├── fts5_varint.c
│   │   │   │   │   ├── fts5_vocab.c
│   │   │   │   │   ├── fts5parse.y
│   │   │   │   │   ├── mkportersteps.tcl
│   │   │   │   │   ├── test/
│   │   │   │   │   │   ├── fts5_common.tcl
│   │   │   │   │   │   ├── fts5aa.test
│   │   │   │   │   │   ├── fts5ab.test
│   │   │   │   │   │   ├── fts5ac.test
│   │   │   │   │   │   ├── fts5ad.test
│   │   │   │   │   │   ├── fts5ae.test
│   │   │   │   │   │   ├── fts5af.test
│   │   │   │   │   │   ├── fts5ag.test
│   │   │   │   │   │   ├── fts5ah.test
│   │   │   │   │   │   ├── fts5ai.test
│   │   │   │   │   │   ├── fts5aj.test
│   │   │   │   │   │   ├── fts5ak.test
│   │   │   │   │   │   ├── fts5al.test
│   │   │   │   │   │   ├── fts5alter.test
│   │   │   │   │   │   ├── fts5auto.test
│   │   │   │   │   │   ├── fts5aux.test
│   │   │   │   │   │   ├── fts5auxdata.test
│   │   │   │   │   │   ├── fts5bigpl.test
│   │   │   │   │   │   ├── fts5bigtok.test
│   │   │   │   │   │   ├── fts5colset.test
│   │   │   │   │   │   ├── fts5columnsize.test
│   │   │   │   │   │   ├── fts5config.test
│   │   │   │   │   │   ├── fts5conflict.test
│   │   │   │   │   │   ├── fts5connect.test
│   │   │   │   │   │   ├── fts5content.test
│   │   │   │   │   │   ├── fts5corrupt.test
│   │   │   │   │   │   ├── fts5corrupt2.test
│   │   │   │   │   │   ├── fts5corrupt3.test
│   │   │   │   │   │   ├── fts5delete.test
│   │   │   │   │   │   ├── fts5detail.test
│   │   │   │   │   │   ├── fts5determin.test
│   │   │   │   │   │   ├── fts5dlidx.test
│   │   │   │   │   │   ├── fts5doclist.test
│   │   │   │   │   │   ├── fts5ea.test
│   │   │   │   │   │   ├── fts5eb.test
│   │   │   │   │   │   ├── fts5fault1.test
│   │   │   │   │   │   ├── fts5fault2.test
│   │   │   │   │   │   ├── fts5fault3.test
│   │   │   │   │   │   ├── fts5fault4.test
│   │   │   │   │   │   ├── fts5fault5.test
│   │   │   │   │   │   ├── fts5fault6.test
│   │   │   │   │   │   ├── fts5fault7.test
│   │   │   │   │   │   ├── fts5fault8.test
│   │   │   │   │   │   ├── fts5fault9.test
│   │   │   │   │   │   ├── fts5faultA.test
│   │   │   │   │   │   ├── fts5faultB.test
│   │   │   │   │   │   ├── fts5faultD.test
│   │   │   │   │   │   ├── fts5full.test
│   │   │   │   │   │   ├── fts5fuzz1.test
│   │   │   │   │   │   ├── fts5hash.test
│   │   │   │   │   │   ├── fts5integrity.test
│   │   │   │   │   │   ├── fts5lastrowid.test
│   │   │   │   │   │   ├── fts5leftjoin.test
│   │   │   │   │   │   ├── fts5matchinfo.test
│   │   │   │   │   │   ├── fts5merge.test
│   │   │   │   │   │   ├── fts5merge2.test
│   │   │   │   │   │   ├── fts5multiclient.test
│   │   │   │   │   │   ├── fts5near.test
│   │   │   │   │   │   ├── fts5onepass.test
│   │   │   │   │   │   ├── fts5optimize.test
│   │   │   │   │   │   ├── fts5phrase.test
│   │   │   │   │   │   ├── fts5plan.test
│   │   │   │   │   │   ├── fts5porter.test
│   │   │   │   │   │   ├── fts5porter2.test
│   │   │   │   │   │   ├── fts5prefix.test
│   │   │   │   │   │   ├── fts5query.test
│   │   │   │   │   │   ├── fts5rank.test
│   │   │   │   │   │   ├── fts5rebuild.test
│   │   │   │   │   │   ├── fts5restart.test
│   │   │   │   │   │   ├── fts5rowid.test
│   │   │   │   │   │   ├── fts5simple.test
│   │   │   │   │   │   ├── fts5simple2.test
│   │   │   │   │   │   ├── fts5simple3.test
│   │   │   │   │   │   ├── fts5synonym.test
│   │   │   │   │   │   ├── fts5synonym2.test
│   │   │   │   │   │   ├── fts5tok1.test
│   │   │   │   │   │   ├── fts5tok2.test
│   │   │   │   │   │   ├── fts5tokenizer.test
│   │   │   │   │   │   ├── fts5unicode.test
│   │   │   │   │   │   ├── fts5unicode2.test
│   │   │   │   │   │   ├── fts5unicode3.test
│   │   │   │   │   │   ├── fts5unindexed.test
│   │   │   │   │   │   ├── fts5update.test
│   │   │   │   │   │   ├── fts5version.test
│   │   │   │   │   │   ├── fts5vocab.test
│   │   │   │   │   │   └── fts5vocab2.test
│   │   │   │   │   └── tool/
│   │   │   │   │       ├── fts5speed.tcl
│   │   │   │   │       ├── fts5txt2db.tcl
│   │   │   │   │       ├── loadfts5.tcl
│   │   │   │   │       ├── mkfts5c.tcl
│   │   │   │   │       └── showfts5.tcl
│   │   │   │   ├── icu/
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── icu.c
│   │   │   │   │   └── sqliteicu.h
│   │   │   │   ├── lsm1/
│   │   │   │   │   ├── Makefile
│   │   │   │   │   ├── Makefile.msc
│   │   │   │   │   ├── lsm-test/
│   │   │   │   │   │   ├── README
│   │   │   │   │   │   ├── lsmtest.h
│   │   │   │   │   │   ├── lsmtest1.c
│   │   │   │   │   │   ├── lsmtest2.c
│   │   │   │   │   │   ├── lsmtest3.c
│   │   │   │   │   │   ├── lsmtest4.c
│   │   │   │   │   │   ├── lsmtest5.c
│   │   │   │   │   │   ├── lsmtest6.c
│   │   │   │   │   │   ├── lsmtest7.c
│   │   │   │   │   │   ├── lsmtest8.c
│   │   │   │   │   │   ├── lsmtest9.c
│   │   │   │   │   │   ├── lsmtest_bt.c
│   │   │   │   │   │   ├── lsmtest_datasource.c
│   │   │   │   │   │   ├── lsmtest_func.c
│   │   │   │   │   │   ├── lsmtest_io.c
│   │   │   │   │   │   ├── lsmtest_main.c
│   │   │   │   │   │   ├── lsmtest_mem.c
│   │   │   │   │   │   ├── lsmtest_tdb.c
│   │   │   │   │   │   ├── lsmtest_tdb.h
│   │   │   │   │   │   ├── lsmtest_tdb2.cc
│   │   │   │   │   │   ├── lsmtest_tdb3.c
│   │   │   │   │   │   ├── lsmtest_tdb4.c
│   │   │   │   │   │   ├── lsmtest_util.c
│   │   │   │   │   │   └── lsmtest_win32.c
│   │   │   │   │   ├── lsm.h
│   │   │   │   │   ├── lsmInt.h
│   │   │   │   │   ├── lsm_ckpt.c
│   │   │   │   │   ├── lsm_file.c
│   │   │   │   │   ├── lsm_log.c
│   │   │   │   │   ├── lsm_main.c
│   │   │   │   │   ├── lsm_mem.c
│   │   │   │   │   ├── lsm_mutex.c
│   │   │   │   │   ├── lsm_shared.c
│   │   │   │   │   ├── lsm_sorted.c
│   │   │   │   │   ├── lsm_str.c
│   │   │   │   │   ├── lsm_tree.c
│   │   │   │   │   ├── lsm_unix.c
│   │   │   │   │   ├── lsm_varint.c
│   │   │   │   │   ├── lsm_vtab.c
│   │   │   │   │   ├── lsm_win32.c
│   │   │   │   │   └── test/
│   │   │   │   │       ├── lsm1_common.tcl
│   │   │   │   │       └── lsm1_simple.test
│   │   │   │   ├── misc/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── amatch.c
│   │   │   │   │   ├── anycollseq.c
│   │   │   │   │   ├── carray.c
│   │   │   │   │   ├── closure.c
│   │   │   │   │   ├── completion.c
│   │   │   │   │   ├── compress.c
│   │   │   │   │   ├── csv.c
│   │   │   │   │   ├── dbdump.c
│   │   │   │   │   ├── eval.c
│   │   │   │   │   ├── fileio.c
│   │   │   │   │   ├── fuzzer.c
│   │   │   │   │   ├── ieee754.c
│   │   │   │   │   ├── json1.c
│   │   │   │   │   ├── memvfs.c
│   │   │   │   │   ├── mmapwarm.c
│   │   │   │   │   ├── nextchar.c
│   │   │   │   │   ├── percentile.c
│   │   │   │   │   ├── regexp.c
│   │   │   │   │   ├── remember.c
│   │   │   │   │   ├── rot13.c
│   │   │   │   │   ├── scrub.c
│   │   │   │   │   ├── series.c
│   │   │   │   │   ├── sha1.c
│   │   │   │   │   ├── shathree.c
│   │   │   │   │   ├── showauth.c
│   │   │   │   │   ├── spellfix.c
│   │   │   │   │   ├── stmt.c
│   │   │   │   │   ├── totype.c
│   │   │   │   │   ├── unionvtab.c
│   │   │   │   │   ├── vfslog.c
│   │   │   │   │   ├── vfsstat.c
│   │   │   │   │   ├── vtablog.c
│   │   │   │   │   ├── vtshim.c
│   │   │   │   │   └── wholenumber.c
│   │   │   │   ├── rbu/
│   │   │   │   │   ├── rbu.c
│   │   │   │   │   ├── rbu1.test
│   │   │   │   │   ├── rbu10.test
│   │   │   │   │   ├── rbu11.test
│   │   │   │   │   ├── rbu12.test
│   │   │   │   │   ├── rbu13.test
│   │   │   │   │   ├── rbu14.test
│   │   │   │   │   ├── rbu3.test
│   │   │   │   │   ├── rbu5.test
│   │   │   │   │   ├── rbu6.test
│   │   │   │   │   ├── rbu7.test
│   │   │   │   │   ├── rbu8.test
│   │   │   │   │   ├── rbu9.test
│   │   │   │   │   ├── rbuA.test
│   │   │   │   │   ├── rbuB.test
│   │   │   │   │   ├── rbuC.test
│   │   │   │   │   ├── rbu_common.tcl
│   │   │   │   │   ├── rbucrash.test
│   │   │   │   │   ├── rbucrash2.test
│   │   │   │   │   ├── rbudiff.test
│   │   │   │   │   ├── rbudor.test
│   │   │   │   │   ├── rbufault.test
│   │   │   │   │   ├── rbufault2.test
│   │   │   │   │   ├── rbufault3.test
│   │   │   │   │   ├── rbufault4.test
│   │   │   │   │   ├── rbufts.test
│   │   │   │   │   ├── rbuprogress.test
│   │   │   │   │   ├── rburesume.test
│   │   │   │   │   ├── rbusave.test
│   │   │   │   │   ├── rbutemplimit.test
│   │   │   │   │   ├── rbuvacuum.test
│   │   │   │   │   ├── rbuvacuum2.test
│   │   │   │   │   ├── sqlite3rbu.c
│   │   │   │   │   ├── sqlite3rbu.h
│   │   │   │   │   └── test_rbu.c
│   │   │   │   ├── repair/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── checkfreelist.c
│   │   │   │   ├── rtree/
│   │   │   │   │   ├── README
│   │   │   │   │   ├── rtree.c
│   │   │   │   │   ├── rtree.h
│   │   │   │   │   ├── rtree1.test
│   │   │   │   │   ├── rtree2.test
│   │   │   │   │   ├── rtree3.test
│   │   │   │   │   ├── rtree4.test
│   │   │   │   │   ├── rtree5.test
│   │   │   │   │   ├── rtree6.test
│   │   │   │   │   ├── rtree7.test
│   │   │   │   │   ├── rtree8.test
│   │   │   │   │   ├── rtree9.test
│   │   │   │   │   ├── rtreeA.test
│   │   │   │   │   ├── rtreeB.test
│   │   │   │   │   ├── rtreeC.test
│   │   │   │   │   ├── rtreeD.test
│   │   │   │   │   ├── rtreeE.test
│   │   │   │   │   ├── rtreeF.test
│   │   │   │   │   ├── rtreeG.test
│   │   │   │   │   ├── rtree_perf.tcl
│   │   │   │   │   ├── rtree_util.tcl
│   │   │   │   │   ├── rtreeconnect.test
│   │   │   │   │   ├── sqlite3rtree.h
│   │   │   │   │   ├── tkt3363.test
│   │   │   │   │   └── viewrtree.tcl
│   │   │   │   ├── session/
│   │   │   │   │   ├── changeset.c
│   │   │   │   │   ├── session1.test
│   │   │   │   │   ├── session2.test
│   │   │   │   │   ├── session3.test
│   │   │   │   │   ├── session4.test
│   │   │   │   │   ├── session5.test
│   │   │   │   │   ├── session6.test
│   │   │   │   │   ├── session8.test
│   │   │   │   │   ├── session9.test
│   │   │   │   │   ├── sessionA.test
│   │   │   │   │   ├── sessionB.test
│   │   │   │   │   ├── sessionC.test
│   │   │   │   │   ├── sessionD.test
│   │   │   │   │   ├── sessionE.test
│   │   │   │   │   ├── sessionF.test
│   │   │   │   │   ├── sessionG.test
│   │   │   │   │   ├── session_common.tcl
│   │   │   │   │   ├── session_speed_test.c
│   │   │   │   │   ├── sessionat.test
│   │   │   │   │   ├── sessiondiff.test
│   │   │   │   │   ├── sessionfault.test
│   │   │   │   │   ├── sessionfault2.test
│   │   │   │   │   ├── sessionwor.test
│   │   │   │   │   ├── sqlite3session.c
│   │   │   │   │   ├── sqlite3session.h
│   │   │   │   │   └── test_session.c
│   │   │   │   └── userauth/
│   │   │   │       ├── sqlite3userauth.h
│   │   │   │       ├── user-auth.txt
│   │   │   │       └── userauth.c
│   │   │   ├── sqlite-amalgamation-3210000/
│   │   │   │   ├── shell.c
│   │   │   │   ├── sqlite3.c
│   │   │   │   ├── sqlite3.h
│   │   │   │   └── sqlite3ext.h
│   │   │   ├── src/
│   │   │   │   ├── alter.c
│   │   │   │   ├── analyze.c
│   │   │   │   ├── attach.c
│   │   │   │   ├── auth.c
│   │   │   │   ├── backup.c
│   │   │   │   ├── bitvec.c
│   │   │   │   ├── btmutex.c
│   │   │   │   ├── btree.c
│   │   │   │   ├── btree.h
│   │   │   │   ├── btreeInt.h
│   │   │   │   ├── build.c
│   │   │   │   ├── callback.c
│   │   │   │   ├── complete.c
│   │   │   │   ├── ctime.c
│   │   │   │   ├── date.c
│   │   │   │   ├── dbpage.c
│   │   │   │   ├── dbstat.c
│   │   │   │   ├── delete.c
│   │   │   │   ├── expr.c
│   │   │   │   ├── fault.c
│   │   │   │   ├── fkey.c
│   │   │   │   ├── func.c
│   │   │   │   ├── global.c
│   │   │   │   ├── hash.c
│   │   │   │   ├── hash.h
│   │   │   │   ├── hwtime.h
│   │   │   │   ├── in-operator.md
│   │   │   │   ├── insert.c
│   │   │   │   ├── legacy.c
│   │   │   │   ├── loadext.c
│   │   │   │   ├── main.c
│   │   │   │   ├── malloc.c
│   │   │   │   ├── mem0.c
│   │   │   │   ├── mem1.c
│   │   │   │   ├── mem2.c
│   │   │   │   ├── mem3.c
│   │   │   │   ├── mem5.c
│   │   │   │   ├── memjournal.c
│   │   │   │   ├── msvc.h
│   │   │   │   ├── mutex.c
│   │   │   │   ├── mutex.h
│   │   │   │   ├── mutex_noop.c
│   │   │   │   ├── mutex_unix.c
│   │   │   │   ├── mutex_w32.c
│   │   │   │   ├── notify.c
│   │   │   │   ├── opcodes.h
│   │   │   │   ├── os.c
│   │   │   │   ├── os.h
│   │   │   │   ├── os_common.h
│   │   │   │   ├── os_setup.h
│   │   │   │   ├── os_unix.c
│   │   │   │   ├── os_win.c
│   │   │   │   ├── os_win.h
│   │   │   │   ├── pager.c
│   │   │   │   ├── pager.h
│   │   │   │   ├── parse.h
│   │   │   │   ├── parse.y
│   │   │   │   ├── pcache.c
│   │   │   │   ├── pcache.h
│   │   │   │   ├── pcache1.c
│   │   │   │   ├── pragma.c
│   │   │   │   ├── pragma.h
│   │   │   │   ├── prepare.c
│   │   │   │   ├── printf.c
│   │   │   │   ├── random.c
│   │   │   │   ├── resolve.c
│   │   │   │   ├── rowset.c
│   │   │   │   ├── select.c
│   │   │   │   ├── shell.c.in
│   │   │   │   ├── sqlite.h.in
│   │   │   │   ├── sqlite3.rc
│   │   │   │   ├── sqlite3ext.h
│   │   │   │   ├── sqliteInt.h
│   │   │   │   ├── sqliteLimit.h
│   │   │   │   ├── status.c
│   │   │   │   ├── table.c
│   │   │   │   ├── tclsqlite.c
│   │   │   │   ├── test1.c
│   │   │   │   ├── test2.c
│   │   │   │   ├── test3.c
│   │   │   │   ├── test4.c
│   │   │   │   ├── test5.c
│   │   │   │   ├── test6.c
│   │   │   │   ├── test7.c
│   │   │   │   ├── test8.c
│   │   │   │   ├── test9.c
│   │   │   │   ├── test_async.c
│   │   │   │   ├── test_autoext.c
│   │   │   │   ├── test_backup.c
│   │   │   │   ├── test_bestindex.c
│   │   │   │   ├── test_blob.c
│   │   │   │   ├── test_btree.c
│   │   │   │   ├── test_config.c
│   │   │   │   ├── test_delete.c
│   │   │   │   ├── test_demovfs.c
│   │   │   │   ├── test_devsym.c
│   │   │   │   ├── test_fs.c
│   │   │   │   ├── test_func.c
│   │   │   │   ├── test_hexio.c
│   │   │   │   ├── test_init.c
│   │   │   │   ├── test_intarray.c
│   │   │   │   ├── test_intarray.h
│   │   │   │   ├── test_journal.c
│   │   │   │   ├── test_loadext.c
│   │   │   │   ├── test_malloc.c
│   │   │   │   ├── test_md5.c
│   │   │   │   ├── test_multiplex.c
│   │   │   │   ├── test_multiplex.h
│   │   │   │   ├── test_mutex.c
│   │   │   │   ├── test_onefile.c
│   │   │   │   ├── test_osinst.c
│   │   │   │   ├── test_pcache.c
│   │   │   │   ├── test_quota.c
│   │   │   │   ├── test_quota.h
│   │   │   │   ├── test_rtree.c
│   │   │   │   ├── test_schema.c
│   │   │   │   ├── test_server.c
│   │   │   │   ├── test_sqllog.c
│   │   │   │   ├── test_superlock.c
│   │   │   │   ├── test_syscall.c
│   │   │   │   ├── test_tclsh.c
│   │   │   │   ├── test_tclvar.c
│   │   │   │   ├── test_thread.c
│   │   │   │   ├── test_vfs.c
│   │   │   │   ├── test_vfstrace.c
│   │   │   │   ├── test_windirent.c
│   │   │   │   ├── test_windirent.h
│   │   │   │   ├── test_wsd.c
│   │   │   │   ├── threads.c
│   │   │   │   ├── tokenize.c
│   │   │   │   ├── treeview.c
│   │   │   │   ├── trigger.c
│   │   │   │   ├── update.c
│   │   │   │   ├── utf.c
│   │   │   │   ├── util.c
│   │   │   │   ├── vacuum.c
│   │   │   │   ├── vdbe.c
│   │   │   │   ├── vdbe.h
│   │   │   │   ├── vdbeInt.h
│   │   │   │   ├── vdbeapi.c
│   │   │   │   ├── vdbeaux.c
│   │   │   │   ├── vdbeblob.c
│   │   │   │   ├── vdbemem.c
│   │   │   │   ├── vdbesort.c
│   │   │   │   ├── vdbetrace.c
│   │   │   │   ├── vtab.c
│   │   │   │   ├── vxworks.h
│   │   │   │   ├── wal.c
│   │   │   │   ├── wal.h
│   │   │   │   ├── walker.c
│   │   │   │   ├── where.c
│   │   │   │   ├── whereInt.h
│   │   │   │   ├── wherecode.c
│   │   │   │   └── whereexpr.c
│   │   │   └── test/
│   │   │       ├── 8_3_names.test
│   │   │       ├── affinity2.test
│   │   │       ├── affinity3.test
│   │   │       ├── aggerror.test
│   │   │       ├── aggnested.test
│   │   │       ├── alias.test
│   │   │       ├── all.test
│   │   │       ├── alter.test
│   │   │       ├── alter2.test
│   │   │       ├── alter3.test
│   │   │       ├── alter4.test
│   │   │       ├── altermalloc.test
│   │   │       ├── amatch1.test
│   │   │       ├── analyze.test
│   │   │       ├── analyze3.test
│   │   │       ├── analyze4.test
│   │   │       ├── analyze5.test
│   │   │       ├── analyze6.test
│   │   │       ├── analyze7.test
│   │   │       ├── analyze8.test
│   │   │       ├── analyze9.test
│   │   │       ├── analyzeA.test
│   │   │       ├── analyzeB.test
│   │   │       ├── analyzeC.test
│   │   │       ├── analyzeD.test
│   │   │       ├── analyzeE.test
│   │   │       ├── analyzeF.test
│   │   │       ├── analyzer1.test
│   │   │       ├── async.test
│   │   │       ├── async2.test
│   │   │       ├── async3.test
│   │   │       ├── async4.test
│   │   │       ├── async5.test
│   │   │       ├── atof1.test
│   │   │       ├── atomic.test
│   │   │       ├── attach.test
│   │   │       ├── attach2.test
│   │   │       ├── attach3.test
│   │   │       ├── attach4.test
│   │   │       ├── attachmalloc.test
│   │   │       ├── auth.test
│   │   │       ├── auth2.test
│   │   │       ├── auth3.test
│   │   │       ├── autoanalyze1.test
│   │   │       ├── autoinc.test
│   │   │       ├── autoindex1.test
│   │   │       ├── autoindex2.test
│   │   │       ├── autoindex3.test
│   │   │       ├── autoindex4.test
│   │   │       ├── autoindex5.test
│   │   │       ├── autovacuum.test
│   │   │       ├── autovacuum_ioerr2.test
│   │   │       ├── avtrans.test
│   │   │       ├── backcompat.test
│   │   │       ├── backup.test
│   │   │       ├── backup2.test
│   │   │       ├── backup4.test
│   │   │       ├── backup5.test
│   │   │       ├── backup_ioerr.test
│   │   │       ├── backup_malloc.test
│   │   │       ├── badutf.test
│   │   │       ├── badutf2.test
│   │   │       ├── bc_common.tcl
│   │   │       ├── bestindex1.test
│   │   │       ├── bestindex2.test
│   │   │       ├── bestindex3.test
│   │   │       ├── bestindex4.test
│   │   │       ├── bestindex5.test
│   │   │       ├── between.test
│   │   │       ├── bigfile.test
│   │   │       ├── bigfile2.test
│   │   │       ├── bigmmap.test
│   │   │       ├── bigrow.test
│   │   │       ├── bigsort.test
│   │   │       ├── bind.test
│   │   │       ├── bindxfer.test
│   │   │       ├── bitvec.test
│   │   │       ├── blob.test
│   │   │       ├── boundary1.tcl
│   │   │       ├── boundary1.test
│   │   │       ├── boundary2.tcl
│   │   │       ├── boundary2.test
│   │   │       ├── boundary3.tcl
│   │   │       ├── boundary3.test
│   │   │       ├── boundary4.tcl
│   │   │       ├── boundary4.test
│   │   │       ├── btree01.test
│   │   │       ├── btree02.test
│   │   │       ├── btreefault.test
│   │   │       ├── busy.test
│   │   │       ├── cache.test
│   │   │       ├── cacheflush.test
│   │   │       ├── cachespill.test
│   │   │       ├── capi2.test
│   │   │       ├── capi3.test
│   │   │       ├── capi3b.test
│   │   │       ├── capi3c.test
│   │   │       ├── capi3d.test
│   │   │       ├── capi3e.test
│   │   │       ├── cast.test
│   │   │       ├── cffault.test
│   │   │       ├── check.test
│   │   │       ├── checkfreelist.test
│   │   │       ├── close.test
│   │   │       ├── closure01.test
│   │   │       ├── coalesce.test
│   │   │       ├── collate1.test
│   │   │       ├── collate2.test
│   │   │       ├── collate3.test
│   │   │       ├── collate4.test
│   │   │       ├── collate5.test
│   │   │       ├── collate6.test
│   │   │       ├── collate7.test
│   │   │       ├── collate8.test
│   │   │       ├── collate9.test
│   │   │       ├── collateA.test
│   │   │       ├── collateB.test
│   │   │       ├── colmeta.test
│   │   │       ├── colname.test
│   │   │       ├── conflict.test
│   │   │       ├── conflict2.test
│   │   │       ├── conflict3.test
│   │   │       ├── contrib01.test
│   │   │       ├── corrupt.test
│   │   │       ├── corrupt2.test
│   │   │       ├── corrupt3.test
│   │   │       ├── corrupt4.test
│   │   │       ├── corrupt5.test
│   │   │       ├── corrupt6.test
│   │   │       ├── corrupt7.test
│   │   │       ├── corrupt8.test
│   │   │       ├── corrupt9.test
│   │   │       ├── corruptA.test
│   │   │       ├── corruptB.test
│   │   │       ├── corruptC.test
│   │   │       ├── corruptD.test
│   │   │       ├── corruptE.test
│   │   │       ├── corruptF.test
│   │   │       ├── corruptG.test
│   │   │       ├── corruptH.test
│   │   │       ├── corruptI.test
│   │   │       ├── corruptJ.test
│   │   │       ├── corruptK.test
│   │   │       ├── cost.test
│   │   │       ├── count.test
│   │   │       ├── coveridxscan.test
│   │   │       ├── crash.test
│   │   │       ├── crash2.test
│   │   │       ├── crash3.test
│   │   │       ├── crash4.test
│   │   │       ├── crash5.test
│   │   │       ├── crash6.test
│   │   │       ├── crash7.test
│   │   │       ├── crash8.test
│   │   │       ├── crashM.test
│   │   │       ├── crashtest1.c
│   │   │       ├── createtab.test
│   │   │       ├── cse.test
│   │   │       ├── csv01.test
│   │   │       ├── ctime.test
│   │   │       ├── cursorhint.test
│   │   │       ├── cursorhint2.test
│   │   │       ├── date.test
│   │   │       ├── date2.test
│   │   │       ├── dbfuzz.c
│   │   │       ├── dbpage.test
│   │   │       ├── dbstatus.test
│   │   │       ├── dbstatus2.test
│   │   │       ├── default.test
│   │   │       ├── delete.test
│   │   │       ├── delete2.test
│   │   │       ├── delete3.test
│   │   │       ├── delete4.test
│   │   │       ├── delete_db.test
│   │   │       ├── descidx1.test
│   │   │       ├── descidx2.test
│   │   │       ├── descidx3.test
│   │   │       ├── diskfull.test
│   │   │       ├── distinct.test
│   │   │       ├── distinct2.test
│   │   │       ├── distinctagg.test
│   │   │       ├── e_blobbytes.test
│   │   │       ├── e_blobclose.test
│   │   │       ├── e_blobopen.test
│   │   │       ├── e_blobwrite.test
│   │   │       ├── e_changes.test
│   │   │       ├── e_createtable.test
│   │   │       ├── e_delete.test
│   │   │       ├── e_droptrigger.test
│   │   │       ├── e_dropview.test
│   │   │       ├── e_expr.test
│   │   │       ├── e_fkey.test
│   │   │       ├── e_fts3.test
│   │   │       ├── e_insert.test
│   │   │       ├── e_reindex.test
│   │   │       ├── e_resolve.test
│   │   │       ├── e_select.test
│   │   │       ├── e_select2.test
│   │   │       ├── e_totalchanges.test
│   │   │       ├── e_update.test
│   │   │       ├── e_uri.test
│   │   │       ├── e_vacuum.test
│   │   │       ├── e_wal.test
│   │   │       ├── e_walauto.test
│   │   │       ├── e_walckpt.test
│   │   │       ├── e_walhook.test
│   │   │       ├── emptytable.test
│   │   │       ├── enc.test
│   │   │       ├── enc2.test
│   │   │       ├── enc3.test
│   │   │       ├── enc4.test
│   │   │       ├── eqp.test
│   │   │       ├── errmsg.test
│   │   │       ├── eval.test
│   │   │       ├── exclusive.test
│   │   │       ├── exclusive2.test
│   │   │       ├── exec.test
│   │   │       ├── exists.test
│   │   │       ├── expr.test
│   │   │       ├── extension01.test
│   │   │       ├── extraquick.test
│   │   │       ├── fallocate.test
│   │   │       ├── filectrl.test
│   │   │       ├── filefmt.test
│   │   │       ├── fkey1.test
│   │   │       ├── fkey2.test
│   │   │       ├── fkey3.test
│   │   │       ├── fkey4.test
│   │   │       ├── fkey5.test
│   │   │       ├── fkey6.test
│   │   │       ├── fkey7.test
│   │   │       ├── fkey8.test
│   │   │       ├── fkey_malloc.test
│   │   │       ├── fordelete.test
│   │   │       ├── format4.test
│   │   │       ├── fts-9fd058691.test
│   │   │       ├── fts1a.test
│   │   │       ├── fts1b.test
│   │   │       ├── fts1c.test
│   │   │       ├── fts1d.test
│   │   │       ├── fts1e.test
│   │   │       ├── fts1f.test
│   │   │       ├── fts1i.test
│   │   │       ├── fts1j.test
│   │   │       ├── fts1k.test
│   │   │       ├── fts1l.test
│   │   │       ├── fts1m.test
│   │   │       ├── fts1n.test
│   │   │       ├── fts1o.test
│   │   │       ├── fts1porter.test
│   │   │       ├── fts2.test
│   │   │       ├── fts2a.test
│   │   │       ├── fts2b.test
│   │   │       ├── fts2c.test
│   │   │       ├── fts2d.test
│   │   │       ├── fts2e.test
│   │   │       ├── fts2f.test
│   │   │       ├── fts2g.test
│   │   │       ├── fts2h.test
│   │   │       ├── fts2i.test
│   │   │       ├── fts2j.test
│   │   │       ├── fts2k.test
│   │   │       ├── fts2l.test
│   │   │       ├── fts2m.test
│   │   │       ├── fts2n.test
│   │   │       ├── fts2o.test
│   │   │       ├── fts2p.test
│   │   │       ├── fts2q.test
│   │   │       ├── fts2r.test
│   │   │       ├── fts2token.test
│   │   │       ├── fts3.test
│   │   │       ├── fts3_common.tcl
│   │   │       ├── fts3aa.test
│   │   │       ├── fts3ab.test
│   │   │       ├── fts3ac.test
│   │   │       ├── fts3ad.test
│   │   │       ├── fts3ae.test
│   │   │       ├── fts3af.test
│   │   │       ├── fts3ag.test
│   │   │       ├── fts3ah.test
│   │   │       ├── fts3ai.test
│   │   │       ├── fts3aj.test
│   │   │       ├── fts3ak.test
│   │   │       ├── fts3al.test
│   │   │       ├── fts3am.test
│   │   │       ├── fts3an.test
│   │   │       ├── fts3ao.test
│   │   │       ├── fts3atoken.test
│   │   │       ├── fts3auto.test
│   │   │       ├── fts3aux1.test
│   │   │       ├── fts3aux2.test
│   │   │       ├── fts3b.test
│   │   │       ├── fts3c.test
│   │   │       ├── fts3comp1.test
│   │   │       ├── fts3conf.test
│   │   │       ├── fts3corrupt.test
│   │   │       ├── fts3corrupt2.test
│   │   │       ├── fts3corrupt3.test
│   │   │       ├── fts3cov.test
│   │   │       ├── fts3d.test
│   │   │       ├── fts3defer.test
│   │   │       ├── fts3defer2.test
│   │   │       ├── fts3defer3.test
│   │   │       ├── fts3drop.test
│   │   │       ├── fts3e.test
│   │   │       ├── fts3expr.test
│   │   │       ├── fts3expr2.test
│   │   │       ├── fts3expr3.test
│   │   │       ├── fts3expr4.test
│   │   │       ├── fts3expr5.test
│   │   │       ├── fts3fault.test
│   │   │       ├── fts3fault2.test
│   │   │       ├── fts3first.test
│   │   │       ├── fts3join.test
│   │   │       ├── fts3malloc.test
│   │   │       ├── fts3matchinfo.test
│   │   │       ├── fts3misc.test
│   │   │       ├── fts3near.test
│   │   │       ├── fts3offsets.test
│   │   │       ├── fts3prefix.test
│   │   │       ├── fts3prefix2.test
│   │   │       ├── fts3query.test
│   │   │       ├── fts3rank.test
│   │   │       ├── fts3rnd.test
│   │   │       ├── fts3shared.test
│   │   │       ├── fts3snippet.test
│   │   │       ├── fts3sort.test
│   │   │       ├── fts3tok1.test
│   │   │       ├── fts3tok_err.test
│   │   │       ├── fts3varint.test
│   │   │       ├── fts4aa.test
│   │   │       ├── fts4check.test
│   │   │       ├── fts4content.test
│   │   │       ├── fts4docid.test
│   │   │       ├── fts4growth.test
│   │   │       ├── fts4growth2.test
│   │   │       ├── fts4incr.test
│   │   │       ├── fts4langid.test
│   │   │       ├── fts4lastrowid.test
│   │   │       ├── fts4merge.test
│   │   │       ├── fts4merge2.test
│   │   │       ├── fts4merge3.test
│   │   │       ├── fts4merge4.test
│   │   │       ├── fts4noti.test
│   │   │       ├── fts4onepass.test
│   │   │       ├── fts4opt.test
│   │   │       ├── fts4unicode.test
│   │   │       ├── full.test
│   │   │       ├── func.test
│   │   │       ├── func2.test
│   │   │       ├── func3.test
│   │   │       ├── func4.test
│   │   │       ├── func5.test
│   │   │       ├── fuzz-oss1.test
│   │   │       ├── fuzz.test
│   │   │       ├── fuzz2.test
│   │   │       ├── fuzz3.test
│   │   │       ├── fuzz_common.tcl
│   │   │       ├── fuzz_malloc.test
│   │   │       ├── fuzzcheck.c
│   │   │       ├── fuzzer1.test
│   │   │       ├── fuzzer2.test
│   │   │       ├── fuzzerfault.test
│   │   │       ├── gcfault.test
│   │   │       ├── genesis.tcl
│   │   │       ├── having.test
│   │   │       ├── hexlit.test
│   │   │       ├── hidden.test
│   │   │       ├── hook.test
│   │   │       ├── hook2.test
│   │   │       ├── icu.test
│   │   │       ├── ieee754.test
│   │   │       ├── imposter1.test
│   │   │       ├── in.test
│   │   │       ├── in2.test
│   │   │       ├── in3.test
│   │   │       ├── in4.test
│   │   │       ├── in5.test
│   │   │       ├── incrblob.test
│   │   │       ├── incrblob2.test
│   │   │       ├── incrblob3.test
│   │   │       ├── incrblob4.test
│   │   │       ├── incrblob_err.test
│   │   │       ├── incrblobfault.test
│   │   │       ├── incrcorrupt.test
│   │   │       ├── incrvacuum.test
│   │   │       ├── incrvacuum2.test
│   │   │       ├── incrvacuum3.test
│   │   │       ├── incrvacuum_ioerr.test
│   │   │       ├── index.test
│   │   │       ├── index2.test
│   │   │       ├── index3.test
│   │   │       ├── index4.test
│   │   │       ├── index5.test
│   │   │       ├── index6.test
│   │   │       ├── index7.test
│   │   │       ├── index8.test
│   │   │       ├── index9.test
│   │   │       ├── indexedby.test
│   │   │       ├── indexexpr1.test
│   │   │       ├── indexexpr2.test
│   │   │       ├── indexfault.test
│   │   │       ├── init.test
│   │   │       ├── insert.test
│   │   │       ├── insert2.test
│   │   │       ├── insert3.test
│   │   │       ├── insert4.test
│   │   │       ├── insert5.test
│   │   │       ├── instr.test
│   │   │       ├── instrfault.test
│   │   │       ├── intarray.test
│   │   │       ├── interrupt.test
│   │   │       ├── interrupt2.test
│   │   │       ├── intpkey.test
│   │   │       ├── io.test
│   │   │       ├── ioerr.test
│   │   │       ├── ioerr2.test
│   │   │       ├── ioerr3.test
│   │   │       ├── ioerr4.test
│   │   │       ├── ioerr5.test
│   │   │       ├── ioerr6.test
│   │   │       ├── join.test
│   │   │       ├── join2.test
│   │   │       ├── join3.test
│   │   │       ├── join4.test
│   │   │       ├── join5.test
│   │   │       ├── join6.test
│   │   │       ├── journal1.test
│   │   │       ├── journal2.test
│   │   │       ├── journal3.test
│   │   │       ├── jrnlmode.test
│   │   │       ├── jrnlmode2.test
│   │   │       ├── jrnlmode3.test
│   │   │       ├── json101.test
│   │   │       ├── json102.test
│   │   │       ├── json103.test
│   │   │       ├── json104.test
│   │   │       ├── keyword1.test
│   │   │       ├── kvtest.c
│   │   │       ├── lastinsert.test
│   │   │       ├── laststmtchanges.test
│   │   │       ├── like.test
│   │   │       ├── like2.test
│   │   │       ├── like3.test
│   │   │       ├── limit.test
│   │   │       ├── limit2.test
│   │   │       ├── loadext.test
│   │   │       ├── loadext2.test
│   │   │       ├── lock.test
│   │   │       ├── lock2.test
│   │   │       ├── lock3.test
│   │   │       ├── lock4.test
│   │   │       ├── lock5.test
│   │   │       ├── lock6.test
│   │   │       ├── lock7.test
│   │   │       ├── lock_common.tcl
│   │   │       ├── lookaside.test
│   │   │       ├── main.test
│   │   │       ├── make-where7.tcl
│   │   │       ├── malloc.test
│   │   │       ├── malloc3.test
│   │   │       ├── malloc4.test
│   │   │       ├── malloc5.test
│   │   │       ├── malloc6.test
│   │   │       ├── malloc7.test
│   │   │       ├── malloc8.test
│   │   │       ├── malloc9.test
│   │   │       ├── mallocA.test
│   │   │       ├── mallocAll.test
│   │   │       ├── mallocB.test
│   │   │       ├── mallocC.test
│   │   │       ├── mallocD.test
│   │   │       ├── mallocE.test
│   │   │       ├── mallocF.test
│   │   │       ├── mallocG.test
│   │   │       ├── mallocH.test
│   │   │       ├── mallocI.test
│   │   │       ├── mallocJ.test
│   │   │       ├── mallocK.test
│   │   │       ├── mallocL.test
│   │   │       ├── mallocM.test
│   │   │       ├── malloc_common.tcl
│   │   │       ├── manydb.test
│   │   │       ├── mem5.test
│   │   │       ├── memdb.test
│   │   │       ├── memleak.test
│   │   │       ├── memsubsys1.test
│   │   │       ├── memsubsys2.test
│   │   │       ├── minmax.test
│   │   │       ├── minmax2.test
│   │   │       ├── minmax3.test
│   │   │       ├── minmax4.test
│   │   │       ├── misc1.test
│   │   │       ├── misc2.test
│   │   │       ├── misc3.test
│   │   │       ├── misc4.test
│   │   │       ├── misc5.test
│   │   │       ├── misc6.test
│   │   │       ├── misc7.test
│   │   │       ├── misc8.test
│   │   │       ├── misuse.test
│   │   │       ├── mjournal.test
│   │   │       ├── mmap1.test
│   │   │       ├── mmap2.test
│   │   │       ├── mmap3.test
│   │   │       ├── mmap4.test
│   │   │       ├── mmapfault.test
│   │   │       ├── mmapwarm.test
│   │   │       ├── multiplex.test
│   │   │       ├── multiplex2.test
│   │   │       ├── multiplex3.test
│   │   │       ├── multiplex4.test
│   │   │       ├── mutex1.test
│   │   │       ├── mutex2.test
│   │   │       ├── nan.test
│   │   │       ├── nockpt.test
│   │   │       ├── nolock.test
│   │   │       ├── notify1.test
│   │   │       ├── notify2.test
│   │   │       ├── notify3.test
│   │   │       ├── notnull.test
│   │   │       ├── null.test
│   │   │       ├── numcast.test
│   │   │       ├── numindex1.test
│   │   │       ├── offset1.test
│   │   │       ├── openv2.test
│   │   │       ├── orderby1.test
│   │   │       ├── orderby2.test
│   │   │       ├── orderby3.test
│   │   │       ├── orderby4.test
│   │   │       ├── orderby5.test
│   │   │       ├── orderby6.test
│   │   │       ├── orderby7.test
│   │   │       ├── orderby8.test
│   │   │       ├── orderby9.test
│   │   │       ├── oserror.test
│   │   │       ├── ossfuzz.c
│   │   │       ├── ossshell.c
│   │   │       ├── ovfl.test
│   │   │       ├── pager1.test
│   │   │       ├── pager2.test
│   │   │       ├── pager3.test
│   │   │       ├── pager4.test
│   │   │       ├── pagerfault.test
│   │   │       ├── pagerfault2.test
│   │   │       ├── pagerfault3.test
│   │   │       ├── pageropt.test
│   │   │       ├── pagesize.test
│   │   │       ├── parser1.test
│   │   │       ├── pcache.test
│   │   │       ├── pcache2.test
│   │   │       ├── percentile.test
│   │   │       ├── permutations.test
│   │   │       ├── pragma.test
│   │   │       ├── pragma2.test
│   │   │       ├── pragma3.test
│   │   │       ├── pragma4.test
│   │   │       ├── pragma5.test
│   │   │       ├── pragmafault.test
│   │   │       ├── printf.test
│   │   │       ├── printf2.test
│   │   │       ├── progress.test
│   │   │       ├── ptrchng.test
│   │   │       ├── pushdown.test
│   │   │       ├── queryonly.test
│   │   │       ├── quick.test
│   │   │       ├── quota-glob.test
│   │   │       ├── quota.test
│   │   │       ├── quota2.test
│   │   │       ├── quote.test
│   │   │       ├── randexpr1.tcl
│   │   │       ├── randexpr1.test
│   │   │       ├── rbu.test
│   │   │       ├── rdonly.test
│   │   │       ├── regexp1.test
│   │   │       ├── regexp2.test
│   │   │       ├── reindex.test
│   │   │       ├── releasetest.tcl
│   │   │       ├── resolver01.test
│   │   │       ├── rollback.test
│   │   │       ├── rollback2.test
│   │   │       ├── rollbackfault.test
│   │   │       ├── rowallock.test
│   │   │       ├── rowhash.test
│   │   │       ├── rowid.test
│   │   │       ├── rowvalue.test
│   │   │       ├── rowvalue2.test
│   │   │       ├── rowvalue3.test
│   │   │       ├── rowvalue4.test
│   │   │       ├── rowvalue5.test
│   │   │       ├── rowvalue6.test
│   │   │       ├── rowvalue7.test
│   │   │       ├── rowvalue8.test
│   │   │       ├── rowvalue9.test
│   │   │       ├── rowvaluefault.test
│   │   │       ├── rtree.test
│   │   │       ├── run-wordcount.sh
│   │   │       ├── savepoint.test
│   │   │       ├── savepoint2.test
│   │   │       ├── savepoint4.test
│   │   │       ├── savepoint5.test
│   │   │       ├── savepoint6.test
│   │   │       ├── savepoint7.test
│   │   │       ├── savepointfault.test
│   │   │       ├── scanstatus.test
│   │   │       ├── schema.test
│   │   │       ├── schema2.test
│   │   │       ├── schema3.test
│   │   │       ├── schema4.test
│   │   │       ├── schema5.test
│   │   │       ├── schema6.test
│   │   │       ├── securedel.test
│   │   │       ├── securedel2.test
│   │   │       ├── select1.test
│   │   │       ├── select2.test
│   │   │       ├── select3.test
│   │   │       ├── select4.test
│   │   │       ├── select5.test
│   │   │       ├── select6.test
│   │   │       ├── select7.test
│   │   │       ├── select8.test
│   │   │       ├── select9.test
│   │   │       ├── selectA.test
│   │   │       ├── selectB.test
│   │   │       ├── selectC.test
│   │   │       ├── selectD.test
│   │   │       ├── selectE.test
│   │   │       ├── selectF.test
│   │   │       ├── selectG.test
│   │   │       ├── server1.test
│   │   │       ├── session.test
│   │   │       ├── shared.test
│   │   │       ├── shared2.test
│   │   │       ├── shared3.test
│   │   │       ├── shared4.test
│   │   │       ├── shared6.test
│   │   │       ├── shared7.test
│   │   │       ├── shared8.test
│   │   │       ├── shared9.test
│   │   │       ├── sharedA.test
│   │   │       ├── sharedB.test
│   │   │       ├── shared_err.test
│   │   │       ├── sharedlock.test
│   │   │       ├── shell1.test
│   │   │       ├── shell2.test
│   │   │       ├── shell3.test
│   │   │       ├── shell4.test
│   │   │       ├── shell5.test
│   │   │       ├── shell6.test
│   │   │       ├── shell7.

================================================
FILE CONTENTS
================================================

================================================
FILE: AUTHORS
================================================
# 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>
Jan Mercl <0xjnml@gmail.com>
Maxim Kupriianov <max@kc.vc>
Peter Waller <p@pwaller.net>
Steffen Butzer <steffen(dot)butzer@outlook.com>
Yasuhiro Matsumoto <mattn.jp@gmail.com>


================================================
FILE: CONTRIBUTORS
================================================
# 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>
Jan Mercl <0xjnml@gmail.com>
Maxim Kupriianov <max@kc.vc>
Peter Waller <p@pwaller.net>
Steffen Butzer <steffen(dot)butzer@outlook.com>
Zvi Effron <zeffron@cs.hmc.edu>
Yasuhiro Matsumoto <mattn.jp@gmail.com>


================================================
FILE: LICENSE
================================================
Copyright (c) 2014 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.


================================================
FILE: Makefile
================================================
# Copyright 2016 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 clean cover cpu edit editor internalError later mem nuke todo

grep=--include=*.go --include=*.l --include=*.y

all: editor
	rm -f log-*.c log-*.h
	go vet || true
	golint || true
	make todo
	unused . || true
	maligned
	unconvert -apply

clean:
	rm -f log-*.c log-*.h *~ cpu.test mem.test /tmp/cc-test-* log*.c
	go clean

cover:
	t=$(shell tempfile) ; go test -coverprofile $$t && go tool cover -html $$t && unlink $$t

cpu:
	go test -c -o cpu.test
	./cpu.test -noerr -test.cpuprofile cpu.out
	go tool pprof --lines cpu.test cpu.out

edit:
	gvim -p Makefile trigraphs.l scanner.l parser.yy all_test.go ast2.go cc.go cpp.go encoding.go etc.go lexer.go model.go

editor: parser.go scanner.go trigraphs.go
	rm -f log-*.c log-*.h
	gofmt -l -s -w *.go
	rm -f log-*.c log-*.h
	go test -i
	go test 2>&1 | tee log
	go install

internalError:
	egrep -ho '"internal error.*"' *.go | sort | cat -n

later:
	@grep -n $(grep) LATER * || true
	@grep -n $(grep) MAYBE * || true

mem:
	go test -c -o mem.test
	./mem.test -test.bench . -test.memprofile mem.out
	go tool pprof --lines --web --alloc_space mem.test mem.out

nuke: clean
	go clean -i

parser.go scanner.go trigraphs.go: parser.yy trigraphs.l scanner.l
	rm -f log-*.c log-*.h
	go test -i
	go generate

todo:
	@grep -n $(grep) ^[[:space:]]*_[[:space:]]*=[[:space:]][[:alpha:]][[:alnum:]]* * || true
	@grep -n $(grep) TODO * || true
	@grep -n $(grep) BUG * || true
	@grep -n $(grep) [^[:alpha:]]println * || true


================================================
FILE: README.md
================================================
`github.com/cznic/cc` has moved to [`modernc.org/cc`](https://godoc.org/modernc.org/cc) ([vcs](https://gitlab.com/cznic/cc)).

Please update your import paths to `modernc.org/cc`.

This repo is now archived.


================================================
FILE: all_test.go
================================================
// Copyright 2016 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 (
	"bufio"
	"bytes"
	"flag"
	"fmt"
	"go/scanner"
	"go/token"
	"io"
	"io/ioutil"
	"log"
	"os"
	"os/exec"
	"path"
	"path/filepath"
	"regexp"
	"runtime"
	"runtime/debug"
	"sort"
	"strconv"
	"strings"
	"testing"
	"unicode"

	"github.com/cznic/golex/lex"
	"github.com/cznic/mathutil"
	"github.com/cznic/xc"
)

func printStack() { debug.PrintStack() }

func caller(s string, va ...interface{}) {
	if s == "" {
		s = strings.Repeat("%v ", len(va))
	}
	_, fn, fl, _ := runtime.Caller(2)
	fmt.Fprintf(os.Stderr, "caller: %s:%d: ", path.Base(fn), fl)
	fmt.Fprintf(os.Stderr, s, va...)
	fmt.Fprintln(os.Stderr)
	_, fn, fl, _ = runtime.Caller(1)
	fmt.Fprintf(os.Stderr, "\tcallee: %s:%d: ", path.Base(fn), fl)
	fmt.Fprintln(os.Stderr)
	os.Stderr.Sync()
}

func dbg(s string, va ...interface{}) {
	if s == "" {
		s = strings.Repeat("%v ", len(va))
	}
	_, fn, fl, _ := runtime.Caller(1)
	fmt.Fprintf(os.Stderr, "dbg %s:%d: ", path.Base(fn), fl)
	fmt.Fprintf(os.Stderr, s, va...)
	fmt.Fprintln(os.Stderr)
	os.Stderr.Sync()
}

func TODO(...interface{}) string {
	_, fn, fl, _ := runtime.Caller(1)
	return fmt.Sprintf("TODO: %s:%d:\n", path.Base(fn), fl)
}

func use(...interface{}) int { return 42 }

var _ = use(printStack, caller, dbg, TODO, (*ctype).str, yyDefault, yyErrCode, yyMaxDepth)

// ============================================================================

var (
	o1        = flag.String("1", "", "single file argument of TestPPParse1.")
	oDev      = flag.Bool("dev", false, "enable WIP tests")
	oFailFast = flag.Bool("ff", false, "crash on first reported error (in some tests.)")
	oRe       = flag.String("re", "", "regexp filter.")
	oTmp      = flag.Bool("tmp", false, "keep certain temp files.")
	oTrace    = flag.Bool("trc", false, "print testDev path")

	includes = []string{}

	predefinedMacros = `
#define __STDC_HOSTED__ 1
#define __STDC_VERSION__ 199901L
#define __STDC__ 1

#define __MODEL64

void __GO__(char *s, ...);
`
	sysIncludes = []string{}

	testTweaks = &tweaks{
		enableDefineOmitCommaBeforeDDD: true,
		enableDlrInIdentifiers:         true,
		enableEmptyDefine:              true,
		enableUndefExtraTokens:         true,
	}
)

func newTestReport() *xc.Report {
	r := xc.NewReport()
	r.ErrLimit = -1
	if *oFailFast {
		r.PanicOnError = true
	}
	return r
}

func init() {
	isTesting = true
	log.SetFlags(log.Llongfile)
	flag.BoolVar(&debugIncludes, "dbgi", false, "debug include searches")
	flag.BoolVar(&debugMacros, "dbgm", false, "debug macros")
	flag.BoolVar(&debugTypeStrings, "xtypes", false, "add debug info to type strings")
	flag.BoolVar(&isGenerating, "generating", false, "go generate is executing (false).")
	flag.IntVar(&yyDebug, "yydebug", 0, "")
}

func newTestModel() *Model {
	return &Model{ // 64
		Items: map[Kind]ModelItem{
			Ptr:               {8, 8, 8, nil},
			UintPtr:           {8, 8, 8, nil},
			Void:              {0, 1, 1, nil},
			Char:              {1, 1, 1, nil},
			SChar:             {1, 1, 1, nil},
			UChar:             {1, 1, 1, nil},
			Short:             {2, 2, 2, nil},
			UShort:            {2, 2, 2, nil},
			Int:               {4, 4, 4, nil},
			UInt:              {4, 4, 4, nil},
			Long:              {8, 8, 8, nil},
			ULong:             {8, 8, 8, nil},
			LongLong:          {8, 8, 8, nil},
			ULongLong:         {8, 8, 8, nil},
			Float:             {4, 4, 4, nil},
			Double:            {8, 8, 8, nil},
			LongDouble:        {16, 16, 16, nil},
			Bool:              {1, 1, 1, nil},
			FloatComplex:      {8, 8, 8, nil},
			DoubleComplex:     {16, 16, 16, nil},
			LongDoubleComplex: {16, 16, 16, nil},
		},
	}
}

func printError(w io.Writer, pref string, err error) {
	switch x := err.(type) {
	case scanner.ErrorList:
		for i, v := range x {
			fmt.Fprintf(w, "%s%v\n", pref, v)
			if i == 50 {
				fmt.Fprintln(w, "too many errors")
				break
			}
		}
	default:
		fmt.Fprintf(w, "%s%v\n", pref, err)
	}
}

func errString(err error) string {
	var b bytes.Buffer
	printError(&b, "", err)
	return b.String()
}

func testUCNTable(t *testing.T, tab []rune, fOk, fOther func(rune) bool, fcategory func(rune) bool, tag string) {
	m := map[rune]struct{}{}
	for i := 0; i < len(tab); i += 2 {
		l, h := tab[i], tab[i+1]
		if h == 0 {
			h = l
		}
		for r := rune(l); r <= rune(h); r++ {
			m[r] = struct{}{}
		}
	}
	for r := rune(0); r < 0xffff; r++ {
		_, ok := m[r]
		if g, e := fOk(r), ok; g != e {
			t.Errorf("%#04x %v %v", r, g, e)
		}

		if ok {
			if g, e := fOther(r), false; g != e {
				t.Errorf("%#04x %v %v", r, g, e)
			}
		}
	}
}

func TestUCNDigitsTable(t *testing.T) {
	tab := []rune{
		0x0660, 0x0669, 0x06F0, 0x06F9, 0x0966, 0x096F, 0x09E6, 0x09EF, 0x0A66, 0x0A6F,
		0x0AE6, 0x0AEF, 0x0B66, 0x0B6F, 0x0BE7, 0x0BEF, 0x0C66, 0x0C6F, 0x0CE6, 0x0CEF,
		0x0D66, 0x0D6F, 0x0E50, 0x0E59, 0x0ED0, 0x0ED9, 0x0F20, 0x0F33,
	}
	testUCNTable(t, tab, isUCNDigit, isUCNNonDigit, unicode.IsDigit, "unicode.IsDigit")
}

func TestUCNNonDigitsTable(t *testing.T) {
	tab := []rune{
		0x00AA, 0x0000, 0x00B5, 0x0000, 0x00B7, 0x0000, 0x00BA, 0x0000, 0x00C0, 0x00D6,
		0x00D8, 0x00F6, 0x00F8, 0x01F5, 0x01FA, 0x0217, 0x0250, 0x02A8, 0x02B0, 0x02B8,
		0x02BB, 0x0000, 0x02BD, 0x02C1, 0x02D0, 0x02D1, 0x02E0, 0x02E4, 0x037A, 0x0000,
		0x0386, 0x0000, 0x0388, 0x038A, 0x038C, 0x0000, 0x038E, 0x03A1, 0x03A3, 0x03CE,
		0x03D0, 0x03D6, 0x03DA, 0x0000, 0x03DC, 0x0000, 0x03DE, 0x0000, 0x03E0, 0x0000,
		0x03E2, 0x03F3, 0x0401, 0x040C, 0x040E, 0x044F, 0x0451, 0x045C, 0x045E, 0x0481,
		0x0490, 0x04C4, 0x04C7, 0x04C8, 0x04CB, 0x04CC, 0x04D0, 0x04EB, 0x04EE, 0x04F5,
		0x04F8, 0x04F9, 0x0531, 0x0556, 0x0559, 0x0000, 0x0561, 0x0587, 0x05B0, 0x05B9,
		0x05F0, 0x05F2, 0x0621, 0x063A, 0x0640, 0x0652, 0x0670, 0x06B7, 0x06BA, 0x06BE,
		0x06C0, 0x06CE, 0x06D0, 0x06DC, 0x06E5, 0x06E8, 0x06EA, 0x06ED, 0x0901, 0x0903,
		0x0905, 0x0939, 0x093D, 0x0000, 0x093E, 0x094D, 0x0950, 0x0952, 0x0958, 0x0963,
		0x0981, 0x0983, 0x0985, 0x098C, 0x098F, 0x0990, 0x0993, 0x09A8, 0x09AA, 0x09B0,
		0x09B2, 0x0000, 0x09B6, 0x09B9, 0x09BE, 0x09C4, 0x09C7, 0x09C8, 0x09CB, 0x09CD,
		0x09DC, 0x09DD, 0x09DF, 0x09E3, 0x09F0, 0x09F1, 0x0A02, 0x0000, 0x0A05, 0x0A0A,
		0x0A0F, 0x0A10, 0x0A13, 0x0A28, 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36,
		0x0A38, 0x0A39, 0x0A3E, 0x0A42, 0x0A47, 0x0A48, 0x0A4B, 0x0A4D, 0x0A59, 0x0A5C,
		0x0A5E, 0x0000, 0x0A74, 0x0000, 0x0A81, 0x0A83, 0x0A85, 0x0A8B, 0x0A8D, 0x0000,
		0x0A8F, 0x0A91, 0x0A93, 0x0AA8, 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, 0x0AB5, 0x0AB9,
		0x0ABD, 0x0AC5, 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACD, 0x0AD0, 0x0000, 0x0AE0, 0x0000,
		0x0B01, 0x0B03, 0x0B05, 0x0B0C, 0x0B0F, 0x0B10, 0x0B13, 0x0B28, 0x0B2A, 0x0B30,
		0x0B32, 0x0B33, 0x0B36, 0x0B39, 0x0B3D, 0x0000, 0x0B3E, 0x0B43, 0x0B47, 0x0B48,
		0x0B4B, 0x0B4D, 0x0B5C, 0x0B5D, 0x0B5F, 0x0B61, 0x0B82, 0x0B83, 0x0B85, 0x0B8A,
		0x0B8E, 0x0B90, 0x0B92, 0x0B95, 0x0B99, 0x0B9A, 0x0B9C, 0x0000, 0x0B9E, 0x0B9F,
		0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA, 0x0BAE, 0x0BB5, 0x0BB7, 0x0BB9, 0x0BBE, 0x0BC2,
		0x0BC6, 0x0BC8, 0x0BCA, 0x0BCD, 0x0C01, 0x0C03, 0x0C05, 0x0C0C, 0x0C0E, 0x0C10,
		0x0C12, 0x0C28, 0x0C2A, 0x0C33, 0x0C35, 0x0C39, 0x0C3E, 0x0C44, 0x0C46, 0x0C48,
		0x0C4A, 0x0C4D, 0x0C60, 0x0C61, 0x0C82, 0x0C83, 0x0C85, 0x0C8C, 0x0C8E, 0x0C90,
		0x0C92, 0x0CA8, 0x0CAA, 0x0CB3, 0x0CB5, 0x0CB9, 0x0CBE, 0x0CC4, 0x0CC6, 0x0CC8,
		0x0CCA, 0x0CCD, 0x0CDE, 0x0000, 0x0CE0, 0x0CE1, 0x0D02, 0x0D03, 0x0D05, 0x0D0C,
		0x0D0E, 0x0D10, 0x0D12, 0x0D28, 0x0D2A, 0x0D39, 0x0D3E, 0x0D43, 0x0D46, 0x0D48,
		0x0D4A, 0x0D4D, 0x0D60, 0x0D61, 0x0E01, 0x0E3A,

		// In [0], Annex D, Thai [0x0E40, 0x0E5B] overlaps with digits
		// [0x0E50, 0x0E59]. Exclude them.
		0x0E40, 0x0E4F,
		0x0E5A, 0x0E5B,

		0x0E81, 0x0E82,
		0x0E84, 0x0000, 0x0E87, 0x0E88, 0x0E8A, 0x0000, 0x0E8D, 0x0000, 0x0E94, 0x0E97,
		0x0E99, 0x0E9F, 0x0EA1, 0x0EA3, 0x0EA5, 0x0000, 0x0EA7, 0x0000, 0x0EAA, 0x0EAB,
		0x0EAD, 0x0EAE, 0x0EB0, 0x0EB9, 0x0EBB, 0x0EBD, 0x0EC0, 0x0EC4, 0x0EC6, 0x0000,
		0x0EC8, 0x0ECD, 0x0EDC, 0x0EDD, 0x0F00, 0x0000, 0x0F18, 0x0F19, 0x0F35, 0x0000,
		0x0F37, 0x0000, 0x0F39, 0x0000, 0x0F3E, 0x0F47, 0x0F49, 0x0F69, 0x0F71, 0x0F84,
		0x0F86, 0x0F8B, 0x0F90, 0x0F95, 0x0F97, 0x0000, 0x0F99, 0x0FAD, 0x0FB1, 0x0FB7,
		0x0FB9, 0x0000, 0x10A0, 0x10C5, 0x10D0, 0x10F6, 0x1E00, 0x1E9B, 0x1EA0, 0x1EF9,
		0x1F00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D, 0x1F50, 0x1F57,
		0x1F59, 0x0000, 0x1F5B, 0x0000, 0x1F5D, 0x0000, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4,
		0x1FB6, 0x1FBC, 0x1FBE, 0x0000, 0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3,
		0x1FD6, 0x1FDB, 0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, 0x203F, 0x2040,
		0x207F, 0x0000, 0x2102, 0x0000, 0x2107, 0x0000, 0x210A, 0x2113, 0x2115, 0x0000,
		0x2118, 0x211D, 0x2124, 0x0000, 0x2126, 0x0000, 0x2128, 0x0000, 0x212A, 0x2131,
		0x2133, 0x2138, 0x2160, 0x2182, 0x3005, 0x3007, 0x3021, 0x3029, 0x3041, 0x3093,
		0x309B, 0x309C, 0x30A1, 0x30F6, 0x30FB, 0x30FC, 0x3105, 0x312C, 0x4E00, 0x9FA5,
		0xAC00, 0xD7A3,
	}
	testUCNTable(t, tab, isUCNNonDigit, isUCNDigit, unicode.IsLetter, "unicode.IsLetter")
}

func charStr(c rune) string {
	return yySymName(int(c))
}

func charsStr(chars []lex.Char, delta token.Pos) (a []string) {
	for _, v := range chars {
		a = append(a, fmt.Sprintf("{%s %d}", charStr(v.Rune), v.Pos()-delta))
	}
	return a
}

type x []struct {
	c   rune
	pos token.Pos
}

type lexerTests []struct {
	src   string
	chars x
}

func testLexer(t *testing.T, newLexer func(i int, src string, report *xc.Report) (*lexer, error), tab lexerTests) {
nextTest:
	for ti, test := range tab {
		//dbg("==== %v", ti)
		report := xc.NewReport()
		lx, err := newLexer(ti, test.src, report)
		if err != nil {
			t.Fatal(err)
		}

		delta := token.Pos(lx.file.Base() - 1)
		var chars []lex.Char
		var c lex.Char
		for i := 0; c.Rune != ccEOF && i < len(test.src)+2; i++ {
			c = lx.scanChar()
			chars = append(chars, c)
		}
		if c.Rune != ccEOF {
			t.Errorf("%d: scanner stall %v", ti, charsStr(chars, delta))
			continue
		}

		if g, e := report.Errors(true), error(nil); g != e {
			t.Errorf("%d: lx.err %v %v %v", ti, g, e, charsStr(chars, delta))
			continue
		}

		if g, e := len(chars), len(test.chars); g != e {
			t.Errorf("%d: len(chars) %v %v %v", ti, g, e, charsStr(chars, delta))
			continue
		}

		for i, c := range chars {
			c = chars[i]
			e := test.chars[i]
			g := c.Rune
			if c.Rune == ccEOF {
				g = -1
			}
			if e := e.c; g != e {
				t.Errorf("%d: c[%d] %v %v %v", ti, i, charStr(g), charStr(e), charsStr(chars, delta))
				continue nextTest
			}

			if g, e := c.Pos()-delta, e.pos; g != e {
				t.Errorf("%d: pos[%d] %v %v %v", ti, i, g, e, charsStr(chars, delta))
				continue nextTest
			}
		}
	}
}

func TestLexer(t *testing.T) {
	testLexer(
		t,
		func(i int, src string, report *xc.Report) (*lexer, error) {
			return newLexer(fmt.Sprintf("TestLexer.%d", i), len(src), strings.NewReader(src), report, testTweaks)
		},
		lexerTests{
			{"", x{{-1, 1}}},
			{"%0", x{{'%', 1}, {INTCONST, 2}, {-1, 3}}},
			{"%:%:", x{{PPPASTE, 1}, {-1, 5}}},
			{"%>", x{{'}', 1}, {-1, 3}}},
			{"0", x{{INTCONST, 1}, {-1, 2}}},
			{"01", x{{INTCONST, 1}, {-1, 3}}},
			{"0??/1\n", x{{INTCONST, 1}, {'?', 2}, {'?', 3}, {'/', 4}, {INTCONST, 5}, {'\n', 6}, {-1, 7}}},
			{"0??/1\n2", x{{INTCONST, 1}, {'?', 2}, {'?', 3}, {'/', 4}, {INTCONST, 5}, {'\n', 6}, {INTCONST, 7}, {-1, 8}}},
			{"0??/\n", x{{INTCONST, 1}, {'?', 2}, {'?', 3}, {'/', 4}, {'\n', 5}, {-1, 6}}},
			{"0??/\n2", x{{INTCONST, 1}, {'?', 2}, {'?', 3}, {'/', 4}, {'\n', 5}, {INTCONST, 6}, {-1, 7}}},
			{"0\\1\n", x{{INTCONST, 1}, {'\\', 2}, {INTCONST, 3}, {'\n', 4}, {-1, 5}}},
			{"0\\1\n2", x{{INTCONST, 1}, {'\\', 2}, {INTCONST, 3}, {'\n', 4}, {INTCONST, 5}, {-1, 6}}},
			{"0\\\n", x{{INTCONST, 1}, {-1, 4}}},
			{"0\\\n2", x{{INTCONST, 1}, {-1, 5}}},
			{"0\x00", x{{INTCONST, 1}, {0, 2}, {-1, 3}}},
			{"0\x001", x{{INTCONST, 1}, {0, 2}, {INTCONST, 3}, {-1, 4}}},
			{":>", x{{']', 1}, {-1, 3}}},
			{"<%", x{{'{', 1}, {-1, 3}}},
			{"<:", x{{'[', 1}, {-1, 3}}},
			{"??!", x{{'?', 1}, {'?', 2}, {'!', 3}, {-1, 4}}},
			{"??!0", x{{'?', 1}, {'?', 2}, {'!', 3}, {INTCONST, 4}, {-1, 5}}},
			{"??!01", x{{'?', 1}, {'?', 2}, {'!', 3}, {INTCONST, 4}, {-1, 6}}},
			{"??!=", x{{'?', 1}, {'?', 2}, {NEQ, 3}, {-1, 5}}},
			{"??'", x{{'?', 1}, {'?', 2}, {'\'', 3}, {-1, 4}}},
			{"??(", x{{'?', 1}, {'?', 2}, {'(', 3}, {-1, 4}}},
			{"??)", x{{'?', 1}, {'?', 2}, {')', 3}, {-1, 4}}},
			{"??-", x{{'?', 1}, {'?', 2}, {'-', 3}, {-1, 4}}},
			{"??/", x{{'?', 1}, {'?', 2}, {'/', 3}, {-1, 4}}},
			{"??/1\n", x{{'?', 1}, {'?', 2}, {'/', 3}, {INTCONST, 4}, {'\n', 5}, {-1, 6}}},
			{"??/1\n2", x{{'?', 1}, {'?', 2}, {'/', 3}, {INTCONST, 4}, {'\n', 5}, {INTCONST, 6}, {-1, 7}}},
			{"??/\n", x{{'?', 1}, {'?', 2}, {'/', 3}, {'\n', 4}, {-1, 5}}},
			{"??/\n2", x{{'?', 1}, {'?', 2}, {'/', 3}, {'\n', 4}, {INTCONST, 5}, {-1, 6}}},
			{"??<", x{{'?', 1}, {'?', 2}, {'<', 3}, {-1, 4}}},
			{"??=??=", x{{'?', 1}, {'?', 2}, {'=', 3}, {'?', 4}, {'?', 5}, {'=', 6}, {-1, 7}}},
			{"??>", x{{'?', 1}, {'?', 2}, {'>', 3}, {-1, 4}}},
			{"???!", x{{'?', 1}, {'?', 2}, {'?', 3}, {'!', 4}, {-1, 5}}},
			{"???!0", x{{'?', 1}, {'?', 2}, {'?', 3}, {'!', 4}, {INTCONST, 5}, {-1, 6}}},
			{"???/\n2", x{{'?', 1}, {'?', 2}, {'?', 3}, {'/', 4}, {'\n', 5}, {INTCONST, 6}, {-1, 7}}},
			{"????!0", x{{'?', 1}, {'?', 2}, {'?', 3}, {'?', 4}, {'!', 5}, {INTCONST, 6}, {-1, 7}}},
			{"???x0", x{{'?', 1}, {'?', 2}, {'?', 3}, {IDENTIFIER, 4}, {-1, 6}}},
			{"???x??!0", x{{'?', 1}, {'?', 2}, {'?', 3}, {IDENTIFIER, 4}, {'?', 5}, {'?', 6}, {'!', 7}, {INTCONST, 8}, {-1, 9}}},
			{"??x0", x{{'?', 1}, {'?', 2}, {IDENTIFIER, 3}, {-1, 5}}},
			{"??x??!0", x{{'?', 1}, {'?', 2}, {IDENTIFIER, 3}, {'?', 4}, {'?', 5}, {'!', 6}, {INTCONST, 7}, {-1, 8}}},
			{"?x0", x{{'?', 1}, {IDENTIFIER, 2}, {-1, 4}}},
			{"?x??!0", x{{'?', 1}, {IDENTIFIER, 2}, {'?', 3}, {'?', 4}, {'!', 5}, {INTCONST, 6}, {-1, 7}}},
			{"@", x{{'@', 1}, {-1, 2}}},
			{"@%", x{{'@', 1}, {'%', 2}, {-1, 3}}},
			{"@%0", x{{'@', 1}, {'%', 2}, {INTCONST, 3}, {-1, 4}}},
			{"@%:", x{{'@', 1}, {'#', 2}, {-1, 4}}},
			{"@%:0", x{{'@', 1}, {'#', 2}, {INTCONST, 4}, {-1, 5}}},
			{"@%:01", x{{'@', 1}, {'#', 2}, {INTCONST, 4}, {-1, 6}}},
			{"@??=", x{{'@', 1}, {'?', 2}, {'?', 3}, {'=', 4}, {-1, 5}}},
			{"\"(a\\\nz", x{{'"', 1}, {'(', 2}, {IDENTIFIER, 3}, {-1, 7}}},
			{"\\1\n", x{{'\\', 1}, {INTCONST, 2}, {'\n', 3}, {-1, 4}}},
			{"\\1\n2", x{{'\\', 1}, {INTCONST, 2}, {'\n', 3}, {INTCONST, 4}, {-1, 5}}},
			{"\\\n", x{{-1, 3}}},
			{"\\\n2", x{{INTCONST, 3}, {-1, 4}}},
			{"\\\r\n", x{{-1, 4}}},
			{"\\\r\n2", x{{INTCONST, 4}, {-1, 5}}},
			{"\r", x{{-1, 2}}},
			{"\r0", x{{INTCONST, 2}, {-1, 3}}},
			{"\r01", x{{INTCONST, 2}, {-1, 4}}},
			{"\x00", x{{0, 1}, {-1, 2}}},
			{"\x000", x{{0, 1}, {INTCONST, 2}, {-1, 3}}},
		},
	)
}

func TestLexer2(t *testing.T) {
	testLexer(
		t,
		func(i int, src string, report *xc.Report) (*lexer, error) {
			tweaks := *testTweaks
			tweaks.enableTrigraphs = true
			return newLexer(fmt.Sprintf("TestLexer.%d", i), len(src), strings.NewReader(src), report, &tweaks)
		},
		lexerTests{
			{"", x{{-1, 1}}},
			{"%0", x{{'%', 1}, {INTCONST, 2}, {-1, 3}}},
			{"%:%:", x{{PPPASTE, 1}, {-1, 5}}},
			{"%>", x{{'}', 1}, {-1, 3}}},
			{"0", x{{INTCONST, 1}, {-1, 2}}},
			{"01", x{{INTCONST, 1}, {-1, 3}}},
			{"0??/1\n", x{{INTCONST, 1}, {'\\', 2}, {INTCONST, 5}, {'\n', 6}, {-1, 7}}},
			{"0??/1\n2", x{{INTCONST, 1}, {'\\', 2}, {INTCONST, 5}, {'\n', 6}, {INTCONST, 7}, {-1, 8}}},
			{"0??/\n", x{{INTCONST, 1}, {-1, 6}}},
			{"0??/\n2", x{{INTCONST, 1}, {-1, 7}}},
			{"0\\1\n", x{{INTCONST, 1}, {'\\', 2}, {INTCONST, 3}, {'\n', 4}, {-1, 5}}},
			{"0\\1\n2", x{{INTCONST, 1}, {'\\', 2}, {INTCONST, 3}, {'\n', 4}, {INTCONST, 5}, {-1, 6}}},
			{"0\\\n", x{{INTCONST, 1}, {-1, 4}}},
			{"0\\\n2", x{{INTCONST, 1}, {-1, 5}}},
			{"0\x00", x{{INTCONST, 1}, {0, 2}, {-1, 3}}},
			{"0\x001", x{{INTCONST, 1}, {0, 2}, {INTCONST, 3}, {-1, 4}}},
			{":>", x{{']', 1}, {-1, 3}}},
			{"<%", x{{'{', 1}, {-1, 3}}},
			{"<:", x{{'[', 1}, {-1, 3}}},
			{"??!", x{{'|', 1}, {-1, 4}}},
			{"??!0", x{{'|', 1}, {INTCONST, 4}, {-1, 5}}},
			{"??!01", x{{'|', 1}, {INTCONST, 4}, {-1, 6}}},
			{"??!=", x{{ORASSIGN, 1}, {-1, 5}}},
			{"??'", x{{'^', 1}, {-1, 4}}},
			{"??(", x{{'[', 1}, {-1, 4}}},
			{"??)", x{{']', 1}, {-1, 4}}},
			{"??-", x{{'~', 1}, {-1, 4}}},
			{"??/", x{{'\\', 1}, {-1, 4}}},
			{"??/1\n", x{{'\\', 1}, {INTCONST, 4}, {'\n', 5}, {-1, 6}}},
			{"??/1\n2", x{{'\\', 1}, {INTCONST, 4}, {'\n', 5}, {INTCONST, 6}, {-1, 7}}},
			{"??/\n", x{{-1, 5}}},
			{"??/\n2", x{{INTCONST, 5}, {-1, 6}}},
			{"??<", x{{'{', 1}, {-1, 4}}},
			{"??=??=", x{{PPPASTE, 1}, {-1, 7}}},
			{"??>", x{{'}', 1}, {-1, 4}}},
			{"???!", x{{'?', 1}, {'|', 2}, {-1, 5}}},
			{"???!0", x{{'?', 1}, {'|', 2}, {INTCONST, 5}, {-1, 6}}},
			{"???/\n2", x{{'?', 1}, {INTCONST, 6}, {-1, 7}}},
			{"????!0", x{{'?', 1}, {'?', 2}, {'|', 3}, {INTCONST, 6}, {-1, 7}}},
			{"???x0", x{{'?', 1}, {'?', 2}, {'?', 3}, {IDENTIFIER, 4}, {-1, 6}}},
			{"???x??!0", x{{'?', 1}, {'?', 2}, {'?', 3}, {IDENTIFIER, 4}, {'|', 5}, {INTCONST, 8}, {-1, 9}}},
			{"??x0", x{{'?', 1}, {'?', 2}, {IDENTIFIER, 3}, {-1, 5}}},
			{"??x??!0", x{{'?', 1}, {'?', 2}, {IDENTIFIER, 3}, {'|', 4}, {INTCONST, 7}, {-1, 8}}},
			{"?x0", x{{'?', 1}, {IDENTIFIER, 2}, {-1, 4}}},
			{"?x??!0", x{{'?', 1}, {IDENTIFIER, 2}, {'|', 3}, {INTCONST, 6}, {-1, 7}}},
			{"@", x{{'@', 1}, {-1, 2}}},
			{"@%", x{{'@', 1}, {'%', 2}, {-1, 3}}},
			{"@%0", x{{'@', 1}, {'%', 2}, {INTCONST, 3}, {-1, 4}}},
			{"@%:", x{{'@', 1}, {'#', 2}, {-1, 4}}},
			{"@%:0", x{{'@', 1}, {'#', 2}, {INTCONST, 4}, {-1, 5}}},
			{"@%:01", x{{'@', 1}, {'#', 2}, {INTCONST, 4}, {-1, 6}}},
			{"@??=", x{{'@', 1}, {'#', 2}, {-1, 5}}},
			{"\"(a\\\nz", x{{'"', 1}, {'(', 2}, {IDENTIFIER, 3}, {-1, 7}}},
			{"\\1\n", x{{'\\', 1}, {INTCONST, 2}, {'\n', 3}, {-1, 4}}},
			{"\\1\n2", x{{'\\', 1}, {INTCONST, 2}, {'\n', 3}, {INTCONST, 4}, {-1, 5}}},
			{"\\\n", x{{-1, 3}}},
			{"\\\n2", x{{INTCONST, 3}, {-1, 4}}},
			{"\\\r\n", x{{-1, 4}}},
			{"\\\r\n2", x{{INTCONST, 4}, {-1, 5}}},
			{"\r", x{{-1, 2}}},
			{"\r0", x{{INTCONST, 2}, {-1, 3}}},
			{"\r01", x{{INTCONST, 2}, {-1, 4}}},
			{"\x00", x{{0, 1}, {-1, 2}}},
			{"\x000", x{{0, 1}, {INTCONST, 2}, {-1, 3}}},
		},
	)
}

func testPreprocessor(t *testing.T, fname string) string {
	var buf bytes.Buffer
	_, err := Parse(
		"",
		[]string{fname},
		newTestModel(),
		preprocessOnly(),
		Cpp(func(toks []xc.Token) {
			//dbg("____ cpp toks\n%s", PrettyString(toks))
			for _, v := range toks {
				buf.WriteString(TokSrc(v))
			}
			buf.WriteByte('\n')
		}),
		EnableDefineOmitCommaBeforeDDD(),
	)
	if err != nil {
		t.Fatal(errString(err))
	}
	return strings.TrimSpace(buf.String())
}

func TestStdExample6_10_3_3_4(t *testing.T) {
	if g, e := testPreprocessor(t, "testdata/example-6.10.3.3-4.h"), `char p[] = "x ## y";`; g != e {
		t.Fatalf("\ngot\n%s\nexp\n%s", g, e)
	}
}

func TestStdExample6_10_3_5_3(t *testing.T) {
	if g, e := testPreprocessor(t, "testdata/example-6.10.3.5-3.h"),
		`f(2 * (y+1)) + f(2 * (f(2 * (z[0])))) % f(2 * (0)) + t(1);
f(2 * (2+(3,4)-0,1)) | f(2 * (~ 5)) &
f(2 * (0,1))^m(0,1);
int i[] = { 1, 23, 4, 5,  };
char c[2][6] = { "hello", "" };`; g != e {
		t.Fatalf("\ngot\n%s\nexp\n%s", g, e)
	}
}

func TestStdExample6_10_3_5_4(t *testing.T) {
	if g, e := testPreprocessor(t, "testdata/example-6.10.3.5-4.h"),
		`printf("x1= %d, x2= %s", x1, x2);
fputs(
"strncmp(\"abc\\0d\", \"abc\", '\\4') == 0: @\n", s);
vers2.h included from testdata/example-6.10.3.5-4.h
"hello";
"hello, world"`; g != e {
		t.Fatalf("\ngot\n%s\nexp\n%s", g, e)
	}
}

func TestStdExample6_10_3_5_5(t *testing.T) {
	if g, e := testPreprocessor(t, "testdata/example-6.10.3.5-5.h"),
		`int j[] = { 123, 45, 67, 89,
10, 11, 12,  };`; g != e {
		t.Fatalf("\ngot\n%s\nexp\n%s", g, e)
	}
}

func TestStdExample6_10_3_5_6(t *testing.T) {
	if g, e := testPreprocessor(t, "testdata/example-6.10.3.5-6.h"),
		`ok`; g != e {
		t.Fatalf("\ngot\n%s\nexp\n%s", g, e)
	}
}

func TestStdExample6_10_3_5_7(t *testing.T) {
	if g, e := testPreprocessor(t, "testdata/example-6.10.3.5-7.h"),
		`fprintf(stderr, "Flag");
fprintf(stderr, "X = %d\n", x);
puts("The first, second, and third items.");
((x>y)?puts("x>y"): printf("x is %d but y is %d", x, y));`; g != e {
		t.Fatalf("\ngot\n%s\nexp\n%s", g, e)
	}
}

type cppCmpError struct {
	error
}

func testDev1(ppPredefine, cppPredefine, parsePredefine string, cppOpts []string, wd, src string, ppOpts, parseOpts []Opt) error {
	fp := filepath.Join(wd, src)
	if re := *oRe; re != "" {
		ok, err := regexp.MatchString(re, fp)
		if err != nil {
			return err
		}

		if !ok {
			return nil
		}
	}

	logf, err := os.Create("log-" + filepath.Base(src))
	if err != nil {
		return err
	}

	defer logf.Close()

	logw := bufio.NewWriter(logf)

	defer logw.Flush()

	if *oTrace {
		fmt.Println(fp)
		fmt.Println(logf.Name())
	}

	var got, exp []xc.Token
	var lpos token.Position

	var tw tweaks
	_, err = Parse(
		ppPredefine,
		[]string{src},
		newTestModel(),
		append(
			ppOpts,
			getTweaks(&tw),
			preprocessOnly(),
			Cpp(func(toks []xc.Token) {
				if len(toks) != 0 {
					p := toks[0].Position()
					if p.Filename != lpos.Filename {
						fmt.Fprintf(logw, "# %d %q\n", p.Line, p.Filename)
					}
					lpos = p
				}
				for _, v := range toks {
					logw.WriteString(TokSrc(toC(v, &tw)))
					if v.Rune != ' ' {
						got = append(got, v)
					}
				}
				logw.WriteByte('\n')
			}),
			disableWarnings(),
			disablePredefinedLineMacro(),
		)...,
	)
	if err != nil {
		return err
	}

	out, err := exec.Command("cpp", append(cppOpts, src)...).CombinedOutput()
	if err != nil {
		return fmt.Errorf("%v: %v", src, err)
	}

	f, err := ioutil.TempFile("", "cc-test-")
	if err != nil {
		return err
	}

	if *oTrace {
		fmt.Println(f.Name())
	}
	defer func() {
		if !*oTmp {
			os.Remove(f.Name())
		}
		f.Close()
	}()

	if _, err := f.Write(out); err != nil {
		return err
	}

	if _, err := Parse(
		cppPredefine,
		[]string{f.Name()},
		newTestModel(),
		preprocessOnly(),
		Cpp(func(toks []xc.Token) {
			for _, tok := range toks {
				if tok.Rune != ' ' {
					exp = append(exp, tok)
				}
			}
		}),
		disableWarnings(),
	); err != nil {
		return err
	}

	for i, g := range got {
		if i >= len(exp) {
			break
		}

		g = toC(g, &tw)
		e := toC(exp[i], &tw)
		if g.Rune != e.Rune || g.Val != e.Val {

			if g.Rune == STRINGLITERAL && e.Rune == STRINGLITERAL && bytes.Contains(g.S(), []byte(fakeTime)) {
				continue
			}

			if g.Rune == IDENTIFIER && e.Rune == INTCONST && g.Val == idLine {
				n, err := strconv.ParseUint(string(e.S()), 10, mathutil.IntBits-1)
				if err != nil {
					return err
				}

				d := g.Position().Line - int(n)
				if d < 0 {
					d = -d
				}
				if d <= 3 {
					continue
				}
			}

			return cppCmpError{fmt.Errorf("%d\ngot %s\nexp %s", i, PrettyString(g), PrettyString(e))}
		}
	}

	if g, e := len(got), len(exp); g != e {
		return cppCmpError{fmt.Errorf("%v: got %d tokens, expected %d tokens (∆ %d)", src, g, e, g-e)}
	}

	logf2, err := os.Create("log2-" + filepath.Base(src))
	if err != nil {
		return err
	}

	defer logf2.Close()

	logw2 := bufio.NewWriter(logf2)

	defer logw2.Flush()

	if *oTrace {
		fmt.Println(logf2.Name())
	}

	_, err = Parse(
		parsePredefine,
		[]string{src},
		newTestModel(),
		append(
			parseOpts,
			disableWarnings(),
			Cpp(func(toks []xc.Token) {
				if len(toks) != 0 {
					p := toks[0].Position()
					if p.Filename != lpos.Filename {
						fmt.Fprintf(logw2, "# %d %q\n", p.Line, p.Filename)
					}
					lpos = p
				}
				for _, v := range toks {
					logw2.WriteString(TokSrc(toC(v, &tw)))
				}
				logw2.WriteByte('\n')
			}),
		)...,
	)
	return err
}

func testDev(t *testing.T, ppPredefine, cppPredefine, parsePredefine string, cppOpts, src []string, wd string, ppOpts, parseOpts []Opt) {
	if !dirExists(t, wd) {
		t.Logf("skipping: %v", wd)
		return
	}

	cwd, err := os.Getwd()
	if err != nil {
		t.Fatal(err)
	}

	if err := os.Chdir(wd); err != nil {
		t.Fatal(err)
	}

	defer os.Chdir(cwd)

	for _, src := range src {
		fi, err := os.Stat(src)
		if err != nil {
			t.Error(err)
			continue
		}

		if !fi.Mode().IsRegular() {
			t.Errorf("not a regular file: %s", filepath.Join(wd, src))
			continue
		}

		if err := testDev1(ppPredefine, cppPredefine, parsePredefine, cppOpts, wd, src, ppOpts, parseOpts); err != nil {
			t.Error(errString(err))
		}
	}
}

func dirExists(t *testing.T, dir string) bool {
	dir = filepath.FromSlash(dir)
	fi, err := os.Stat(dir)
	if err != nil {
		if os.IsNotExist(err) {
			return false
		}

		t.Fatal(err)
	}

	if !fi.IsDir() {
		t.Fatal(dir, "is not a directory")
	}

	return true
}

func TestPreprocessor(t *testing.T) {
	if err := testDev1("", "", "", nil, "", "testdata/arith-1.h", nil, nil); err != nil {
		t.Fatal(err)
	}
}

func TestDevSDL(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		EnableIncludeNext(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	testDev(
		t,
		predefined,
		predefined,
		predefined+`
#define __inline inline
`,
		nil,
		[]string{
			"SDL.h",
		},
		"testdata/dev/SDL-1.2.15/include/",
		ppOpts,
		parseOpts,
	)
}

func TestDevSqlite(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		EnableIncludeNext(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	testDev(
		t,
		predefined,
		predefined,
		predefined+`
#define __const const
#define __inline inline
#define __restrict restrict
`,
		nil,
		[]string{
			"shell.c",
			"sqlite3.c",
			"sqlite3.h",
			"sqlite3ext.h",
		},
		"testdata/dev/sqlite3",
		ppOpts,
		parseOpts,
	)
}

func TestDevVim(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths([]string{
			".",
			"proto",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		EnableIncludeNext(),
		EnableDefineOmitCommaBeforeDDD(),
		devTest(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths([]string{
			".",
			"proto",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	p := predefined + `
#define _FORTIFY_SOURCE 1
#define HAVE_CONFIG_H
`
	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict restrict
#define __typeof typeof
`,
		[]string{
			"-I.",
			"-Iproto",
			"-DHAVE_CONFIG_H",
			"-U_FORTIFY_SOURCE",
			"-D_FORTIFY_SOURCE=1",
		},
		[]string{
			"auto/pathdef.c",
			"blowfish.c",
			"buffer.c",
			"channel.c",
			"charset.c",
			"crypt.c",
			"crypt_zip.c",
			"diff.c",
			"digraph.c",
			"edit.c",
			"eval.c",
			"ex_cmds.c",
			"ex_cmds2.c",
			"ex_docmd.c",
			"ex_eval.c",
			"ex_getln.c",
			"fileio.c",
			"fold.c",
			"getchar.c",
			"hardcopy.c",
			"hashtab.c",
			"if_cscope.c",
			"if_xcmdsrv.c",
			"json.c",
			"main.c",
			"mark.c",
			"mbyte.c",
			"memfile.c",
			"memline.c",
			"menu.c",
			"message.c",
			"misc1.c",
			"misc2.c",
			"move.c",
			"netbeans.c",
			"normal.c",
			"ops.c",
			"option.c",
			"os_unix.c",
			"popupmnu.c",
			"quickfix.c",
			"regexp.c",
			"screen.c",
			"search.c",
			"sha256.c",
			"spell.c",
			"syntax.c",
			"tag.c",
			"term.c",
			"ui.c",
			"undo.c",
			"version.c",
			"window.c",
		},
		"testdata/dev/vim/vim/src",
		ppOpts,
		parseOpts,
	)
}

func TestDevBash(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths([]string{
			".",
			"include",
			"lib",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		EnableIncludeNext(),
		devTest(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths([]string{
			".",
			"include",
			"lib",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	p := predefined + `
#define PROGRAM "bash"
#define CONF_HOSTTYPE "x86_64"
#define CONF_OSTYPE "linux-gnu"
#define CONF_MACHTYPE "x86_64-unknown-linux-gnu"
#defien CONF_VENDOR "unknown"
#define LOCALEDIR "/usr/local/share/locale"
#define PACKAGE "bash"
#define SHELL
#define HAVE_CONFIG_H
`
	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
#define __typeof typeof
		`,
		[]string{
			`-DPROGRAM="bash"`,
			`-DCONF_HOSTTYPE="x86_64"`,
			`-DCONF_OSTYPE="linux-gnu"`,
			`-DCONF_MACHTYPE="x86_64-unknown-linux-gnu"`,
			`-DCONF_VENDOR="unknown"`,
			`-DLOCALEDIR="/usr/local/share/locale"`,
			`-DPACKAGE="bash"`,
			"-DSHELL",
			"-DHAVE_CONFIG_H",
			"-I.",
			"-Iinclude",
			"-Ilib",
		},
		[]string{
			"alias.c",
			"array.c",
			"arrayfunc.c",
			"assoc.c",
			"bashhist.c",
			"bashline.c",
			"bracecomp.c",
			"braces.c",
			"copy_cmd.c",
			"dispose_cmd.c",
			"error.c",
			"eval.c",
			"expr.c",
			"findcmd.c",
			"flags.c",
			"general.c",
			"hashcmd.c",
			"hashlib.c",
			"input.c",
			"jobs.c",
			"list.c",
			"locale.c",
			"mailcheck.c",
			"make_cmd.c",
			"mksyntax.c",
			"pathexp.c",
			"pcomplete.c",
			"pcomplib.c",
			"print_cmd.c",
			"redir.c",
			"shell.c",
			"sig.c",
			"stringlib.c",
			"subst.c",
			"support/bashversion.c",
			"support/mksignames.c",
			"support/signames.c",
			"syntax.c",
			"test.c",
			"trap.c",
			"unwind_prot.c",
			"variables.c",
			"version.c",
			"version.c",
			"xmalloc.c",
			"y.tab.c",
			//"execute_cmd.c", // Composite type K&R fn def style vs prototype decl lefts an undefined param.
		},
		"testdata/dev/bash-4.3/",
		ppOpts,
		parseOpts,
	)

	ppOpts = []Opt{
		IncludePaths([]string{
			".",
			"..",
			"../include",
			"../lib",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		EnableIncludeNext(),
		devTest(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts = []Opt{
		IncludePaths([]string{
			".",
			"..",
			"../include",
			"../lib",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	p = predefined + `
#define HAVE_CONFIG_H
#define SHELL
`
	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __restrict __restrict__
#define __inline inline
`,
		[]string{
			"-DSHELL",
			"-DHAVE_CONFIG_H",
			"-I.",
			"-I..",
			"-I../include",
			"-I../lib",
		},
		[]string{
			"builtins.c",
			"common.c",
			"evalfile.c",
			"evalstring.c",
			"mkbuiltins.c",
			"psize.c",
		},
		"testdata/dev/bash-4.3/builtins",
		ppOpts,
		parseOpts,
	)

	ppOpts = []Opt{
		IncludePaths([]string{
			".",
			"../..",
			"../../include",
			"../../lib",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		EnableIncludeNext(),
		devTest(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts = []Opt{
		IncludePaths([]string{
			".",
			"../..",
			"../../include",
			"../../lib",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	p = predefined + `
#define HAVE_CONFIG_H
#define SHELL
`
	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
`,
		[]string{
			"-DSHELL",
			"-DHAVE_CONFIG_H",
			"-I.",
			"-I../..",
			"-I../../include",
			"-I../../lib",
		},
		[]string{
			"glob.c",
			"gmisc.c",
			"smatch.c",
			"strmatch.c",
			"xmbsrtowcs.c",
		},
		"testdata/dev/bash-4.3/lib/glob",
		ppOpts,
		parseOpts,
	)

	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
`,
		[]string{
			"-DSHELL",
			"-DHAVE_CONFIG_H",
			"-I.",
			"-I../..",
			"-I../../include",
			"-I../../lib",
		},
		[]string{
			"casemod.c",
			"clktck.c",
			"clock.c",
			"eaccess.c",
			"fmtullong.c",
			"fmtulong.c",
			"fmtumax.c",
			"fnxform.c",
			"fpurge.c",
			"getenv.c",
			"input_avail.c",
			"itos.c",
			"mailstat.c",
			"makepath.c",
			"mbscasecmp.c",
			"mbschr.c",
			"mbscmp.c",
			"netconn.c",
			"netopen.c",
			"oslib.c",
			"pathcanon.c",
			"pathphys.c",
			"setlinebuf.c",
			"shmatch.c",
			"shmbchar.c",
			"shquote.c",
			"shtty.c",
			"snprintf.c",
			"spell.c",
			"stringlist.c",
			"stringvec.c",
			"strnlen.c",
			"strtrans.c",
			"timeval.c",
			"tmpfile.c",
			"uconvert.c",
			"ufuncs.c",
			"unicode.c",
			"wcsdup.c",
			"wcsnwidth.c",
			"winsize.c",
			"zcatfd.c",
			"zgetline.c",
			"zmapfd.c",
			"zread.c",
			"zwrite.c",
		},
		"testdata/dev/bash-4.3/lib/sh",
		ppOpts,
		parseOpts,
	)

	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
`,
		[]string{
			"-DSHELL",
			"-DHAVE_CONFIG_H",
			"-I.",
			"-I../..",
			"-I../../include",
			"-I../../lib",
		},
		[]string{
			"bind.c",
			"callback.c",
			"colors.c",
			"compat.c",
			"complete.c",
			"display.c",
			"funmap.c",
			"histexpand.c",
			"histfile.c",
			"history.c",
			"histsearch.c",
			"input.c",
			"isearch.c",
			"keymaps.c",
			"kill.c",
			"macro.c",
			"mbutil.c",
			"misc.c",
			"nls.c",
			"parens.c",
			"parse-colors.c",
			"readline.c",
			"rltty.c",
			"savestring.c",
			"search.c",
			"shell.c",
			"signals.c",
			"terminal.c",
			"text.c",
			"tilde.c",
			"undo.c",
			"util.c",
			"vi_mode.c",
			"xfree.c",
			"xmalloc.c",
		},
		"testdata/dev/bash-4.3/lib/readline",
		ppOpts,
		parseOpts,
	)

	p = predefined + `
#define HAVE_CONFIG_H
#define SHELL
#define RCHECK
#define botch programming_error
`
	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
`,
		[]string{
			"-DSHELL",
			"-DHAVE_CONFIG_H",
			"-DRCHECK",
			"-Dbotch=programming_error",
			"-I.",
			"-I../..",
			"-I../../include",
			"-I../../lib",
		},
		[]string{
			"malloc.c",
			"trace.c",
			"stats.c",
			"table.c",
			"watch.c",
		},
		"testdata/dev/bash-4.3/lib/malloc",
		ppOpts,
		parseOpts,
	)
}

func TestDevMake(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths([]string{
			".",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		EnableIncludeNext(),
		devTest(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths([]string{
			".",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	p := predefined + `
#define LOCALEDIR "/usr/local/share/locale"
#define LIBDIR "/usr/local/lib"
#define INCLUDEDIR "/usr/local/include"
#define HAVE_CONFIG_H
`
	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
#define __typeof typeof
`,
		[]string{
			"-DLOCALEDIR=\"/usr/local/share/locale\"",
			"-DLIBDIR=\"/usr/local/lib\"",
			"-DINCLUDEDIR=\"/usr/local/include\"",
			"-DHAVE_CONFIG_H",
			"-I.",
		},
		[]string{
			"ar.c",
			"arscan.c",
			"commands.c",
			"default.c",
			"dir.c",
			"expand.c",
			"file.c",
			"function.c",
			"getopt.c",
			"getopt1.c",
			"guile.c",
			"hash.c",
			"implicit.c",
			"job.c",
			"load.c",
			"loadapi.c",
			"main.c",
			"misc.c",
			"output.c",
			"read.c",
			"remake.c",
			"remote-stub.c",
			"rule.c",
			"signame.c",
			"strcache.c",
			"variable.c",
			"version.c",
			"vpath.c",
		},
		"testdata/dev/make-4.1/",
		ppOpts,
		parseOpts,
	)
}

func TestDevBc(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths([]string{
			".",
			"..",
			"./../h",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		EnableIncludeNext(),
		devTest(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths([]string{
			".",
			"..",
			"./../h",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	p := predefined + `
#define HAVE_CONFIG_H
`
	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
`,
		[]string{
			"-DHAVE_CONFIG_H",
			"-I.",
			"-I..",
			"-I./../h",
		},
		[]string{
			"getopt.c",
			"getopt1.c",
			"number.c",
			"vfprintf.c",
		},
		"testdata/dev/bc-1.06/lib/",
		ppOpts,
		parseOpts,
	)

	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
`,
		[]string{
			"-DHAVE_CONFIG_H",
			"-I.",
			"-I..",
			"-I./../h",
		},
		[]string{
			"main.c",
			"bc.c",
			"scan.c",
			"execute.c",
			"load.c",
			"storage.c",
			"util.c",
			"global.c",
		},
		"testdata/dev/bc-1.06/bc",
		ppOpts,
		parseOpts,
	)

	testDev(
		t,
		p,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
`,
		[]string{
			"-DHAVE_CONFIG_H",
			"-I.",
			"-I..",
			"-I./../h",
		},
		[]string{
			"dc.c",
			"misc.c",
			"eval.c",
			"stack.c",
			"array.c",
			"numeric.c",
			"string.c",
		},
		"testdata/dev/bc-1.06/dc",
		ppOpts,
		parseOpts,
	)
}

func TestDevEmacs(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths([]string{
			".",
			"../lib",
			"../src",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		EnableIncludeNext(),
		devTest(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths([]string{
			".",
			"../lib",
			"../src",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	p := predefined + `
#define HAVE_CONFIG_H
#define _GCC_MAX_ALIGN_T
`
	testDev(
		t,
		p+`
#define _Noreturn __attribute__ ((__noreturn__))
`,
		p,
		p+`
#define __const const
#define __getopt_argv_const const
#define __inline inline
#define __restrict __restrict__
`,
		[]string{
			"-std=gnu99",
			"-DHAVE_CONFIG_H",
			"-I.",
			"-I../lib",
			"-I../src",
		},
		[]string{
			"acl-errno-valid.c",
			"allocator.c",
			"binary-io.c",
			"c-ctype.c",
			"c-strcasecmp.c",
			"c-strncasecmp.c",
			"careadlinkat.c",
			"close-stream.c",
			"count-one-bits.c",
			"count-trailing-zeros.c",
			"dtoastr.c",
			"dtotimespec.c",
			"fcntl.c",
			"file-has-acl.c",
			"filemode.c",
			"getopt.c",
			"getopt1.c",
			"gettime.c",
			"md5.c",
			"openat-die.c",
			"pipe2.c",
			"pthread_sigmask.c",
			"qcopy-acl.c",
			"qset-acl.c",
			"save-cwd.c",
			"sha1.c",
			"sha256.c",
			"sha512.c",
			"sig2str.c",
			"stat-time.c",
			"strftime.c",
			"timespec-add.c",
			"timespec-sub.c",
			"timespec.c",
			"u64.c",
			"unistd.c",
			"utimens.c",
		},
		"testdata/dev/emacs-24.5/lib",
		ppOpts,
		parseOpts,
	)

	p = predefined + `
 #define CTAGS
 #define EMACS_NAME "GNU Emacs"
 #define HAVE_CONFIG_H
 #define HAVE_SHARED_GAME_DIR "/usr/local/var/games/emacs"
 #define VERSION "24.5"
 `
	testDev(
		t,
		p+`
#define _GCC_MAX_ALIGN_T
#define _Noreturn __attribute__ ((__noreturn__))
`,
		p,
		p+`
#define __const const
#define __inline inline
#define __restrict __restrict__
#define __typeof typeof
`,
		[]string{
			"-std=gnu99",
			"-I.",
			"-I../lib",
			"-I../src",
			"-DEMACS_NAME=\"GNU Emacs\"",
			"-DCTAGS",
			"-DHAVE_SHARED_GAME_DIR=\"/usr/local/var/games/emacs\"",
			"-DVERSION=\"24.5\"",
		},
		[]string{
			"./../src/regex.c",
			"./ebrowse.c",
			"./emacsclient.c",
			"./etags.c",
			"./hexl.c",
			"./make-docfile.c",
			"./movemail.c",
			"./pop.c",
			"./profile.c",
			"./test-distrib.c",
			"./update-game-score.c",
		},
		"testdata/dev/emacs-24.5/lib-src/",
		ppOpts,
		parseOpts,
	)

	ppOpts = []Opt{
		IncludePaths([]string{
			".",
			"../lib",
			"/usr/include/gtk-3.0",
			"/usr/include/pango-1.0",
			"/usr/include/gio-unix-2.0/",
			"/usr/include/atk-1.0",
			"/usr/include/cairo",
			"/usr/include/gdk-pixbuf-2.0",
			"/usr/include/freetype2",
			"/usr/include/glib-2.0",
			"/usr/lib/x86_64-linux-gnu/glib-2.0/include",
			"/usr/include/pixman-1",
			"/usr/include/libpng12",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		EnableDefineOmitCommaBeforeDDD(),
		EnableIncludeNext(),
		devTest(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts = []Opt{
		IncludePaths([]string{
			".",
			"../lib",
			"/usr/include/gtk-3.0",
			"/usr/include/pango-1.0",
			"/usr/include/gio-unix-2.0/",
			"/usr/include/atk-1.0",
			"/usr/include/cairo",
			"/usr/include/gdk-pixbuf-2.0",
			"/usr/include/freetype2",
			"/usr/include/glib-2.0",
			"/usr/lib/x86_64-linux-gnu/glib-2.0/include",
			"/usr/include/pixman-1",
			"/usr/include/libpng12",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	p = predefined + `
#define _GCC_MAX_ALIGN_T
#define emacs
`

	testDev(
		t,
		p+`
#define _Noreturn __attribute__ ((__noreturn__))
`,
		p,
		p+`
#define _Alignas(x)
#define __const const
#define __inline inline
#define __restrict __restrict__
#define __typeof typeof
`,
		[]string{
			"-std=gnu99",
			"-Demacs",
			"-I.",
			"-I../lib",
			"-I/usr/include/gtk-3.0",
			"-I/usr/include/pango-1.0",
			"-I/usr/include/gio-unix-2.0/",
			"-I/usr/include/atk-1.0",
			"-I/usr/include/cairo",
			"-I/usr/include/gdk-pixbuf-2.0",
			"-I/usr/include/freetype2",
			"-I/usr/include/glib-2.0",
			"-I/usr/lib/x86_64-linux-gnu/glib-2.0/include",
			"-I/usr/include/pixman-1",
			"-I/usr/include/libpng12",
		},
		[]string{
			"alloc.c",
			"atimer.c",
			"bidi.c",
			"buffer.c",
			"callint.c",
			"callproc.c",
			"casefiddle.c",
			"casetab.c",
			"category.c",
			"ccl.c",
			"character.c",
			"charset.c",
			"chartab.c",
			"cm.c",
			"cmds.c",
			"coding.c",
			"composite.c",
			"data.c",
			"decompress.c",
			"dired.c",
			"dispnew.c",
			"doc.c",
			"doprnt.c",
			"editfns.c",
			"emacs.c",
			"eval.c",
			"fileio.c",
			"filelock.c",
			"floatfns.c",
			"fns.c",
			"font.c",
			"fontset.c",
			"frame.c",
			"fringe.c",
			"ftfont.c",
			"gfilenotify.c",
			"gnutls.c",
			"gtkutil.c",
			"indent.c",
			"insdel.c",
			"intervals.c",
			"keyboard.c",
			"keymap.c",
			"lastfile.c",
			"lread.c",
			"macros.c",
			"marker.c",
			"menu.c",
			"minibuf.c",
			"print.c",
			"process.c",
			"profiler.c",
			"region-cache.c",
			"scroll.c",
			"search.c",
			"sound.c",
			"syntax.c",
			"sysdep.c",
			"term.c",
			"terminal.c",
			"terminfo.c",
			"textprop.c",
			"undo.c",
			"vm-limit.c",
			"window.c",
			"xdisp.c",
			"xfaces.c",
			"xfns.c",
			"xfont.c",
			"xgselect.c",
			"xmenu.c",
			"xml.c",
			"xrdb.c",
			"xselect.c",
			"xsmfns.c",
			"xterm.c",
			/// "bytecode.c",      // [lo ... hi] = expr
			/// "emacsgtkfixed.c", // /usr/include/gtk-3.0/gtk/gtkversion.h:98:9: cannot redefine macro: argument names differ
			/// "ftxfont.c",       // ftxfont.c:145:7: undefined: ftfont_driver
			/// "unexelf.c",       // /usr/include/x86_64-linux-gnu/bits/link.h:97:3: unexpected identifier __int128_t, expected one of ['}', _Bool, _Complex, _Static_assert, char, const, double, enum, float, int, long, restrict, short, signed, struct, typedefname, typeof, union, unsigned, void, volatile]
			/// "xftfont.c",       // lisp.h:2041:13: unexpected typedefname, expected optional type qualifier list or pointer or one of ['(', ')', '*', ',', '[', const, identifier, restrict, volatile]
			/// "xsettings.c",     // xsettings.c:431:36: unexpected '{', expected expression list or type name or one of ['!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, _Bool, _Complex, char, character constant, const, double, enum, float, floating-point constant, identifier, int, integer constant, long, long character constant, long string constant, restrict, short, signed, sizeof, string literal, struct, typedefname, typeof, union, unsigned, void, volatile]
			///"image.c",         // /usr/include/gif_lib.h:269:44: unexpected typedefname, expected optional type qualifier list or pointer or one of ['(', ')', '*', ',', '[', const, identifier, restrict, volatile]
		},
		"testdata/dev/emacs-24.5/src/",
		ppOpts,
		parseOpts,
	)
}
func TestDevM4(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths([]string{
			".",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		EnableIncludeNext(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths([]string{
			".",
		}),
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	p := predefined

	testDev(
		t,
		p,
		p,
		p+`
#define __const
#define __inline inline
#define __restrict __restrict__
#define __typeof typeof
`,
		[]string{
			"-I.",
		},
		[]string{
			"asnprintf.c",
			"asprintf.c",
			"basename-lgpl.c",
			"basename.c",
			"binary-io.c",
			"c-ctype.c",
			"c-strcasecmp.c",
			"c-strncasecmp.c",
			"clean-temp.c",
			"cloexec.c",
			"close-stream.c",
			"closein.c",
			"closeout.c",
			"dirname-lgpl.c",
			"dirname.c",
			"dup-safer-flag.c",
			"dup-safer.c",
			"exitfail.c",
			"fatal-signal.c",
			"fclose.c",
			"fcntl.c",
			"fd-hook.c",
			"fd-safer-flag.c",
			"fd-safer.c",
			"fflush.c",
			"filenamecat-lgpl.c",
			"filenamecat.c",
			"fopen-safer.c",
			"fpurge.c",
			"freadahead.c",
			"freading.c",
			"fseek.c",
			"fseeko.c",
			"gl_avltree_oset.c",
			"gl_linkedhash_list.c",
			"gl_list.c",
			"gl_oset.c",
			"gl_xlist.c",
			"gl_xoset.c",
			"glthread/lock.c",
			"glthread/threadlib.c",
			"glthread/tls.c",
			"localcharset.c",
			"malloca.c",
			"math.c",
			"memchr2.c",
			"mkstemp-safer.c",
			"pipe-safer.c",
			"pipe2-safer.c",
			"pipe2.c",
			"printf-args.c",
			"printf-frexp.c",
			"printf-parse.c",
			"progname.c",
			"quotearg.c",
			"sig-handler.c",
			"stripslash.c",
			"tempname.c",
			"tmpdir.c",
			"unistd.c",
			"vasprintf.c",
			"verror.c",
			"version-etc-fsf.c",
			"version-etc.c",
			"wait-process.c",
			"wctype-h.c",
			"xalloc-die.c",
			"xasprintf.c",
			"xmalloc.c",
			"xmalloca.c",
			"xprintf.c",
			"xsize.c",
			"xstrndup.c",
			"xvasprintf.c",
			/// "c-stack.c", c-stack.c:119:3: unexpected '{', expected expression list or type name or one of ['!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, _Bool, _Complex, char, character constant, const, double, enum, float, floating-point constant, identifier, int, integer constant, long, long character constant, long string constant, restrict, short, signed, sizeof, string literal, struct, typedefname, typeof, union, unsigned, void, volatile]
			/// "execute.c", spawn.h:457:9: cannot redefine macro using a replacement list of different length
			/// "isnanl.c", float+.h:145:32: array size must be positive: -1
			/// "printf-frexpl.c", printf-frexp.c:72:3: unexpected '{', expected expression list or type name or one of ['!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, _Bool, _Complex, char, character constant, const, double, enum, float, floating-point constant, identifier, int, integer constant, long, long character constant, long string constant, restrict, short, signed, sizeof, string literal, struct, typedefname, typeof, union, unsigned, void, volatile]
			/// "spawn-pipe.c", spawn.h:457:9: cannot redefine macro using a replacement list of different length
			/// "vasnprintf.c", vasnprintf.c:3624:25: unexpected '{', expected expression list or type name or one of ['!', '&', '(', '*', '+', '-', '~', ++, --, _Alignof, _Bool, _Complex, char, character constant, const, double, enum, float, floating-point constant, identifier, int, integer constant, long, long character constant, long string constant, restrict, short, signed, sizeof, string literal, struct, typedefname, typeof, union, unsigned, void, volatile]
		},
		"testdata/dev/m4-1.4.17/lib/",
		ppOpts,
		parseOpts,
	)
}

func TestDevStbVorbis(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		EnableIncludeNext(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	testDev(
		t,
		predefined,
		predefined,
		predefined+`
#define __inline inline
#define __const const
#define __restrict restrict
`,
		nil,
		[]string{
			"stb_vorbis.c",
		},
		"testdata/dev/stb",
		ppOpts,
		parseOpts,
	)
}

func TestDevGMP(t *testing.T) {
	predefined, includePaths, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Logf("skipping: %v", err)
		return
	}

	ppOpts := []Opt{
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		EnableIncludeNext(),
	}
	if *oFailFast {
		ppOpts = append(ppOpts, CrashOnError())
	}
	parseOpts := []Opt{
		IncludePaths(includePaths),
		SysIncludePaths(sysIncludePaths),
		devTest(),
		gccEmu(),
	}
	if *oFailFast {
		parseOpts = append(parseOpts, CrashOnError())
	}

	testDev(
		t,
		predefined,
		predefined,
		predefined,
		nil,
		[]string{
			"gmp.h",
		},
		"testdata/dev/gmp-6.1.0/",
		ppOpts,
		parseOpts,
	)
}

func TestPPParse1(t *testing.T) {
	path := *o1
	if path == "" {
		return
	}

	testReport := newTestReport()
	testReport.ClearErrors()
	_, err := ppParse(path, testReport, testTweaks)
	if err != nil {
		t.Fatal(err)
	}

	if err := testReport.Errors(true); err != nil {
		t.Fatal(errString(err))
	}
}

func TestFinalInjection(t *testing.T) {
	const src = "int f() {}"

	if strings.HasSuffix(src, "\n") {
		t.Fatal("internal error")
	}

	ast, err := ppParseString("test.c", src, xc.NewReport(), &tweaks{})
	if err != nil {
		t.Fatal(errString(err))
	}

	t.Log(PrettyString(ast))
}

func TestRedecl(t *testing.T) {
	testParse(t, []string{"testdata/redecl.c"}, "")
}

func TestParse1(t *testing.T) {
	path := *o1
	if path == "" {
		return
	}

	testParse(t, []string{path}, "")
}

func testParse(t *testing.T, paths []string, ignoreError string, opts ...Opt) *TranslationUnit {
	last := paths[len(paths)-1]
	ln := filepath.Base(last)
	f, err := os.Create("log-" + ln)
	if err != nil {
		t.Fatal(err)
	}

	defer f.Close()

	b := bufio.NewWriter(f)
	defer b.Flush()

	b.WriteString("// +build ignore\n\n")
	var a []string
	crash := nopOpt()
	if *oFailFast {
		crash = CrashOnError()
	}
	opts = append(
		opts,
		IncludePaths(includes),
		SysIncludePaths(sysIncludes),
		Cpp(func(toks []xc.Token) {
			a = a[:0]
			for _, v := range toks {
				a = append(a, TokSrc(v))
			}
			fmt.Fprintf(b, "%s\n", strings.Join(a, " "))
		}),
		crash,
		ErrLimit(-1),
	)
	ast, err := Parse(
		predefinedMacros,
		paths,
		newTestModel(),
		opts...,
	)
	if err != nil {
		if s := strings.TrimSpace(errString(err)); s != ignoreError {
			t.Fatal(errString(err))
		}
	}

	t.Log(paths)
	return ast
}

func ddsStr(dds []*DirectDeclarator) string {
	buf := bytes.NewBufferString("|")
	for i, dd := range dds {
		if i == 0 {
			fmt.Fprintf(buf, "(@%p)", &dds[0])
		}
		switch dd.Case {
		case 0: // IDENTIFIER
			fmt.Fprintf(buf, "IDENTIFIER(%s: %s)", dd.Token.Position(), dd.Token.S())
		case 1: // '(' Declarator ')'
			buf.WriteString("(")
			buf.WriteString(strings.Repeat("*", dd.Declarator.stars()))
			fmt.Fprintf(buf, "Declarator.%v)", dds[i-1].Case)
		case 2: // DirectDeclarator '[' TypeQualifierListOpt ExpressionOpt ']'
			fmt.Fprintf(buf, "DirectDeclarator[TypeQualifierListOpt ExpressionOpt.%v]", dd.elements)
		case 3: // DirectDeclarator '[' "static" TypeQualifierListOpt Expression ']'
			fmt.Fprintf(buf, "DirectDeclarator[static TypeQualifierListOpt Expression.%v]", dd.elements)
		case 4: // DirectDeclarator '[' TypeQualifierList "static" Expression ']'
			fmt.Fprintf(buf, "DirectDeclarator[TypeQualifierList static Expression.%v]", dd.elements)
		case 5: // DirectDeclarator '[' TypeQualifierListOpt '*' ']'
			fmt.Fprintf(buf, "DirectDeclarator[TypeQualifierListOpt*.%v]", dd.elements)
		case 6: // DirectDeclarator '(' ParameterTypeList ')'
			buf.WriteString("DirectDeclarator(ParameterTypeList)")
		case 7: // DirectDeclarator '(' IdentifierListOpt ')'
			buf.WriteString("DirectDeclarator(IdentifierListOpt)")
		}
		buf.WriteString("|")
	}
	return buf.String()
}

func (n *ctype) str() string {
	return fmt.Sprintf("R%v S%v %v", n.resultStars, n.stars, ddsStr(n.dds))
}

func (n *ctype) str0() string {
	return fmt.Sprintf("R%v S%v %v", n.resultStars, n.stars, ddsStr(n.dds0))
}

func TestIssue3(t *testing.T) {
	if _, err := Parse("", []string{"testdata/issue3.h"}, newTestModel()); err != nil {
		t.Fatal(errString(err))
	}
}

func TestIssue8(t *testing.T) {
	if _, err := Parse("", []string{"testdata/issue8.h"}, newTestModel()); err != nil {
		t.Fatal(errString(err))
	}
}

func TestIssue4(t *testing.T) {
	_, err := Parse("", []string{"testdata/issue4.c"}, newTestModel())
	if err == nil {
		t.Fatal("unexpected sucess")
	}

	l, ok := err.(scanner.ErrorList)
	if !ok {
		t.Fatalf("unexpected error type %T", err)
	}

	if g, e := l.Len(), 2; g != e {
		t.Fatal(g, e)
	}

	if g, e := l[0].Error(), "testdata/issue4.c:5:13: redeclaration of foo as different kind of symbol, previous declaration at testdata/issue4.c:4:5"; g != e {
		t.Fatal(g, e)
	}

	if g, e := l[1].Error(), "testdata/issue4.c:9:15: redeclaration of foo2 as different kind of symbol, previous declaration at testdata/issue4.c:8:7"; g != e {
		t.Fatal(g, e)
	}
}

func unpackType(typ Type) Type {
	for {
		switch typ.Kind() {
		case Ptr, Array:
			typ = typ.Element()
		default:
			return typ
		}
	}
}

func TestIssue9(t *testing.T) {
	const exp = `original:  typedef short[64] Array
unpacked:  typedef short Short
original: JBLOCK short(*)[64] Ptr
unpacked: JBLOCK short Short
original: JBLOCKROW short(**)[64] Ptr
unpacked: JBLOCKROW short Short
original: JBLOCKARRAY short(***)[64] Ptr
unpacked: JBLOCKARRAY short Short
original:  short[64] Array
unpacked:  short Short
original:  short[64] Array
unpacked:  short Short
original: JBLOCK short[64] Array
unpacked: JBLOCK short Short
original: JBLOCK short[64] Array
unpacked: JBLOCK short Short
original:  short(*)[64] Ptr
unpacked:  short Short
original:  short(*)[64] Ptr
unpacked:  short Short
original:  short(*)[64] Ptr
unpacked:  short Short
original: JBLOCKROW short(*)[64] Ptr
unpacked: JBLOCKROW short Short
original: JBLOCKROW short(*)[64] Ptr
unpacked: JBLOCKROW short Short
original:  short(**)[64] Ptr
unpacked:  short Short
original:  short(**)[64] Ptr
unpacked:  short Short
original:  short(**)[64] Ptr
unpacked:  short Short
original: JBLOCKARRAY short(**)[64] Ptr
unpacked: JBLOCKARRAY short Short
original: JBLOCKARRAY short(**)[64] Ptr
unpacked: JBLOCKARRAY short Short
original:  short(***)[64] Ptr
unpacked:  short Short
original:  short(***)[64] Ptr
unpacked:  short Short
original:  short(***)[64] Ptr
unpacked:  short Short
original: JBLOCKIMAGE short(***)[64] Ptr
unpacked: JBLOCKIMAGE short Short
original: JBLOCKIMAGE short(***)[64] Ptr
unpacked: JBLOCKIMAGE short Short
`

	tu, err := Parse("", []string{"testdata/issue9.c"}, newTestModel())
	if err != nil {
		t.Fatal(errString(err))
	}

	var buf bytes.Buffer
	for tu != nil {
		declr := tu.ExternalDeclaration.Declaration.InitDeclaratorListOpt.InitDeclaratorList.InitDeclarator.Declarator
		name := string(xc.Dict.S(declr.RawSpecifier().TypedefName()))
		fmt.Fprintln(&buf, "original:", name, declr.Type, declr.Type.Kind())
		unpacked := unpackType(declr.Type)
		fmt.Fprintln(&buf, "unpacked:", name, unpacked, unpacked.Kind())
		tu = tu.TranslationUnit
	}
	if g, e := buf.String(), exp; g != e {
		t.Fatalf("got:\n%s\nexp:\n%s", g, e)
	}
}

func TestEnumConstToks(t *testing.T) {
	tu, err := Parse("", []string{"testdata/enum.c"}, newTestModel())
	if err != nil {
		t.Fatal(errString(err))
	}

	sc := tu.Declarations
	foo := sc.Lookup(NSIdentifiers, xc.Dict.SID("foo"))
	if foo.Node == nil {
		t.Fatal("internal error")
	}

	switch x := foo.Node.(type) {
	case *DirectDeclarator:
		typ := x.TopDeclarator().Type
		if g, e := typ.Kind(), Enum; g != e {
			t.Fatal(g, e)
		}

		l := typ.EnumeratorList()
		if g, e := PrettyString(
			l),
			`[]cc.EnumConstant{ // len 2
· 0: cc.EnumConstant{
· · DefTok: testdata/enum.c:4:2: IDENTIFIER "c",
· · Value: 18,
· · Tokens: []xc.Token{ // len 3
· · · 0: testdata/enum.c:4:6: INTCONST "42",
· · · 1: testdata/enum.c:4:9: '-',
· · · 2: testdata/enum.c:4:11: INTCONST "24",
· · },
· },
· 1: cc.EnumConstant{
· · DefTok: testdata/enum.c:5:2: IDENTIFIER "d",
· · Value: 592,
· · Tokens: []xc.Token{ // len 3
· · · 0: testdata/enum.c:5:6: INTCONST "314",
· · · 1: testdata/enum.c:5:10: '+',
· · · 2: testdata/enum.c:5:12: INTCONST "278",
· · },
· },
}`; g != e {
			t.Fatalf("got\n%s\nexp\n%s", g, e)
		}
		var a []string
		for _, e := range l {
			var b []string
			for _, t := range e.Tokens {
				b = append(b, TokSrc(t))
			}
			a = append(a, strings.Join(b, " "))
		}
		if g, e := strings.Join(a, "\n"), "42 - 24\n314 + 278"; g != e {
			t.Fatalf("got\n%s\nexp\n%s", g, e)
		}
	default:
		t.Fatalf("%T", x)
	}
}

func TestPaste(t *testing.T) {
	testParse(t, []string{"testdata/paste.c"}, "")
}

func TestPaste2(t *testing.T) {
	testParse(t, []string{"testdata/paste2.c"}, "")
}

func TestFunc(t *testing.T) {
	testParse(t, []string{"testdata/func.c"}, "")
}

func TestEmptyMacroArg(t *testing.T) {
	testParse(t, []string{"testdata/empty.c"}, "")
}

func TestFuncFuncParams(t *testing.T) {
	testParse(t, []string{"testdata/funcfunc.c"}, "")
}

func TestAnonStructField(t *testing.T) {
	testParse(
		t,
		[]string{"testdata/anon.c"},
		"testdata/anon.c:4:7: only unnamed structs and unions are allowed",
		EnableAnonymousStructFields(),
	)
}

func tokStr(toks []xc.Token) string {
	var b []byte
	for _, v := range toks {
		switch v.Rune {
		case sentinel:
			b = append(b, []byte("@:")...)
		case IDENTIFIER_NONREPL:
			b = append(b, []byte("-:")...)
		}
		b = append(b, xc.Dict.S(tokVal(v))...)
	}
	return string(b)
}

func tokStr2(toks [][]xc.Token) string {
	var a []string
	for _, v := range toks {
		a = append(a, tokStr(v))
	}
	return strings.Join(a, ", ")
}

func TestIssue50(t *testing.T) {
	if _, err := Parse("", []string{"testdata/issue50.h"}, newTestModel()); err == nil {
		t.Fatal("unexpected success")
	}
}

// https://github.com/cznic/cc/issues/57
func TestIssue57(t *testing.T) {
	tu, err := Parse("", []string{"testdata/issue57.c"}, newTestModel())
	if err != nil {
		t.Fatal(errString(err))
	}

	bool_func := tu.Declarations.Identifiers[dict.SID("bool_func")].Node.(*DirectDeclarator).TopDeclarator()
	typ := bool_func.Type
	if g, e := typ.String(), "int(*)()"; g != e {
		t.Fatalf("%q %q", g, e)
	}
	typ = typ.Element() // deref function pointer
	if g, e := typ.Result().String(), "int"; g != e {
		t.Fatalf("%q %q", g, e)
	}
	// bool_t -> ok!
	if g, e := typ.Result().RawDeclarator().RawSpecifier().TypedefName(), dict.SID("bool_t"); g != e {
		t.Fatal(g, e)
	}

	func1 := tu.Declarations.Identifiers[dict.SID("func1")].Node.(*DirectDeclarator).TopDeclarator()
	typ = func1.Type
	if g, e := typ.String(), "int(*)()"; g != e {
		t.Fatalf("%q %q", g, e)
	}
	typ = typ.Element() // deref function pointer
	if g, e := typ.String(), "int()"; g != e {
		t.Fatalf("%q %q", g, e)
	}
	if g, e := typ.Result().String(), "int"; g != e {
		t.Fatalf("%q %q", g, e)
	}
	// try to get bool_t the way we got it above
	if g, e := typ.Result().RawDeclarator().RawSpecifier().TypedefName(), dict.SID("bool_t"); g != e {
		t.Fatal(string(xc.Dict.S(g)), string(xc.Dict.S(e))) // bool_func, how to get bool_t?
	}
}

// https://github.com/cznic/cc/issues/62
func TestIssue62(t *testing.T) {
	tu, err := Parse("", []string{"testdata/issue62.c"}, newTestModel())
	if err != nil {
		t.Fatal(errString(err))
	}

	for ; tu != nil; tu = tu.TranslationUnit {
		d := tu.ExternalDeclaration.Declaration.Declarator()
		var e Linkage
		tag := string(xc.Dict.S(d.Type.Tag()))
		t.Logf("%s: %s", position(d.Pos()), tag)
		switch {
		case strings.HasPrefix(tag, "global"):
			e = External
		case strings.HasPrefix(tag, "local"):
			e = Internal
		}
		if g := d.Linkage; g != e {
			t.Fatalf("%v %v", g, e)
		}
	}
}

// https://github.com/cznic/cc/issues/64
func TestIssue64(t *testing.T) {
	if _, err := Parse("", []string{"testdata/issue64.c"}, newTestModel()); err == nil {
		t.Fatal("expected error")
	} else {
		t.Log(errString(err))
	}
}

// https://github.com/cznic/cc/issues/65
func TestIssue65(t *testing.T) {
	tu, err := Parse("", []string{"testdata/issue65.c"}, newTestModel())
	if err != nil {
		t.Fatal(errString(err))
	}

	foo, ok := tu.Declarations.Identifiers[xc.Dict.SID("foo")]
	if !ok {
		t.Fatal("undefined: foo")
	}

	ft := foo.Node.(*DirectDeclarator).TopDeclarator().Type
	m, _ := ft.Members()
	tab := map[string]int{
		"i": -1,
		"j": 0,
		"k": 1,
		"l": 3,
		"m": -1,
	}
	for _, v := range m {
		ofs, ok := tab[string(xc.Dict.S(v.Name))]
		if !ok {
			t.Fatal(PrettyString(v))
		}

		if ofs < 0 {
			if v.Bits != 0 {
				t.Fatal(PrettyString(v))
			}
			continue
		}

		if v.Bits == 0 {
			t.Fatal(PrettyString(v))
		}

		if g, e := v.BitOffsetOf, ofs; g != e {
			t.Log(PrettyString(v))
			t.Fatal(g, e)
		}
	}
}

// https://github.com/cznic/cc/issues/66
func TestIssue66(t *testing.T) {
	tu, err := Parse("", []string{"testdata/issue66.c"}, newTestModel())
	if err != nil {
		t.Fatal(errString(err))
	}

	e := tu.ExternalDeclaration.Declaration.InitDeclaratorListOpt.InitDeclaratorList.InitDeclarator.Initializer.Expression
	if e.Value == nil {
		t.Fatal("expected constant expression")
	}

	switch g := e.Value.(type) {
	case uintptr:
		if e := uintptr(13); g != e {
			t.Fatal(g, e)
		}
	default:
		t.Fatalf("%T(%#v)", g, g)
	}
}

// https://github.com/cznic/cc/issues/67
func TestIssue67(t *testing.T) {
	tu, err := Parse("", []string{"testdata/issue67.c"}, newTestModel(), KeepComments())
	if err != nil {
		t.Fatal(errString(err))
	}

	var a []string
	for k, v := range tu.Comments {
		a = append(a, fmt.Sprintf("%s: %q", xc.FileSet.Position(k), xc.Dict.S(v)))
	}
	sort.Strings(a)
	if g, e := strings.Join(a, "\n"), `testdata/issue67.c:14:1: "/* abc11 */\n/* def12\n */"
testdata/issue67.c:19:1: "/* abc16\n */\n/* def18 */"
testdata/issue67.c:23:1: "/* abc21 */\n// def22"
testdata/issue67.c:27:1: "// def25\n/* abc26 */"
testdata/issue67.c:2:1: "// bar1"
testdata/issue67.c:32:1: "// def31"
testdata/issue67.c:5:1: "/*\nbaz3\n*/"
testdata/issue67.c:9:1: "// abc7\n// def8"`; g != e {
		t.Fatalf("got\n%s\nexp\n%s", g, e)
	}
}

// https://github.com/cznic/cc/issues/68
func TestIssue68(t *testing.T) {
	if _, err := Parse("", []string{"testdata/issue68.h"}, newTestModel()); err == nil {
		t.Fatal("expected error")
	}

	if _, err := Parse("", []string{"testdata/issue68.h"}, newTestModel(), EnableEmptyDeclarations()); err != nil {
		t.Fatal(err)
	}
}

// https://github.com/cznic/cc/issues/69
func TestIssue69(t *testing.T) {
	if _, err := Parse("", []string{"testdata/issue69.h"}, newTestModel()); err != nil {
		t.Fatal(err)
	}
}

// https://github.com/cznic/cc/issues/72
func TestIssue72(t *testing.T) {
	if _, err := Parse(
		"", []string{"testdata/issue72.h"}, newTestModel(),
		EnableWideEnumValues(),
	); err != nil {
		t.Fatal(err)
	}
}

// https://github.com/cznic/cc/issues/74
func TestIssue74EnableWideBitFieldTypes(t *testing.T) {
	if _, err := Parse(
		"", []string{"testdata/issue74.h"}, newTestModel(),
		EnableWideBitFieldTypes(),
	); err != nil {
		t.Fatal(err)
	}
}

// https://github.com/cznic/cc/issues/77
func TestIssue77(t *testing.T) {
	if _, err := Parse(
		"", []string{"testdata/issue77.c"}, newTestModel(),
	); err != nil {
		t.Fatal(err)
	}
}

// https://github.com/cznic/cc/issues/78
func TestIssue78(t *testing.T) {
	if _, err := Parse(
		"", []string{"testdata/issue78.c"}, newTestModel(),
	); err == nil {
		t.Fatal("expected error")
	}

	tu, err := Parse(
		"", []string{"testdata/issue78.c"}, newTestModel(), EnableOmitFuncRetType(),
	)
	if err != nil {
		t.Fatal(err)
	}

	b := tu.Declarations.Lookup(NSIdentifiers, xc.Dict.SID("f"))
	if b.Node == nil {
		t.Fatal("lookup fail")
	}

	typ := b.Node.(*DirectDeclarator).TopDeclarator().Type
	if typ == nil {
		t.Fatal("missing type")
	}

	if typ = typ.Result(); typ == nil {
		t.Fatal("missing result type")
	}

	if g, e := typ.String(), "int"; g != e {
		t.Fatalf("%q %q", g, e)
	}
}

// https://github.com/cznic/cc/issues/80
func TestIssue80(t *testing.T) {
	tu, err := Parse(
		"", []string{"testdata/issue80.c"}, newTestModel(),
	)
	if err != nil {
		t.Fatal(errString(err))
	}

	b := tu.Declarations.Lookup(NSIdentifiers, xc.Dict.SID("s"))
	if b.Node == nil {
		t.Fatal("lookup fail")
	}

	typ := b.Node.(*DirectDeclarator).TopDeclarator().Type
	if typ == nil {
		t.Fatal("missing type")
	}

	if g, e := typ.Kind(), Array; g != e {
		t.Errorf("Kind: %v %v", g, e)
	}

	if g, e := typ.Elements(), 7; g != e {
		t.Errorf("Elements: %v %v", g, e)
	}

	if g, e := typ.SizeOf(), 7; g != e {
		t.Fatalf("Sizeof: %v %v", g, e)
	}

	b = tu.Declarations.Lookup(NSIdentifiers, xc.Dict.SID("t"))
	if b.Node == nil {
		t.Fatal("lookup fail")
	}

	typ = b.Node.(*DirectDeclarator).TopDeclarator().Type
	if typ == nil {
		t.Fatal("missing type")
	}

	if g, e := typ.Kind(), Ptr; g != e {
		t.Errorf("Kind: %v %v", g, e)
	}

	if g, e := typ.Elements(), -1; g != e {
		t.Errorf("Elements: %v %v", g, e)
	}

	if g, e := typ.SizeOf(), 8; g != e {
		t.Fatalf("Sizeof: %v %v", g, e)
	}

	b = tu.Declarations.Lookup(NSIdentifiers, xc.Dict.SID("u"))
	if b.Node == nil {
		t.Fatal("lookup fail")
	}

	typ = b.Node.(*DirectDeclarator).TopDeclarator().Type
	if typ == nil {
		t.Fatal("missing type")
	}

	if g, e := typ.Kind(), Array; g != e {
		t.Errorf("Kind: %v %v", g, e)
	}

	if g, e := typ.Elements(), 11; g != e {
		t.Errorf("Elements: %v %v", g, e)
	}

	if g, e := typ.SizeOf(), 11; g != e {
		t.Fatalf("Sizeof: %v %v", g, e)
	}
}

// https://github.com/cznic/cc/issues/81
func TestIssue81(t *testing.T) {
	tu, err := Parse(
		"", []string{"testdata/issue81.c"}, newTestModel(),
	)
	if err != nil {
		t.Fatal(err)
	}

	_ = tu
	for l := tu; l != nil; l = l.TranslationUnit {
		d := l.ExternalDeclaration.Declaration
		for l := d.InitDeclaratorListOpt.InitDeclaratorList; l != nil; l = l.InitDeclaratorList {
			x := l.InitDeclarator.Initializer.Expression
			s := xc.Dict.S(int(x.Value.(StringLitID)))
			if g, e := len(s), 3; g != e {
				t.Fatalf("%v |% x| \n%v %v", position(x.Pos()), s, g, e)
			}

			if g, e := s, []byte{0, 255, 0}; !bytes.Equal(g, e) {
				t.Fatalf("%v |% x| |% x|", position(x.Pos()), g, e)
			}
		}
	}
}

// https://github.com/cznic/cc/issues/82
func TestIssue82(t *testing.T) {
	if g, e := testPreprocessor(t, "testdata/issue82.c"),
		`d(2)
d(2, 3)`; g != e {
		t.Fatalf("\ngot\n%s\nexp\n%s", g, e)
	}
}

// https://github.com/cznic/cc/issues/84
func TestIssue84(t *testing.T) {
	if g, e := testPreprocessor(t, "testdata/issue84.c"),
		`c(1, 2, 3);
c(1, 2);
c(1, );`; g != e {
		t.Fatalf("\ngot\n%s\nexp\n%s", g, e)
	}
}

var vectorAttr = regexp.MustCompile(`__attribute__ *\(\((__)?vector_size(__)? *\(`)

func testDir(t *testing.T, dir string) {

	var re *regexp.Regexp
	if s := *oRe; s != "" {
		re = regexp.MustCompile(s)
	}

	dir = filepath.FromSlash(dir)
	t.Log(dir)
	m, err := filepath.Glob(filepath.Join(dir, "*.c"))
	if err != nil {
		t.Fatal(err)
	}

	sort.Strings(m)
	predefined, _, sysIncludePaths, err := HostConfig()
	if err != nil {
		t.Fatal(err)
	}

	blacklist := []string{
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011217-2.c", // (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1]
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020320-1.c", // static T *p = x;
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/pr37056.c",    // ? ({void *__s = (u.buf + off); __s;}) : ...
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/pr42196-1.c",  // __complex__ int c;
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/pr42196-2.c",  // __complex__ int ci;
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/pr42196-3.c",  // __complex__ int ci;
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/pr54559.c",    // return x + y * (T) (__extension__ 1.0iF);
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/pr54713-2.c",  // #include: typedef int V __attribute__((vector_size (N * sizeof (int))));
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/pr54713-3.c",  // #include: typedef int V __attribute__((vector_size (N * sizeof (int))));
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/pr67143.c",    // __sync_add_and_fetch(&a, 536870912);

		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/20041124-1.c",    // struct s { _Complex unsigned short x; };
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/20041201-1.c",    // typedef struct { _Complex char a; _Complex char b; } Scc2;
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/20071211-1.c",    // __asm__ volatile ("" : : : "memory");
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/pr19449.c",       // int z = __builtin_choose_expr (!__builtin_constant_p (y), 3, 4);
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/pr38151.c",       // _Complex int b;
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/pr39228.c",       // if (testl (1.18973149535723176502e+4932L) < 1)
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/pr56982.c",       // __asm__ volatile ("" : : : "memory");
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/pr71626-2.c",     // #include: typedef __INTPTR_TYPE__ V __attribute__((__vector_size__(sizeof (__INTPTR_TYPE__))));
		"testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/pushpop_macro.c", // #pragma push_macro("_")
	}

	const attempt2prototypes = `
void exit();
void abort();
`

	var pass, gccFail int
	defer func() {
		t.Logf("pass %v, gccFail %v (sum %v), total test cases %v", pass, gccFail, pass+gccFail, len(m))
	}()
outer:
	for i, v := range m {
		if re != nil && !re.MatchString(v) {
			continue
		}

		for _, w := range blacklist {
			if strings.HasSuffix(filepath.ToSlash(v), w) {
				continue outer
			}
		}

		b, err := ioutil.ReadFile(v)
		if err != nil {
			t.Fatal(err)
		}

		if vectorAttr.Match(b) {
			continue
		}

		attempt := 1
	retry:
		func() {
			defer func() {
				if e := recover(); e != nil {
					err = fmt.Errorf("PANIC\n%s\n%v", debug.Stack(), e)
				}
			}()

			s := predefined
			if attempt == 2 {
				s += attempt2prototypes
			}
			err = testDev1(
				s,
				s,
				s,
				[]string{},
				"",
				v,
				[]Opt{
					ErrLimit(-1),
					SysIncludePaths(sysIncludePaths),
					EnableIncludeNext(),
					EnableDefineOmitCommaBeforeDDD(),
				},
				[]Opt{
					ErrLimit(-1),
					SysIncludePaths(sysIncludePaths),
					EnableIncludeNext(),
					EnableWideBitFieldTypes(),
					EnableEmptyDeclarations(),
					gccEmu(),
				},
			)
		}()

		if err != nil {
			//dbg("%T(%v)", err, err)
			switch err.(type) {
			case cppCmpError:
				// fail w/o retry.
			default:
				if attempt == 1 { // retry with {abort,exit} prototype.
					attempt++
					goto retry
				}

				s := errString(err)
				if !strings.Contains(s, "PANIC") && !strings.Contains(s, "TODO") && !strings.Contains(s, "undefined: __builtin_") {
					if out, err := exec.Command("gcc", "-o", os.DevNull, "-c", "-std=c99", "--pedantic", "-fmax-errors=10", v).CombinedOutput(); len(out) != 0 || err != nil {
						// Auto blacklist if gcc fails to compile as well.
						if n := 4000; len(out) > n {
							out = out[:n]
						}
						t.Logf("%s\n==== gcc reports\n%s\n%v", s, out, err)
						gccFail++
						continue
					}

				}
			}

			t.Errorf("%v\n%v/%v, %v ok(+%v=%v)\nFAIL\n%s (%T)", v, i+1, len(m), pass, gccFail, pass+gccFail, errString(err), err)
			return
		}

		pass++
		if re != nil {
			t.Logf("%v: %v ok", v, pass)
		}
	}
}

func TestTCCTests(t *testing.T) {
	if !*oDev {
		t.Log("enable with -dev")
		return
	}

	testDir(t, "testdata/tcc-0.9.26/tests/tests2/")
}

func TestGCCTests(t *testing.T) {
	if !*oDev {
		t.Log("enable with -dev")
		return
	}

	testDir(t, "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/")
	testDir(t, "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/")
	testDir(t, "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/")
}

// https://github.com/cznic/cc/issues/85
func TestIssue85(t *testing.T) {
	tu, err := Parse(
		"", []string{"testdata/issue85.c"}, newTestModel(), EnableOmitFuncRetType(),
	)
	if err != nil {
		t.Fatal(err)
	}

	b := tu.Declarations.Lookup(NSIdentifiers, xc.Dict.SID("i"))
	if b.Node == nil {
		t.Fatal("lookup fail")
	}

	d := b.Node.(*DirectDeclarator).TopDeclarator()
	if g, e := d.Linkage, External; g != e {
		t.Fatal(g, e)
	}

	if g, e := d.Type.Specifier().IsExtern(), false; g != e {
		t.Fatal(g, e)
	}

	b = tu.Declarations.Lookup(NSIdentifiers, xc.Dict.SID("j"))
	if b.Node == nil {
		t.Fatal("lookup fail")
	}

	d = b.Node.(*DirectDeclarator).TopDeclarator()
	if g, e := d.Linkage, External; g != e {
		t.Fatal(g, e)
	}

	if g, e := d.Type.Specifier().IsExtern(), true; g != e {
		t.Fatal(g, e)
	}
}

// https://github.com/cznic/cc/issues/86
func TestIssue86(t *testing.T) {
	_, err := Parse(
		"", []string{"testdata/issue86.c"}, newTestModel(), EnableOmitFuncRetType(),
	)
	if err == nil {
		t.Fatal("missed error")
	}

	if g, e := err.Error(), "testdata/issue86.c:2:12: 'j' initialized and declared 'extern'"; g != e {
		t.Fatalf("%q %q", g, e)
	}

	t.Log(err)
}

func TestArray(t *testing.T) {
	ast, err := Parse(
		"", []string{"testdata/array.c"}, newTestModel(), EnableOmitFuncRetType(),
	)
	if err != nil {
		t.Fatal(errString(err))
	}

	expr := ast.TranslationUnit.ExternalDeclaration.FunctionDefinition.FunctionBody.
		CompoundStatement.BlockItemListOpt.BlockItemList.BlockItemList.BlockItem.
		Statement.ExpressionStatement.ExpressionListOpt.ExpressionList.Expression

	if g, e := expr.Type.Kind(), Ptr; g != e {
		t.Fatal(g, e)
	}

	dd := expr.IdentResolutionScope().Lookup(NSIdentifiers, dict.SID("a")).Node.(*DirectDeclarator)
	if g, e := dd.TopDeclarator().Type.Kind(), Array; g != e {
		t.Fatal(g, e)
	}
}

// https://github.com/cznic/cc/issues/87
func TestIssue87(t *testing.T) {
	if _, err := Parse(
		"", []string{"testdata/issue87.c"}, newTestModel(),
	); err == nil {
		t.Fatal("missed error")
	}

	if _, err := Parse(
		"", []string{"testdata/issue87.c"}, newTestModel(), AllowCompatibleTypedefRedefinitions(),
	); err != nil {
		t.Fatal(err)
	}
}

// https://github.com/cznic/cc/issues/88
func TestIssue88(t *testing.T) {
	ast, err := Parse(
		"", []string{"testdata/issue88.c"}, newTestModel(),
	)
	if err != nil {
		t.Fatal(errString(err))
	}

	exp := ast.TranslationUnit.ExternalDeclaration.FunctionDefinition.FunctionBody.
		CompoundStatement.BlockItemListOpt.BlockItemList.BlockItemList.BlockItem.
		Statement.ExpressionStatement.ExpressionListOpt.ExpressionList.Expression

	if g := exp.BinOpType; g != nil {
		t.Fatalf("unexpected non-nil BinOpType %s", g)
	}
}

// https://github.com/cznic/cc/issues/89
func TestIssue89(t *testing.T) {
	ast, err := Parse(
		"", []string{"testdata/issue89.c"}, newTestModel(), EnableImplicitFuncDef(),
	)
	if err != nil {
		t.Fatal(errString(err))
	}

	exp := ast.TranslationUnit.ExternalDeclaration.FunctionDefinition.FunctionBody.
		CompoundStatement.BlockItemListOpt.BlockItemList.BlockItemList.BlockItemList.BlockItem.
		Statement.ExpressionStatement.ExpressionListOpt.ExpressionList.Expression.
		ArgumentExpressionListOpt.ArgumentExpressionList.Expression

	if g := exp.Type; g == nil {
		t.Errorf("'a.f': missing expression type")
	}
	if g := exp.Expression.Type; g == nil {
		t.Errorf("'a': missing expression type")
	}
}

// https://github.com/cznic/cc/issues/90
func TestIssue90(t *testing.T) {
	ast, err := Parse(
		"", []string{"testdata/issue90.c"}, newTestModel(), EnableImplicitFuncDef(),
	)
	if err != nil {
		t.Fatal(errString(err))
	}

	expr := ast.TranslationUnit.ExternalDeclaration.FunctionDefinition.FunctionBody.
		CompoundStatement.BlockItemListOpt.BlockItemList.BlockItemList.BlockItem.
		Statement.ExpressionStatement.ExpressionListOpt.ExpressionList.Expression

	if g, e := expr.Type.Kind(), UInt; g != e {
		t.Errorf("expr: %v %v", g, e)
	}
	if g, e := expr.Expression.Type.Kind(), UInt; g != e {
		t.Errorf("expr.Expression: %v %v", g, e)
	}
	if g, e := expr.Expression2.Type.Kind(), UInt; g != e {
		t.Errorf("expr.Expression2: %v %v", g, e)
	}
}

// https://github.com/cznic/cc/issues/92
func TestIssue92(t *testing.T) {
	if _, err := Parse(
		"", []string{"testdata/issue92.c"}, newTestModel(),
	); err == nil {
		t.Fatal("missed error")
	}

	if _, err := Parse(
		"", []string{"testdata/issue92.c"}, newTestModel(), AllowCompatibleTypedefRedefinitions(),
	); err != nil {
		t.Fatal(err)
	}
}

// https://github.com/cznic/cc/issues/93
func TestIssue93(t *testing.T) {
	if _, err := Parse(
		"", []string{"testdata/issue93.c"}, newTestModel(),
	); err != nil {
		t.Fatal(err)
	}
}


================================================
FILE: ast.go
================================================
// Code generated by yy. DO NOT EDIT.

// Copyright 2016 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 (
	"go/token"

	"github.com/cznic/xc"
)

// AbstractDeclarator represents data reduced by productions:
//
//	AbstractDeclarator:
//	        Pointer
//	|       PointerOpt DirectAbstractDeclarator  // Case 1
type AbstractDeclarator struct {
	declarator               *Declarator
	Case                     int
	DirectAbstractDeclarator *DirectAbstractDeclarator
	Pointer                  *Pointer
	PointerOpt               *PointerOpt
}

func (n *AbstractDeclarator) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *AbstractDeclarator) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *AbstractDeclarator) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.Pointer.Pos()
	case 1:
		if p := n.PointerOpt.Pos(); p != 0 {
			return p
		}

		return n.DirectAbstractDeclarator.Pos()
	default:
		panic("internal error")
	}
}

// AbstractDeclaratorOpt represents data reduced by productions:
//
//	AbstractDeclaratorOpt:
//	        /* empty */
//	|       AbstractDeclarator  // Case 1
type AbstractDeclaratorOpt struct {
	AbstractDeclarator *AbstractDeclarator
}

func (n *AbstractDeclaratorOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *AbstractDeclaratorOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *AbstractDeclaratorOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.AbstractDeclarator.Pos()
}

// ArgumentExpressionList represents data reduced by productions:
//
//	ArgumentExpressionList:
//	        Expression
//	|       ArgumentExpressionList ',' Expression  // Case 1
type ArgumentExpressionList struct {
	ArgumentExpressionList *ArgumentExpressionList
	Case                   int
	Expression             *Expression
	Token                  xc.Token
}

func (n *ArgumentExpressionList) reverse() *ArgumentExpressionList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.ArgumentExpressionList
	for nb != nil {
		nc := nb.ArgumentExpressionList
		nb.ArgumentExpressionList = na
		na = nb
		nb = nc
	}
	n.ArgumentExpressionList = nil
	return na
}

func (n *ArgumentExpressionList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *ArgumentExpressionList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ArgumentExpressionList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 1:
		return n.ArgumentExpressionList.Pos()
	case 0:
		return n.Expression.Pos()
	default:
		panic("internal error")
	}
}

// ArgumentExpressionListOpt represents data reduced by productions:
//
//	ArgumentExpressionListOpt:
//	        /* empty */
//	|       ArgumentExpressionList  // Case 1
type ArgumentExpressionListOpt struct {
	ArgumentExpressionList *ArgumentExpressionList
}

func (n *ArgumentExpressionListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ArgumentExpressionListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ArgumentExpressionListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.ArgumentExpressionList.Pos()
}

// AssemblerInstructions represents data reduced by productions:
//
//	AssemblerInstructions:
//	        STRINGLITERAL
//	|       AssemblerInstructions STRINGLITERAL  // Case 1
type AssemblerInstructions struct {
	AssemblerInstructions *AssemblerInstructions
	Case                  int
	Token                 xc.Token
}

func (n *AssemblerInstructions) reverse() *AssemblerInstructions {
	if n == nil {
		return nil
	}

	na := n
	nb := na.AssemblerInstructions
	for nb != nil {
		nc := nb.AssemblerInstructions
		nb.AssemblerInstructions = na
		na = nb
		nb = nc
	}
	n.AssemblerInstructions = nil
	return na
}

func (n *AssemblerInstructions) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *AssemblerInstructions) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *AssemblerInstructions) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 1:
		return n.AssemblerInstructions.Pos()
	case 0:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// AssemblerOperand represents data reduced by production:
//
//	AssemblerOperand:
//	        AssemblerSymbolicNameOpt STRINGLITERAL '(' Expression ')'
type AssemblerOperand struct {
	AssemblerSymbolicNameOpt *AssemblerSymbolicNameOpt
	Expression               *Expression
	Token                    xc.Token
	Token2                   xc.Token
	Token3                   xc.Token
}

func (n *AssemblerOperand) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *AssemblerOperand) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *AssemblerOperand) Pos() token.Pos {
	if n == nil {
		return 0
	}

	if p := n.AssemblerSymbolicNameOpt.Pos(); p != 0 {
		return p
	}

	return n.Token.Pos()
}

// AssemblerOperands represents data reduced by productions:
//
//	AssemblerOperands:
//	        AssemblerOperand
//	|       AssemblerOperands ',' AssemblerOperand  // Case 1
type AssemblerOperands struct {
	AssemblerOperand  *AssemblerOperand
	AssemblerOperands *AssemblerOperands
	Case              int
	Token             xc.Token
}

func (n *AssemblerOperands) reverse() *AssemblerOperands {
	if n == nil {
		return nil
	}

	na := n
	nb := na.AssemblerOperands
	for nb != nil {
		nc := nb.AssemblerOperands
		nb.AssemblerOperands = na
		na = nb
		nb = nc
	}
	n.AssemblerOperands = nil
	return na
}

func (n *AssemblerOperands) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *AssemblerOperands) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *AssemblerOperands) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.AssemblerOperand.Pos()
	case 1:
		return n.AssemblerOperands.Pos()
	default:
		panic("internal error")
	}
}

// AssemblerStatement represents data reduced by productions:
//
//	AssemblerStatement:
//	        BasicAssemblerStatement
//	|       "asm" VolatileOpt '(' AssemblerInstructions ':' AssemblerOperands ')'                                             // Case 1
//	|       "asm" VolatileOpt '(' AssemblerInstructions ':' AssemblerOperands ':' AssemblerOperands ')'                       // Case 2
//	|       "asm" VolatileOpt '(' AssemblerInstructions ':' AssemblerOperands ':' AssemblerOperands ':' Clobbers ')'          // Case 3
//	|       "asm" VolatileOpt "goto" '(' AssemblerInstructions ':' ':' AssemblerOperands ':' Clobbers ':' IdentifierList ')'  // Case 4
//	|       "asm" VolatileOpt '(' AssemblerInstructions ':' ')'                                                               // Case 5
//	|       "asm" VolatileOpt '(' AssemblerInstructions ':' ':' AssemblerOperands ')'                                         // Case 6
type AssemblerStatement struct {
	AssemblerInstructions   *AssemblerInstructions
	AssemblerOperands       *AssemblerOperands
	AssemblerOperands2      *AssemblerOperands
	BasicAssemblerStatement *BasicAssemblerStatement
	Case                    int
	Clobbers                *Clobbers
	IdentifierList          *IdentifierList
	Token                   xc.Token
	Token2                  xc.Token
	Token3                  xc.Token
	Token4                  xc.Token
	Token5                  xc.Token
	Token6                  xc.Token
	Token7                  xc.Token
	Token8                  xc.Token
	VolatileOpt             *VolatileOpt
}

func (n *AssemblerStatement) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *AssemblerStatement) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *AssemblerStatement) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.BasicAssemblerStatement.Pos()
	case 1, 2, 3, 4, 5, 6:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// AssemblerSymbolicNameOpt represents data reduced by productions:
//
//	AssemblerSymbolicNameOpt:
//	        /* empty */
//	|       '[' IDENTIFIER ']'  // Case 1
type AssemblerSymbolicNameOpt struct {
	Token  xc.Token
	Token2 xc.Token
	Token3 xc.Token
}

func (n *AssemblerSymbolicNameOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *AssemblerSymbolicNameOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *AssemblerSymbolicNameOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// BasicAssemblerStatement represents data reduced by production:
//
//	BasicAssemblerStatement:
//	        "asm" VolatileOpt '(' AssemblerInstructions ')'
type BasicAssemblerStatement struct {
	AssemblerInstructions *AssemblerInstructions
	Token                 xc.Token
	Token2                xc.Token
	Token3                xc.Token
	VolatileOpt           *VolatileOpt
}

func (n *BasicAssemblerStatement) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *BasicAssemblerStatement) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *BasicAssemblerStatement) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// BlockItem represents data reduced by productions:
//
//	BlockItem:
//	        Declaration
//	|       Statement    // Case 1
type BlockItem struct {
	Case        int
	Declaration *Declaration
	Statement   *Statement
}

func (n *BlockItem) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *BlockItem) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *BlockItem) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.Declaration.Pos()
	case 1:
		return n.Statement.Pos()
	default:
		panic("internal error")
	}
}

// BlockItemList represents data reduced by productions:
//
//	BlockItemList:
//	        BlockItem
//	|       BlockItemList BlockItem  // Case 1
type BlockItemList struct {
	BlockItem     *BlockItem
	BlockItemList *BlockItemList
	Case          int
}

func (n *BlockItemList) reverse() *BlockItemList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.BlockItemList
	for nb != nil {
		nc := nb.BlockItemList
		nb.BlockItemList = na
		na = nb
		nb = nc
	}
	n.BlockItemList = nil
	return na
}

func (n *BlockItemList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *BlockItemList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *BlockItemList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.BlockItem.Pos()
	case 1:
		return n.BlockItemList.Pos()
	default:
		panic("internal error")
	}
}

// BlockItemListOpt represents data reduced by productions:
//
//	BlockItemListOpt:
//	        /* empty */
//	|       BlockItemList  // Case 1
type BlockItemListOpt struct {
	BlockItemList *BlockItemList
}

func (n *BlockItemListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *BlockItemListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *BlockItemListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.BlockItemList.Pos()
}

// Clobbers represents data reduced by productions:
//
//	Clobbers:
//	        STRINGLITERAL
//	|       Clobbers ',' STRINGLITERAL  // Case 1
type Clobbers struct {
	Case     int
	Clobbers *Clobbers
	Token    xc.Token
	Token2   xc.Token
}

func (n *Clobbers) reverse() *Clobbers {
	if n == nil {
		return nil
	}

	na := n
	nb := na.Clobbers
	for nb != nil {
		nc := nb.Clobbers
		nb.Clobbers = na
		na = nb
		nb = nc
	}
	n.Clobbers = nil
	return na
}

func (n *Clobbers) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *Clobbers) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Clobbers) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 1:
		return n.Clobbers.Pos()
	case 0:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// CommaOpt represents data reduced by productions:
//
//	CommaOpt:
//	        /* empty */
//	|       ','          // Case 1
type CommaOpt struct {
	Token xc.Token
}

func (n *CommaOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *CommaOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *CommaOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// CompoundStatement represents data reduced by production:
//
//	CompoundStatement:
//	        '{' BlockItemListOpt '}'
type CompoundStatement struct {
	scope            *Bindings // Scope of the CompoundStatement.
	BlockItemListOpt *BlockItemListOpt
	Token            xc.Token
	Token2           xc.Token
}

func (n *CompoundStatement) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *CompoundStatement) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *CompoundStatement) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// ConstantExpression represents data reduced by production:
//
//	ConstantExpression:
//	        Expression
type ConstantExpression struct {
	Type       Type        // Type of expression.
	Value      interface{} // Non nil for certain constant expressions.
	toks       []xc.Token  //
	Expression *Expression
}

func (n *ConstantExpression) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ConstantExpression) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ConstantExpression) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Expression.Pos()
}

// ControlLine represents data reduced by productions:
//
//	ControlLine:
//	        PPDEFINE IDENTIFIER ReplacementList
//	|       PPDEFINE IDENTIFIER_LPAREN "..." ')' ReplacementList                     // Case 1
//	|       PPDEFINE IDENTIFIER_LPAREN IdentifierList ',' "..." ')' ReplacementList  // Case 2
//	|       PPDEFINE IDENTIFIER_LPAREN IdentifierListOpt ')' ReplacementList         // Case 3
//	|       PPERROR PPTokenListOpt                                                   // Case 4
//	|       PPHASH_NL                                                                // Case 5
//	|       PPINCLUDE PPTokenList '\n'                                               // Case 6
//	|       PPLINE PPTokenList '\n'                                                  // Case 7
//	|       PPPRAGMA PPTokenListOpt                                                  // Case 8
//	|       PPUNDEF IDENTIFIER '\n'                                                  // Case 9
//	|       PPDEFINE IDENTIFIER_LPAREN IdentifierList "..." ')' ReplacementList      // Case 10
//	|       PPDEFINE '\n'                                                            // Case 11
//	|       PPUNDEF IDENTIFIER PPTokenList '\n'                                      // Case 12
//	|       PPINCLUDE_NEXT PPTokenList '\n'                                          // Case 13
type ControlLine struct {
	Case              int
	IdentifierList    *IdentifierList
	IdentifierListOpt *IdentifierListOpt
	PPTokenList       PPTokenList
	PPTokenListOpt    PPTokenList
	ReplacementList   PPTokenList
	Token             xc.Token
	Token2            xc.Token
	Token3            xc.Token
	Token4            xc.Token
	Token5            xc.Token
}

func (n *ControlLine) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ControlLine) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ControlLine) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// Declaration represents data reduced by productions:
//
//	Declaration:
//	        DeclarationSpecifiers InitDeclaratorListOpt ';'
//	|       StaticAssertDeclaration                          // Case 1
type Declaration struct {
	declarator              *Declarator // Synthetic declarator when InitDeclaratorListOpt is nil.
	Case                    int
	DeclarationSpecifiers   *DeclarationSpecifiers
	InitDeclaratorListOpt   *InitDeclaratorListOpt
	StaticAssertDeclaration *StaticAssertDeclaration
	Token                   xc.Token
}

func (n *Declaration) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *Declaration) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Declaration) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.DeclarationSpecifiers.Pos()
	case 1:
		return n.StaticAssertDeclaration.Pos()
	default:
		panic("internal error")
	}
}

// DeclarationList represents data reduced by productions:
//
//	DeclarationList:
//	        Declaration
//	|       DeclarationList Declaration  // Case 1
type DeclarationList struct {
	Case            int
	Declaration     *Declaration
	DeclarationList *DeclarationList
}

func (n *DeclarationList) reverse() *DeclarationList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.DeclarationList
	for nb != nil {
		nc := nb.DeclarationList
		nb.DeclarationList = na
		na = nb
		nb = nc
	}
	n.DeclarationList = nil
	return na
}

func (n *DeclarationList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *DeclarationList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DeclarationList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.Declaration.Pos()
	case 1:
		return n.DeclarationList.Pos()
	default:
		panic("internal error")
	}
}

// DeclarationListOpt represents data reduced by productions:
//
//	DeclarationListOpt:
//	        /* empty */
//	|       DeclarationList  // Case 1
type DeclarationListOpt struct {
	paramsScope     *Bindings
	DeclarationList *DeclarationList
}

func (n *DeclarationListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *DeclarationListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DeclarationListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.DeclarationList.Pos()
}

// DeclarationSpecifiers represents data reduced by productions:
//
//	DeclarationSpecifiers:
//	        StorageClassSpecifier DeclarationSpecifiersOpt
//	|       TypeSpecifier DeclarationSpecifiersOpt          // Case 1
//	|       TypeQualifier DeclarationSpecifiersOpt          // Case 2
//	|       FunctionSpecifier DeclarationSpecifiersOpt      // Case 3
type DeclarationSpecifiers struct {
	attr                     int // tsInline, tsTypedefName, ...
	typeSpecifier            int // Encoded combination of tsVoid, tsInt, ...
	Case                     int
	DeclarationSpecifiersOpt *DeclarationSpecifiersOpt
	FunctionSpecifier        *FunctionSpecifier
	StorageClassSpecifier    *StorageClassSpecifier
	TypeQualifier            *TypeQualifier
	TypeSpecifier            *TypeSpecifier
}

func (n *DeclarationSpecifiers) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *DeclarationSpecifiers) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DeclarationSpecifiers) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 3:
		return n.FunctionSpecifier.Pos()
	case 0:
		return n.StorageClassSpecifier.Pos()
	case 2:
		return n.TypeQualifier.Pos()
	case 1:
		return n.TypeSpecifier.Pos()
	default:
		panic("internal error")
	}
}

// DeclarationSpecifiersOpt represents data reduced by productions:
//
//	DeclarationSpecifiersOpt:
//	        /* empty */
//	|       DeclarationSpecifiers  // Case 1
type DeclarationSpecifiersOpt struct {
	attr                  int // tsInline, tsTypedefName, ...
	typeSpecifier         int // Encoded combination of tsVoid, tsInt, ...
	DeclarationSpecifiers *DeclarationSpecifiers
}

func (n *DeclarationSpecifiersOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *DeclarationSpecifiersOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DeclarationSpecifiersOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.DeclarationSpecifiers.Pos()
}

// Declarator represents data reduced by production:
//
//	Declarator:
//	        PointerOpt DirectDeclarator
type Declarator struct {
	Linkage          Linkage
	Type             Type
	bitFieldType     Type
	bitFieldGroup    int
	bitOffset        int
	bits             int
	offsetOf         int
	padding          int
	specifier        Specifier
	DirectDeclarator *DirectDeclarator
	PointerOpt       *PointerOpt
}

func (n *Declarator) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *Declarator) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Declarator) Pos() token.Pos {
	if n == nil {
		return 0
	}

	if p := n.PointerOpt.Pos(); p != 0 {
		return p
	}

	return n.DirectDeclarator.Pos()
}

// DeclaratorOpt represents data reduced by productions:
//
//	DeclaratorOpt:
//	        /* empty */
//	|       Declarator   // Case 1
type DeclaratorOpt struct {
	Declarator *Declarator
}

func (n *DeclaratorOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *DeclaratorOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DeclaratorOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Declarator.Pos()
}

// Designation represents data reduced by production:
//
//	Designation:
//	        DesignatorList '='
type Designation struct {
	DesignatorList *DesignatorList
	Token          xc.Token
}

func (n *Designation) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *Designation) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Designation) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.DesignatorList.Pos()
}

// DesignationOpt represents data reduced by productions:
//
//	DesignationOpt:
//	        /* empty */
//	|       Designation  // Case 1
type DesignationOpt struct {
	Designation *Designation
}

func (n *DesignationOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *DesignationOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DesignationOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Designation.Pos()
}

// Designator represents data reduced by productions:
//
//	Designator:
//	        '[' ConstantExpression ']'
//	|       '.' IDENTIFIER              // Case 1
type Designator struct {
	Case               int
	ConstantExpression *ConstantExpression
	Token              xc.Token
	Token2             xc.Token
}

func (n *Designator) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *Designator) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Designator) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// DesignatorList represents data reduced by productions:
//
//	DesignatorList:
//	        Designator
//	|       DesignatorList Designator  // Case 1
type DesignatorList struct {
	Case           int
	Designator     *Designator
	DesignatorList *DesignatorList
}

func (n *DesignatorList) reverse() *DesignatorList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.DesignatorList
	for nb != nil {
		nc := nb.DesignatorList
		nb.DesignatorList = na
		na = nb
		nb = nc
	}
	n.DesignatorList = nil
	return na
}

func (n *DesignatorList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *DesignatorList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DesignatorList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.Designator.Pos()
	case 1:
		return n.DesignatorList.Pos()
	default:
		panic("internal error")
	}
}

// DirectAbstractDeclarator represents data reduced by productions:
//
//	DirectAbstractDeclarator:
//	        '(' AbstractDeclarator ')'
//	|       DirectAbstractDeclaratorOpt '[' ExpressionOpt ']'                             // Case 1
//	|       DirectAbstractDeclaratorOpt '[' TypeQualifierList ExpressionOpt ']'           // Case 2
//	|       DirectAbstractDeclaratorOpt '[' "static" TypeQualifierListOpt Expression ']'  // Case 3
//	|       DirectAbstractDeclaratorOpt '[' TypeQualifierList "static" Expression ']'     // Case 4
//	|       DirectAbstractDeclaratorOpt '[' '*' ']'                                       // Case 5
//	|       '(' ParameterTypeListOpt ')'                                                  // Case 6
//	|       DirectAbstractDeclarator '(' ParameterTypeListOpt ')'                         // Case 7
type DirectAbstractDeclarator struct {
	directDeclarator            *DirectDeclarator
	paramsScope                 *Bindings
	AbstractDeclarator          *AbstractDeclarator
	Case                        int
	DirectAbstractDeclarator    *DirectAbstractDeclarator
	DirectAbstractDeclaratorOpt *DirectAbstractDeclaratorOpt
	Expression                  *Expression
	ExpressionOpt               *ExpressionOpt
	ParameterTypeListOpt        *ParameterTypeListOpt
	Token                       xc.Token
	Token2                      xc.Token
	Token3                      xc.Token
	TypeQualifierList           *TypeQualifierList
	TypeQualifierListOpt        *TypeQualifierListOpt
}

func (n *DirectAbstractDeclarator) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *DirectAbstractDeclarator) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DirectAbstractDeclarator) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 7:
		return n.DirectAbstractDeclarator.Pos()
	case 1, 2, 3, 4, 5:
		if p := n.DirectAbstractDeclaratorOpt.Pos(); p != 0 {
			return p
		}

		return n.Token.Pos()
	case 0, 6:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// DirectAbstractDeclaratorOpt represents data reduced by productions:
//
//	DirectAbstractDeclaratorOpt:
//	        /* empty */
//	|       DirectAbstractDeclarator  // Case 1
type DirectAbstractDeclaratorOpt struct {
	DirectAbstractDeclarator *DirectAbstractDeclarator
}

func (n *DirectAbstractDeclaratorOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *DirectAbstractDeclaratorOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DirectAbstractDeclaratorOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.DirectAbstractDeclarator.Pos()
}

// DirectDeclarator represents data reduced by productions:
//
//	DirectDeclarator:
//	        IDENTIFIER
//	|       '(' Declarator ')'                                                 // Case 1
//	|       DirectDeclarator '[' TypeQualifierListOpt ExpressionOpt ']'        // Case 2
//	|       DirectDeclarator '[' "static" TypeQualifierListOpt Expression ']'  // Case 3
//	|       DirectDeclarator '[' TypeQualifierList "static" Expression ']'     // Case 4
//	|       DirectDeclarator '[' TypeQualifierListOpt '*' ']'                  // Case 5
//	|       DirectDeclarator '(' ParameterTypeList ')'                         // Case 6
//	|       DirectDeclarator '(' IdentifierListOpt ')'                         // Case 7
type DirectDeclarator struct {
	EnumVal              interface{} // Non nil if DD declares an enumeration constant.
	declarator           *Declarator
	elements             int
	idScope              *Bindings // Of case 0: IDENTIFIER.
	paramsScope          *Bindings
	parent               *DirectDeclarator
	prev                 *Binding // Existing declaration in same scope, if any.
	specifier            Specifier
	visible              *Binding // Existing declaration of same ident visible in same scope, if any and this DD has storage class extrn.
	Case                 int
	Declarator           *Declarator
	DirectDeclarator     *DirectDeclarator
	Expression           *Expression
	ExpressionOpt        *ExpressionOpt
	IdentifierListOpt    *IdentifierListOpt
	ParameterTypeList    *ParameterTypeList
	Token                xc.Token
	Token2               xc.Token
	Token3               xc.Token
	TypeQualifierList    *TypeQualifierList
	TypeQualifierListOpt *TypeQualifierListOpt
}

func (n *DirectDeclarator) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *DirectDeclarator) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *DirectDeclarator) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 2, 3, 4, 5, 6, 7:
		return n.DirectDeclarator.Pos()
	case 0, 1:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// ElifGroup represents data reduced by production:
//
//	ElifGroup:
//	        PPELIF PPTokenList '\n' GroupListOpt
type ElifGroup struct {
	GroupListOpt *GroupListOpt
	PPTokenList  PPTokenList
	Token        xc.Token
	Token2       xc.Token
}

func (n *ElifGroup) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ElifGroup) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ElifGroup) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// ElifGroupList represents data reduced by productions:
//
//	ElifGroupList:
//	        ElifGroup
//	|       ElifGroupList ElifGroup  // Case 1
type ElifGroupList struct {
	Case          int
	ElifGroup     *ElifGroup
	ElifGroupList *ElifGroupList
}

func (n *ElifGroupList) reverse() *ElifGroupList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.ElifGroupList
	for nb != nil {
		nc := nb.ElifGroupList
		nb.ElifGroupList = na
		na = nb
		nb = nc
	}
	n.ElifGroupList = nil
	return na
}

func (n *ElifGroupList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *ElifGroupList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ElifGroupList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.ElifGroup.Pos()
	case 1:
		return n.ElifGroupList.Pos()
	default:
		panic("internal error")
	}
}

// ElifGroupListOpt represents data reduced by productions:
//
//	ElifGroupListOpt:
//	        /* empty */
//	|       ElifGroupList  // Case 1
type ElifGroupListOpt struct {
	ElifGroupList *ElifGroupList
}

func (n *ElifGroupListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ElifGroupListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ElifGroupListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.ElifGroupList.Pos()
}

// ElseGroup represents data reduced by production:
//
//	ElseGroup:
//	        PPELSE '\n' GroupListOpt
type ElseGroup struct {
	GroupListOpt *GroupListOpt
	Token        xc.Token
	Token2       xc.Token
}

func (n *ElseGroup) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ElseGroup) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ElseGroup) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// ElseGroupOpt represents data reduced by productions:
//
//	ElseGroupOpt:
//	        /* empty */
//	|       ElseGroup    // Case 1
type ElseGroupOpt struct {
	ElseGroup *ElseGroup
}

func (n *ElseGroupOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ElseGroupOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ElseGroupOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.ElseGroup.Pos()
}

// EndifLine represents data reduced by production:
//
//	EndifLine:
//	        PPENDIF
type EndifLine struct {
	Token xc.Token
}

func (n *EndifLine) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *EndifLine) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *EndifLine) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// EnumSpecifier represents data reduced by productions:
//
//	EnumSpecifier:
//	        "enum" IdentifierOpt '{' EnumeratorList CommaOpt '}'
//	|       "enum" IDENTIFIER                                     // Case 1
type EnumSpecifier struct {
	unsigned       bool
	Case           int
	CommaOpt       *CommaOpt
	EnumeratorList *EnumeratorList
	IdentifierOpt  *IdentifierOpt
	Token          xc.Token
	Token2         xc.Token
	Token3         xc.Token
}

func (n *EnumSpecifier) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *EnumSpecifier) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *EnumSpecifier) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// EnumerationConstant represents data reduced by production:
//
//	EnumerationConstant:
//	        IDENTIFIER
type EnumerationConstant struct {
	Token xc.Token
}

func (n *EnumerationConstant) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *EnumerationConstant) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *EnumerationConstant) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// Enumerator represents data reduced by productions:
//
//	Enumerator:
//	        EnumerationConstant
//	|       EnumerationConstant '=' ConstantExpression  // Case 1
type Enumerator struct {
	Value               interface{} // Enumerator's value.
	Case                int
	ConstantExpression  *ConstantExpression
	EnumerationConstant *EnumerationConstant
	Token               xc.Token
}

func (n *Enumerator) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *Enumerator) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Enumerator) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.EnumerationConstant.Pos()
}

// EnumeratorList represents data reduced by productions:
//
//	EnumeratorList:
//	        Enumerator
//	|       EnumeratorList ',' Enumerator  // Case 1
type EnumeratorList struct {
	Case           int
	Enumerator     *Enumerator
	EnumeratorList *EnumeratorList
	Token          xc.Token
}

func (n *EnumeratorList) reverse() *EnumeratorList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.EnumeratorList
	for nb != nil {
		nc := nb.EnumeratorList
		nb.EnumeratorList = na
		na = nb
		nb = nc
	}
	n.EnumeratorList = nil
	return na
}

func (n *EnumeratorList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *EnumeratorList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *EnumeratorList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.Enumerator.Pos()
	case 1:
		return n.EnumeratorList.Pos()
	default:
		panic("internal error")
	}
}

// Expression represents data reduced by productions:
//
//	Expression:
//	        IDENTIFIER
//	|       CHARCONST                                          // Case 1
//	|       FLOATCONST                                         // Case 2
//	|       INTCONST                                           // Case 3
//	|       LONGCHARCONST                                      // Case 4
//	|       LONGSTRINGLITERAL                                  // Case 5
//	|       STRINGLITERAL                                      // Case 6
//	|       '(' ExpressionList ')'                             // Case 7
//	|       Expression '[' ExpressionList ']'                  // Case 8
//	|       Expression '(' ArgumentExpressionListOpt ')'       // Case 9
//	|       Expression '.' IDENTIFIER                          // Case 10
//	|       Expression "->" IDENTIFIER                         // Case 11
//	|       Expression "++"                                    // Case 12
//	|       Expression "--"                                    // Case 13
//	|       '(' TypeName ')' '{' InitializerList CommaOpt '}'  // Case 14
//	|       "++" Expression                                    // Case 15
//	|       "--" Expression                                    // Case 16
//	|       '&' Expression                                     // Case 17
//	|       '*' Expression                                     // Case 18
//	|       '+' Expression                                     // Case 19
//	|       '-' Expression                                     // Case 20
//	|       '~' Expression                                     // Case 21
//	|       '!' Expression                                     // Case 22
//	|       "sizeof" Expression                                // Case 23
//	|       "sizeof" '(' TypeName ')'                          // Case 24
//	|       '(' TypeName ')' Expression                        // Case 25
//	|       Expression '*' Expression                          // Case 26
//	|       Expression '/' Expression                          // Case 27
//	|       Expression '%' Expression                          // Case 28
//	|       Expression '+' Expression                          // Case 29
//	|       Expression '-' Expression                          // Case 30
//	|       Expression "<<" Expression                         // Case 31
//	|       Expression ">>" Expression                         // Case 32
//	|       Expression '<' Expression                          // Case 33
//	|       Expression '>' Expression                          // Case 34
//	|       Expression "<=" Expression                         // Case 35
//	|       Expression ">=" Expression                         // Case 36
//	|       Expression "==" Expression                         // Case 37
//	|       Expression "!=" Expression                         // Case 38
//	|       Expression '&' Expression                          // Case 39
//	|       Expression '^' Expression                          // Case 40
//	|       Expression '|' Expression                          // Case 41
//	|       Expression "&&" Expression                         // Case 42
//	|       Expression "||" Expression                         // Case 43
//	|       Expression '?' ExpressionList ':' Expression       // Case 44
//	|       Expression '=' Expression                          // Case 45
//	|       Expression "*=" Expression                         // Case 46
//	|       Expression "/=" Expression                         // Case 47
//	|       Expression "%=" Expression                         // Case 48
//	|       Expression "+=" Expression                         // Case 49
//	|       Expression "-=" Expression                         // Case 50
//	|       Expression "<<=" Expression                        // Case 51
//	|       Expression ">>=" Expression                        // Case 52
//	|       Expression "&=" Expression                         // Case 53
//	|       Expression "^=" Expression                         // Case 54
//	|       Expression "|=" Expression                         // Case 55
//	|       "_Alignof" '(' TypeName ')'                        // Case 56
//	|       '(' CompoundStatement ')'                          // Case 57
//	|       "&&" IDENTIFIER                                    // Case 58
//	|       Expression '?' ':' Expression                      // Case 59
type Expression struct {
	BinOpType                 Type        // The type operands of binary expression are coerced into, if different from Type.
	Type                      Type        // Type of expression.
	Value                     interface{} // Non nil for certain constant expressions.
	scope                     *Bindings   // Case 0: IDENTIFIER resolution scope.
	ArgumentExpressionListOpt *ArgumentExpressionListOpt
	Case                      int
	CommaOpt                  *CommaOpt
	CompoundStatement         *CompoundStatement
	Expression                *Expression
	Expression2               *Expression
	ExpressionList            *ExpressionList
	InitializerList           *InitializerList
	Token                     xc.Token
	Token2                    xc.Token
	Token3                    xc.Token
	Token4                    xc.Token
	TypeName                  *TypeName
}

func (n *Expression) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *Expression) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Expression) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 8, 9, 10, 11, 12, 13, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 59:
		return n.Expression.Pos()
	case 0, 1, 2, 3, 4, 5, 6, 7, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 56, 57, 58:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// ExpressionList represents data reduced by productions:
//
//	ExpressionList:
//	        Expression
//	|       ExpressionList ',' Expression  // Case 1
type ExpressionList struct {
	Type           Type        // Type of expression.
	Value          interface{} // Non nil for certain constant expressions.
	Case           int
	Expression     *Expression
	ExpressionList *ExpressionList
	Token          xc.Token
}

func (n *ExpressionList) reverse() *ExpressionList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.ExpressionList
	for nb != nil {
		nc := nb.ExpressionList
		nb.ExpressionList = na
		na = nb
		nb = nc
	}
	n.ExpressionList = nil
	return na
}

func (n *ExpressionList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *ExpressionList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ExpressionList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.Expression.Pos()
	case 1:
		return n.ExpressionList.Pos()
	default:
		panic("internal error")
	}
}

// ExpressionListOpt represents data reduced by productions:
//
//	ExpressionListOpt:
//	        /* empty */
//	|       ExpressionList  // Case 1
type ExpressionListOpt struct {
	ExpressionList *ExpressionList
}

func (n *ExpressionListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ExpressionListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ExpressionListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.ExpressionList.Pos()
}

// ExpressionOpt represents data reduced by productions:
//
//	ExpressionOpt:
//	        /* empty */
//	|       Expression   // Case 1
type ExpressionOpt struct {
	Expression *Expression
}

func (n *ExpressionOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ExpressionOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ExpressionOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Expression.Pos()
}

// ExpressionStatement represents data reduced by production:
//
//	ExpressionStatement:
//	        ExpressionListOpt ';'
type ExpressionStatement struct {
	ExpressionListOpt *ExpressionListOpt
	Token             xc.Token
}

func (n *ExpressionStatement) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ExpressionStatement) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ExpressionStatement) Pos() token.Pos {
	if n == nil {
		return 0
	}

	if p := n.ExpressionListOpt.Pos(); p != 0 {
		return p
	}

	return n.Token.Pos()
}

// ExternalDeclaration represents data reduced by productions:
//
//	ExternalDeclaration:
//	        FunctionDefinition
//	|       Declaration                  // Case 1
//	|       BasicAssemblerStatement ';'  // Case 2
//	|       ';'                          // Case 3
type ExternalDeclaration struct {
	BasicAssemblerStatement *BasicAssemblerStatement
	Case                    int
	Declaration             *Declaration
	FunctionDefinition      *FunctionDefinition
	Token                   xc.Token
}

func (n *ExternalDeclaration) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ExternalDeclaration) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ExternalDeclaration) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 2:
		return n.BasicAssemblerStatement.Pos()
	case 1:
		return n.Declaration.Pos()
	case 0:
		return n.FunctionDefinition.Pos()
	case 3:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// FunctionBody represents data reduced by productions:
//
//	FunctionBody:
//	        CompoundStatement
//	|       AssemblerStatement ';'  // Case 1
type FunctionBody struct {
	scope              *Bindings // Scope of the FunctionBody.
	AssemblerStatement *AssemblerStatement
	Case               int
	CompoundStatement  *CompoundStatement
	Token              xc.Token
}

func (n *FunctionBody) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *FunctionBody) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *FunctionBody) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 1:
		return n.AssemblerStatement.Pos()
	case 0:
		return n.CompoundStatement.Pos()
	default:
		panic("internal error")
	}
}

// FunctionDefinition represents data reduced by productions:
//
//	FunctionDefinition:
//	        DeclarationSpecifiers Declarator DeclarationListOpt FunctionBody
//	|       Declarator DeclarationListOpt FunctionBody                        // Case 1
type FunctionDefinition struct {
	Case                  int
	DeclarationListOpt    *DeclarationListOpt
	DeclarationSpecifiers *DeclarationSpecifiers
	Declarator            *Declarator
	FunctionBody          *FunctionBody
}

func (n *FunctionDefinition) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *FunctionDefinition) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *FunctionDefinition) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.DeclarationSpecifiers.Pos()
	case 1:
		return n.Declarator.Pos()
	default:
		panic("internal error")
	}
}

// FunctionSpecifier represents data reduced by productions:
//
//	FunctionSpecifier:
//	        "inline"
//	|       "_Noreturn"  // Case 1
type FunctionSpecifier struct {
	attr  int // tsInline, tsTypedefName, ...
	Case  int
	Token xc.Token
}

func (n *FunctionSpecifier) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *FunctionSpecifier) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *FunctionSpecifier) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// GroupList represents data reduced by productions:
//
//	GroupList:
//	        GroupPart
//	|       GroupList GroupPart  // Case 1
type GroupList struct {
	Case      int
	GroupList *GroupList
	GroupPart Node
}

func (n *GroupList) reverse() *GroupList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.GroupList
	for nb != nil {
		nc := nb.GroupList
		nb.GroupList = na
		na = nb
		nb = nc
	}
	n.GroupList = nil
	return na
}

func (n *GroupList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *GroupList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *GroupList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 1:
		return n.GroupList.Pos()
	case 0:
		return n.GroupPart.Pos()
	default:
		panic("internal error")
	}
}

// GroupListOpt represents data reduced by productions:
//
//	GroupListOpt:
//	        /* empty */
//	|       GroupList    // Case 1
type GroupListOpt struct {
	GroupList *GroupList
}

func (n *GroupListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *GroupListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *GroupListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.GroupList.Pos()
}

// IdentifierList represents data reduced by productions:
//
//	IdentifierList:
//	        IDENTIFIER
//	|       IdentifierList ',' IDENTIFIER  // Case 1
type IdentifierList struct {
	Case           int
	IdentifierList *IdentifierList
	Token          xc.Token
	Token2         xc.Token
}

func (n *IdentifierList) reverse() *IdentifierList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.IdentifierList
	for nb != nil {
		nc := nb.IdentifierList
		nb.IdentifierList = na
		na = nb
		nb = nc
	}
	n.IdentifierList = nil
	return na
}

func (n *IdentifierList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *IdentifierList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *IdentifierList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 1:
		return n.IdentifierList.Pos()
	case 0:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// IdentifierListOpt represents data reduced by productions:
//
//	IdentifierListOpt:
//	        /* empty */
//	|       IdentifierList  // Case 1
type IdentifierListOpt struct {
	params         []Parameter
	IdentifierList *IdentifierList
}

func (n *IdentifierListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *IdentifierListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *IdentifierListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.IdentifierList.Pos()
}

// IdentifierOpt represents data reduced by productions:
//
//	IdentifierOpt:
//	        /* empty */
//	|       IDENTIFIER   // Case 1
type IdentifierOpt struct {
	Token xc.Token
}

func (n *IdentifierOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *IdentifierOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *IdentifierOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// IfGroup represents data reduced by productions:
//
//	IfGroup:
//	        PPIF PPTokenList '\n' GroupListOpt
//	|       PPIFDEF IDENTIFIER '\n' GroupListOpt   // Case 1
//	|       PPIFNDEF IDENTIFIER '\n' GroupListOpt  // Case 2
type IfGroup struct {
	Case         int
	GroupListOpt *GroupListOpt
	PPTokenList  PPTokenList
	Token        xc.Token
	Token2       xc.Token
	Token3       xc.Token
}

func (n *IfGroup) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *IfGroup) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *IfGroup) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// IfSection represents data reduced by production:
//
//	IfSection:
//	        IfGroup ElifGroupListOpt ElseGroupOpt EndifLine
type IfSection struct {
	ElifGroupListOpt *ElifGroupListOpt
	ElseGroupOpt     *ElseGroupOpt
	EndifLine        *EndifLine
	IfGroup          *IfGroup
}

func (n *IfSection) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *IfSection) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *IfSection) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.IfGroup.Pos()
}

// InitDeclarator represents data reduced by productions:
//
//	InitDeclarator:
//	        Declarator
//	|       Declarator '=' Initializer  // Case 1
type InitDeclarator struct {
	Case        int
	Declarator  *Declarator
	Initializer *Initializer
	Token       xc.Token
}

func (n *InitDeclarator) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *InitDeclarator) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *InitDeclarator) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Declarator.Pos()
}

// InitDeclaratorList represents data reduced by productions:
//
//	InitDeclaratorList:
//	        InitDeclarator
//	|       InitDeclaratorList ',' InitDeclarator  // Case 1
type InitDeclaratorList struct {
	Case               int
	InitDeclarator     *InitDeclarator
	InitDeclaratorList *InitDeclaratorList
	Token              xc.Token
}

func (n *InitDeclaratorList) reverse() *InitDeclaratorList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.InitDeclaratorList
	for nb != nil {
		nc := nb.InitDeclaratorList
		nb.InitDeclaratorList = na
		na = nb
		nb = nc
	}
	n.InitDeclaratorList = nil
	return na
}

func (n *InitDeclaratorList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *InitDeclaratorList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *InitDeclaratorList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.InitDeclarator.Pos()
	case 1:
		return n.InitDeclaratorList.Pos()
	default:
		panic("internal error")
	}
}

// InitDeclaratorListOpt represents data reduced by productions:
//
//	InitDeclaratorListOpt:
//	        /* empty */
//	|       InitDeclaratorList  // Case 1
type InitDeclaratorListOpt struct {
	InitDeclaratorList *InitDeclaratorList
}

func (n *InitDeclaratorListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *InitDeclaratorListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *InitDeclaratorListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.InitDeclaratorList.Pos()
}

// Initializer represents data reduced by productions:
//
//	Initializer:
//	        Expression
//	|       '{' InitializerList CommaOpt '}'  // Case 1
//	|       IDENTIFIER ':' Initializer        // Case 2
type Initializer struct {
	Case            int
	CommaOpt        *CommaOpt
	Expression      *Expression
	Initializer     *Initializer
	InitializerList *InitializerList
	Token           xc.Token
	Token2          xc.Token
}

func (n *Initializer) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *Initializer) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Initializer) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.Expression.Pos()
	case 1, 2:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// InitializerList represents data reduced by productions:
//
//	InitializerList:
//	        DesignationOpt Initializer
//	|       InitializerList ',' DesignationOpt Initializer  // Case 1
//	|       /* empty */                                     // Case 2
type InitializerList struct {
	Case            int
	DesignationOpt  *DesignationOpt
	Initializer     *Initializer
	InitializerList *InitializerList
	Token           xc.Token
}

func (n *InitializerList) reverse() *InitializerList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.InitializerList
	for nb != nil {
		nc := nb.InitializerList
		nb.InitializerList = na
		na = nb
		nb = nc
	}
	n.InitializerList = nil
	return na
}

func (n *InitializerList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *InitializerList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *InitializerList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 2:
		return 0
	case 0:
		if p := n.DesignationOpt.Pos(); p != 0 {
			return p
		}

		return n.Initializer.Pos()
	case 1:
		if p := n.InitializerList.Pos(); p != 0 {
			return p
		}

		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// IterationStatement represents data reduced by productions:
//
//	IterationStatement:
//	        "while" '(' ExpressionList ')' Statement
//	|       "do" Statement "while" '(' ExpressionList ')' ';'                                      // Case 1
//	|       "for" '(' ExpressionListOpt ';' ExpressionListOpt ';' ExpressionListOpt ')' Statement  // Case 2
//	|       "for" '(' Declaration ExpressionListOpt ';' ExpressionListOpt ')' Statement            // Case 3
type IterationStatement struct {
	Case               int
	Declaration        *Declaration
	ExpressionList     *ExpressionList
	ExpressionListOpt  *ExpressionListOpt
	ExpressionListOpt2 *ExpressionListOpt
	ExpressionListOpt3 *ExpressionListOpt
	Statement          *Statement
	Token              xc.Token
	Token2             xc.Token
	Token3             xc.Token
	Token4             xc.Token
	Token5             xc.Token
}

func (n *IterationStatement) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *IterationStatement) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *IterationStatement) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// JumpStatement represents data reduced by productions:
//
//	JumpStatement:
//	        "goto" IDENTIFIER ';'
//	|       "continue" ';'                  // Case 1
//	|       "break" ';'                     // Case 2
//	|       "return" ExpressionListOpt ';'  // Case 3
//	|       "goto" Expression ';'           // Case 4
type JumpStatement struct {
	Case              int
	Expression        *Expression
	ExpressionListOpt *ExpressionListOpt
	Token             xc.Token
	Token2            xc.Token
	Token3            xc.Token
}

func (n *JumpStatement) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *JumpStatement) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *JumpStatement) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// LabeledStatement represents data reduced by productions:
//
//	LabeledStatement:
//	        IDENTIFIER ':' Statement
//	|       "case" ConstantExpression ':' Statement  // Case 1
//	|       "default" ':' Statement                  // Case 2
type LabeledStatement struct {
	Case               int
	ConstantExpression *ConstantExpression
	Statement          *Statement
	Token              xc.Token
	Token2             xc.Token
}

func (n *LabeledStatement) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *LabeledStatement) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *LabeledStatement) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// ParameterDeclaration represents data reduced by productions:
//
//	ParameterDeclaration:
//	        DeclarationSpecifiers Declarator
//	|       DeclarationSpecifiers AbstractDeclaratorOpt  // Case 1
type ParameterDeclaration struct {
	declarator            *Declarator
	AbstractDeclaratorOpt *AbstractDeclaratorOpt
	Case                  int
	DeclarationSpecifiers *DeclarationSpecifiers
	Declarator            *Declarator
}

func (n *ParameterDeclaration) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ParameterDeclaration) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ParameterDeclaration) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.DeclarationSpecifiers.Pos()
}

// ParameterList represents data reduced by productions:
//
//	ParameterList:
//	        ParameterDeclaration
//	|       ParameterList ',' ParameterDeclaration  // Case 1
type ParameterList struct {
	Case                 int
	ParameterDeclaration *ParameterDeclaration
	ParameterList        *ParameterList
	Token                xc.Token
}

func (n *ParameterList) reverse() *ParameterList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.ParameterList
	for nb != nil {
		nc := nb.ParameterList
		nb.ParameterList = na
		na = nb
		nb = nc
	}
	n.ParameterList = nil
	return na
}

func (n *ParameterList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *ParameterList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ParameterList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.ParameterDeclaration.Pos()
	case 1:
		return n.ParameterList.Pos()
	default:
		panic("internal error")
	}
}

// ParameterTypeList represents data reduced by productions:
//
//	ParameterTypeList:
//	        ParameterList
//	|       ParameterList ',' "..."  // Case 1
type ParameterTypeList struct {
	params        []Parameter
	Case          int
	ParameterList *ParameterList
	Token         xc.Token
	Token2        xc.Token
}

func (n *ParameterTypeList) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ParameterTypeList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ParameterTypeList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.ParameterList.Pos()
}

// ParameterTypeListOpt represents data reduced by productions:
//
//	ParameterTypeListOpt:
//	        /* empty */
//	|       ParameterTypeList  // Case 1
type ParameterTypeListOpt struct {
	ParameterTypeList *ParameterTypeList
}

func (n *ParameterTypeListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *ParameterTypeListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *ParameterTypeListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.ParameterTypeList.Pos()
}

// Pointer represents data reduced by productions:
//
//	Pointer:
//	        '*' TypeQualifierListOpt
//	|       '*' TypeQualifierListOpt Pointer  // Case 1
type Pointer struct {
	Case                 int
	Pointer              *Pointer
	Token                xc.Token
	TypeQualifierListOpt *TypeQualifierListOpt
}

func (n *Pointer) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *Pointer) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Pointer) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// PointerOpt represents data reduced by productions:
//
//	PointerOpt:
//	        /* empty */
//	|       Pointer      // Case 1
type PointerOpt struct {
	Pointer *Pointer
}

func (n *PointerOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *PointerOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *PointerOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Pointer.Pos()
}

// PreprocessingFile represents data reduced by production:
//
//	PreprocessingFile:
//	        GroupList
type PreprocessingFile struct {
	path      string
	GroupList *GroupList
}

func (n *PreprocessingFile) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *PreprocessingFile) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *PreprocessingFile) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.GroupList.Pos()
}

// SelectionStatement represents data reduced by productions:
//
//	SelectionStatement:
//	        "if" '(' ExpressionList ')' Statement
//	|       "if" '(' ExpressionList ')' Statement "else" Statement  // Case 1
//	|       "switch" '(' ExpressionList ')' Statement               // Case 2
type SelectionStatement struct {
	Case           int
	ExpressionList *ExpressionList
	Statement      *Statement
	Statement2     *Statement
	Token          xc.Token
	Token2         xc.Token
	Token3         xc.Token
	Token4         xc.Token
}

func (n *SelectionStatement) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *SelectionStatement) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *SelectionStatement) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// SpecifierQualifierList represents data reduced by productions:
//
//	SpecifierQualifierList:
//	        TypeSpecifier SpecifierQualifierListOpt
//	|       TypeQualifier SpecifierQualifierListOpt  // Case 1
type SpecifierQualifierList struct {
	attr                      int // tsInline, tsTypedefName, ...
	typeSpecifier             int // Encoded combination of tsVoid, tsInt, ...
	Case                      int
	SpecifierQualifierListOpt *SpecifierQualifierListOpt
	TypeQualifier             *TypeQualifier
	TypeSpecifier             *TypeSpecifier
}

func (n *SpecifierQualifierList) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *SpecifierQualifierList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *SpecifierQualifierList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 1:
		return n.TypeQualifier.Pos()
	case 0:
		return n.TypeSpecifier.Pos()
	default:
		panic("internal error")
	}
}

// SpecifierQualifierListOpt represents data reduced by productions:
//
//	SpecifierQualifierListOpt:
//	        /* empty */
//	|       SpecifierQualifierList  // Case 1
type SpecifierQualifierListOpt struct {
	attr                   int // tsInline, tsTypedefName, ...
	typeSpecifier          int // Encoded combination of tsVoid, tsInt, ...
	SpecifierQualifierList *SpecifierQualifierList
}

func (n *SpecifierQualifierListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *SpecifierQualifierListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *SpecifierQualifierListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.SpecifierQualifierList.Pos()
}

// Statement represents data reduced by productions:
//
//	Statement:
//	        LabeledStatement
//	|       CompoundStatement    // Case 1
//	|       ExpressionStatement  // Case 2
//	|       SelectionStatement   // Case 3
//	|       IterationStatement   // Case 4
//	|       JumpStatement        // Case 5
//	|       AssemblerStatement   // Case 6
type Statement struct {
	AssemblerStatement  *AssemblerStatement
	Case                int
	CompoundStatement   *CompoundStatement
	ExpressionStatement *ExpressionStatement
	IterationStatement  *IterationStatement
	JumpStatement       *JumpStatement
	LabeledStatement    *LabeledStatement
	SelectionStatement  *SelectionStatement
}

func (n *Statement) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *Statement) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *Statement) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 6:
		return n.AssemblerStatement.Pos()
	case 1:
		return n.CompoundStatement.Pos()
	case 2:
		return n.ExpressionStatement.Pos()
	case 4:
		return n.IterationStatement.Pos()
	case 5:
		return n.JumpStatement.Pos()
	case 0:
		return n.LabeledStatement.Pos()
	case 3:
		return n.SelectionStatement.Pos()
	default:
		panic("internal error")
	}
}

// StaticAssertDeclaration represents data reduced by production:
//
//	StaticAssertDeclaration:
//	        "_Static_assert" '(' ConstantExpression ',' STRINGLITERAL ')' ';'
type StaticAssertDeclaration struct {
	ConstantExpression *ConstantExpression
	Token              xc.Token
	Token2             xc.Token
	Token3             xc.Token
	Token4             xc.Token
	Token5             xc.Token
	Token6             xc.Token
}

func (n *StaticAssertDeclaration) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *StaticAssertDeclaration) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *StaticAssertDeclaration) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// StorageClassSpecifier represents data reduced by productions:
//
//	StorageClassSpecifier:
//	        "typedef"
//	|       "extern"    // Case 1
//	|       "static"    // Case 2
//	|       "auto"      // Case 3
//	|       "register"  // Case 4
type StorageClassSpecifier struct {
	attr  int
	Case  int
	Token xc.Token
}

func (n *StorageClassSpecifier) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *StorageClassSpecifier) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *StorageClassSpecifier) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// StructDeclaration represents data reduced by productions:
//
//	StructDeclaration:
//	        SpecifierQualifierList StructDeclaratorList ';'
//	|       SpecifierQualifierList ';'                       // Case 1
//	|       StaticAssertDeclaration                          // Case 2
type StructDeclaration struct {
	Case                    int
	SpecifierQualifierList  *SpecifierQualifierList
	StaticAssertDeclaration *StaticAssertDeclaration
	StructDeclaratorList    *StructDeclaratorList
	Token                   xc.Token
}

func (n *StructDeclaration) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *StructDeclaration) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *StructDeclaration) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0, 1:
		return n.SpecifierQualifierList.Pos()
	case 2:
		return n.StaticAssertDeclaration.Pos()
	default:
		panic("internal error")
	}
}

// StructDeclarationList represents data reduced by productions:
//
//	StructDeclarationList:
//	        StructDeclaration
//	|       StructDeclarationList StructDeclaration  // Case 1
type StructDeclarationList struct {
	Case                  int
	StructDeclaration     *StructDeclaration
	StructDeclarationList *StructDeclarationList
}

func (n *StructDeclarationList) reverse() *StructDeclarationList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.StructDeclarationList
	for nb != nil {
		nc := nb.StructDeclarationList
		nb.StructDeclarationList = na
		na = nb
		nb = nc
	}
	n.StructDeclarationList = nil
	return na
}

func (n *StructDeclarationList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *StructDeclarationList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *StructDeclarationList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.StructDeclaration.Pos()
	case 1:
		return n.StructDeclarationList.Pos()
	default:
		panic("internal error")
	}
}

// StructDeclarator represents data reduced by productions:
//
//	StructDeclarator:
//	        Declarator
//	|       DeclaratorOpt ':' ConstantExpression  // Case 1
type StructDeclarator struct {
	Case               int
	ConstantExpression *ConstantExpression
	Declarator         *Declarator
	DeclaratorOpt      *DeclaratorOpt
	Token              xc.Token
}

func (n *StructDeclarator) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *StructDeclarator) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *StructDeclarator) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.Declarator.Pos()
	case 1:
		if p := n.DeclaratorOpt.Pos(); p != 0 {
			return p
		}

		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// StructDeclaratorList represents data reduced by productions:
//
//	StructDeclaratorList:
//	        StructDeclarator
//	|       StructDeclaratorList ',' StructDeclarator  // Case 1
type StructDeclaratorList struct {
	Case                 int
	StructDeclarator     *StructDeclarator
	StructDeclaratorList *StructDeclaratorList
	Token                xc.Token
}

func (n *StructDeclaratorList) reverse() *StructDeclaratorList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.StructDeclaratorList
	for nb != nil {
		nc := nb.StructDeclaratorList
		nb.StructDeclaratorList = na
		na = nb
		nb = nc
	}
	n.StructDeclaratorList = nil
	return na
}

func (n *StructDeclaratorList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *StructDeclaratorList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *StructDeclaratorList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.StructDeclarator.Pos()
	case 1:
		return n.StructDeclaratorList.Pos()
	default:
		panic("internal error")
	}
}

// StructOrUnion represents data reduced by productions:
//
//	StructOrUnion:
//	        "struct"
//	|       "union"   // Case 1
type StructOrUnion struct {
	Case  int
	Token xc.Token
}

func (n *StructOrUnion) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *StructOrUnion) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *StructOrUnion) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// StructOrUnionSpecifier represents data reduced by productions:
//
//	StructOrUnionSpecifier:
//	        StructOrUnion IdentifierOpt '{' StructDeclarationList '}'
//	|       StructOrUnion IDENTIFIER                                   // Case 1
//	|       StructOrUnion IdentifierOpt '{' '}'                        // Case 2
type StructOrUnionSpecifier struct {
	alignOf               int
	declarator            *Declarator // Synthetic declarator when tagged struct/union defined inline.
	scope                 *Bindings
	sizeOf                int
	Case                  int
	IdentifierOpt         *IdentifierOpt
	StructDeclarationList *StructDeclarationList
	StructOrUnion         *StructOrUnion
	Token                 xc.Token
	Token2                xc.Token
}

func (n *StructOrUnionSpecifier) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *StructOrUnionSpecifier) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *StructOrUnionSpecifier) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.StructOrUnion.Pos()
}

// TranslationUnit represents data reduced by productions:
//
//	TranslationUnit:
//	        ExternalDeclaration
//	|       TranslationUnit ExternalDeclaration  // Case 1
type TranslationUnit struct {
	Comments            map[token.Pos]int // Position -> comment ID. Enable using the KeepComments option.
	Declarations        *Bindings
	Macros              map[int]*Macro // Ident ID -> preprocessor macro defined by ident.
	Model               *Model         // Model used to parse the TranslationUnit.
	Case                int
	ExternalDeclaration *ExternalDeclaration
	TranslationUnit     *TranslationUnit
}

func (n *TranslationUnit) reverse() *TranslationUnit {
	if n == nil {
		return nil
	}

	na := n
	nb := na.TranslationUnit
	for nb != nil {
		nc := nb.TranslationUnit
		nb.TranslationUnit = na
		na = nb
		nb = nc
	}
	n.TranslationUnit = nil
	return na
}

func (n *TranslationUnit) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *TranslationUnit) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *TranslationUnit) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.ExternalDeclaration.Pos()
	case 1:
		return n.TranslationUnit.Pos()
	default:
		panic("internal error")
	}
}

// TypeName represents data reduced by production:
//
//	TypeName:
//	        SpecifierQualifierList AbstractDeclaratorOpt
type TypeName struct {
	Type                   Type
	declarator             *Declarator
	scope                  *Bindings
	AbstractDeclaratorOpt  *AbstractDeclaratorOpt
	SpecifierQualifierList *SpecifierQualifierList
}

func (n *TypeName) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *TypeName) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *TypeName) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.SpecifierQualifierList.Pos()
}

// TypeQualifier represents data reduced by productions:
//
//	TypeQualifier:
//	        "const"
//	|       "restrict"  // Case 1
//	|       "volatile"  // Case 2
type TypeQualifier struct {
	attr  int // tsInline, tsTypedefName, ...
	Case  int
	Token xc.Token
}

func (n *TypeQualifier) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *TypeQualifier) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *TypeQualifier) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}

// TypeQualifierList represents data reduced by productions:
//
//	TypeQualifierList:
//	        TypeQualifier
//	|       TypeQualifierList TypeQualifier  // Case 1
type TypeQualifierList struct {
	attr              int // tsInline, tsTypedefName, ...
	Case              int
	TypeQualifier     *TypeQualifier
	TypeQualifierList *TypeQualifierList
}

func (n *TypeQualifierList) reverse() *TypeQualifierList {
	if n == nil {
		return nil
	}

	na := n
	nb := na.TypeQualifierList
	for nb != nil {
		nc := nb.TypeQualifierList
		nb.TypeQualifierList = na
		na = nb
		nb = nc
	}
	n.TypeQualifierList = nil
	return na
}

func (n *TypeQualifierList) fragment() interface{} { return n.reverse() }

// String implements fmt.Stringer.
func (n *TypeQualifierList) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *TypeQualifierList) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 0:
		return n.TypeQualifier.Pos()
	case 1:
		return n.TypeQualifierList.Pos()
	default:
		panic("internal error")
	}
}

// TypeQualifierListOpt represents data reduced by productions:
//
//	TypeQualifierListOpt:
//	        /* empty */
//	|       TypeQualifierList  // Case 1
type TypeQualifierListOpt struct {
	TypeQualifierList *TypeQualifierList
}

func (n *TypeQualifierListOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *TypeQualifierListOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *TypeQualifierListOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.TypeQualifierList.Pos()
}

// TypeSpecifier represents data reduced by productions:
//
//	TypeSpecifier:
//	        "void"
//	|       "char"                       // Case 1
//	|       "short"                      // Case 2
//	|       "int"                        // Case 3
//	|       "long"                       // Case 4
//	|       "float"                      // Case 5
//	|       "double"                     // Case 6
//	|       "signed"                     // Case 7
//	|       "unsigned"                   // Case 8
//	|       "_Bool"                      // Case 9
//	|       "_Complex"                   // Case 10
//	|       StructOrUnionSpecifier       // Case 11
//	|       EnumSpecifier                // Case 12
//	|       TYPEDEFNAME                  // Case 13
//	|       "typeof" '(' Expression ')'  // Case 14
//	|       "typeof" '(' TypeName ')'    // Case 15
type TypeSpecifier struct {
	scope                  *Bindings // If case TYPEDEFNAME.
	typeSpecifier          int       // Encoded combination of tsVoid, tsInt, ...
	Type                   Type      // Type of typeof.
	Case                   int
	EnumSpecifier          *EnumSpecifier
	Expression             *Expression
	StructOrUnionSpecifier *StructOrUnionSpecifier
	Token                  xc.Token
	Token2                 xc.Token
	Token3                 xc.Token
	TypeName               *TypeName
}

func (n *TypeSpecifier) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *TypeSpecifier) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *TypeSpecifier) Pos() token.Pos {
	if n == nil {
		return 0
	}

	switch n.Case {
	case 12:
		return n.EnumSpecifier.Pos()
	case 11:
		return n.StructOrUnionSpecifier.Pos()
	case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15:
		return n.Token.Pos()
	default:
		panic("internal error")
	}
}

// VolatileOpt represents data reduced by productions:
//
//	VolatileOpt:
//	        /* empty */
//	|       "volatile"   // Case 1
type VolatileOpt struct {
	Token xc.Token
}

func (n *VolatileOpt) fragment() interface{} { return n }

// String implements fmt.Stringer.
func (n *VolatileOpt) String() string {
	return PrettyString(n)
}

// Pos reports the position of the first component of n or zero if it's empty.
func (n *VolatileOpt) Pos() token.Pos {
	if n == nil {
		return 0
	}

	return n.Token.Pos()
}


================================================
FILE: ast2.go
================================================
// Copyright 2016 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 (
	"fmt"
	"go/token"
	"strconv"
	"strings"

	"github.com/cznic/golex/lex"
	"github.com/cznic/mathutil"
	"github.com/cznic/xc"
)

type operand interface {
	eval(*lexer) (value interface{}, typ Type)
	Node
}

// Node represents an AST node.
type Node interface {
	Pos() token.Pos
}

// ---------------------------------------------------------- CompoundStatement

// Scope returns n's scope.
func (n *CompoundStatement) Scope() *Bindings { return n.scope }

// ---------------------------------------------------------------- Declaration

// Declarator returns a synthetic Declarator when n.InitDeclaratorListOpt is
// nil.
func (n *Declaration) Declarator() *Declarator { return n.declarator }

// ------------------------------------------------------ DeclarationSpecifiers

// IsInline implements specifier.
func (n *DeclarationSpecifiers) IsInline() bool {
	return n.attr&saInline != 0
}

// IsTypedef implements specifier.
func (n *DeclarationSpecifiers) IsTypedef() bool {
	return n.attr&saTypedef != 0
}

// IsExtern implements specifier.
func (n *DeclarationSpecifiers) IsExtern() bool {
	return n.attr&saExtern != 0
}

// IsStatic implements specifier.
func (n *DeclarationSpecifiers) IsStatic() bool {
	return n.attr&saStatic != 0
}

// IsAuto implements specifier.
func (n *DeclarationSpecifiers) IsAuto() bool {
	return n.attr&saAuto != 0
}

// IsRegister implements specifier.
func (n *DeclarationSpecifiers) IsRegister() bool {
	return n.attr&saRegister != 0
}

// IsConst returns whether n includes the 'const' type qualifier.
func (n *DeclarationSpecifiers) IsConst() bool {
	return n.attr&saConst != 0
}

// IsRestrict implements specifier.
func (n *DeclarationSpecifiers) IsRestrict() bool {
	return n.attr&saRestrict != 0
}

// IsVolatile implements specifier.
func (n *DeclarationSpecifiers) IsVolatile() bool {
	return n.attr&saVolatile != 0
}

// kind implements specifier.
func (n *DeclarationSpecifiers) kind() Kind { return tsValid[n.typeSpecifiers()] }

// typeSpecifiers implements specifier.
func (n *DeclarationSpecifiers) typeSpecifiers() int {
	return n.typeSpecifier
}

// firstTypeSpecifier implements specifier.
func (n *DeclarationSpecifiers) firstTypeSpecifier() *TypeSpecifier {
	for n.Case != 1 { // TypeSpecifier DeclarationSpecifiersOpt
		o := n.DeclarationSpecifiersOpt
		if o == nil {
			return nil
		}

		n = o.DeclarationSpecifiers
	}
	return n.TypeSpecifier
}

// attrs implements specifier.
func (n *DeclarationSpecifiers) attrs() int { return n.attr }

// member implements specifier.
func (n *DeclarationSpecifiers) member(nm int) (*Member, error) {
	return n.firstTypeSpecifier().member(nm)
}

// str implements specifier.
func (n *DeclarationSpecifiers) str() string {
	return specifierString(n)
}

// TypedefName implements Specifier.
func (n *DeclarationSpecifiers) TypedefName() int {
	if n.kind() == TypedefName {
		return n.firstTypeSpecifier().Token.Val
	}
	return 0
}

// ----------------------------------------------------------------- Declarator

// Identifier returns the ID of the name declared by n and the scope the name
// is declared in.
func (n *Declarator) Identifier() (int, *Bindings) {
	dd := n.DirectDeclarator.bottom()
	if dd != nil {
		return dd.Token.Val, dd.DeclarationScope()
	}

	return 0, nil
}

// RawSpecifier returns the raw Specifier associated with n before expanding
// typedefs. The effective Specifier is accessible via the Type field of n.
func (n *Declarator) RawSpecifier() Specifier { return n.specifier }

func (n *Declarator) clone() *Declarator {
	m := *n
	return &m
}

func (n *Declarator) stars() int { return n.PointerOpt.stars() }

func (n *Declarator) isCompatible(m *Declarator) (r bool) {
	return n == m || n.Type.(*ctype).isCompatible(m.Type.(*ctype))
}

func (n *Declarator) unsigednEnum(lx *lexer, s Specifier) bool {
	switch x := s.(type) {
	case *DeclarationSpecifiers:
		o := x.DeclarationSpecifiersOpt
		if o == nil {
			return false
		}

		switch ds := o.DeclarationSpecifiers; ds.Case {
		case 1: // TypeSpecifier DeclarationSpecifiersOpt          // Case 1
			switch ts := ds.TypeSpecifier; ts.Case {
			case 12: // EnumSpecifier                // Case 12
				return ts.EnumSpecifier.isUnsigned(lx)
			}
		}
	case *SpecifierQualifierList:
		ts := x.TypeSpecifier
		if ts == nil {
			return false
		}

		switch ts.Case {
		case 12: // EnumSpecifier                // Case 12
			return ts.EnumSpecifier.isUnsigned(lx)
		}
	}
	return false
}

func (n *Declarator) setFull(lx *lexer) Type {
	d := n
	var dds0, dds []*DirectDeclarator
	for dd := d.DirectDeclarator; dd != nil; dd = dd.directDeclarator() {
		dds = append(dds, dd)
	}
	for i, j := 0, len(dds)-1; i < j; i, j = i+1, j-1 { // reverse
		dds[i], dds[j] = dds[j], dds[i]
	}

	resultAttr := 0
	mask := 0
	if d.specifier != nil {
		if d.specifier.IsTypedef() {
			dds0 = append([]*DirectDeclarator(nil), dds...)
		}
		if d.specifier.typeSpecifiers() == 0 && lx.tweaks.enableImplicitIntType {
			switch x := d.specifier.(type) {
			case *DeclarationSpecifiers:
				x.typeSpecifier = tsEncode(tsInt)
			default:
				panic(fmt.Errorf("%s: TODO %T", position(n.Pos()), x))
			}
		}
	}
loop0:
	for d.specifier != nil {
		switch d.specifier.kind() {
		case TypedefName:
			resultAttr |= d.specifier.attrs()
			ts := d.specifier.firstTypeSpecifier()
			dd := ts.scope.Lookup(NSIdentifiers, ts.Token.Val).Node.(*DirectDeclarator) // eg. typedef T dd, (*dd), dd(int), ...
			if dd.Case != 0 {                                                           // IDENTIFIER
				panic("internal error")
			}

			nd := dd.top().declarator
			mask = saTypedef // nd.specifier.IsTypedef() == true
			dds2 := nd.Type.(*ctype).dds0
			d2 := d.clone()
			d2.specifier = nil
			dd2 := &DirectDeclarator{
				Case:       1, //  '(' Declarator ')'
				Declarator: d2,
			}
			dds = append(dds, dd2)
			dds = append(dds, dds2[1:]...)
			d = nd
		case typeof:
			resultAttr |= d.specifier.attrs()
			ts := d.specifier.firstTypeSpecifier()
			nd := ts.Type.Declarator()
			dds2 := ts.Type.(*ctype).dds0
			d2 := d.clone()
			d2.specifier = nil
			dd2 := &DirectDeclarator{
				Case:       1, //  '(' Declarator ')'
				Declarator: d2,
			}
			dds = append(dds, dd2)
			dds = append(dds, dds2...)
			d = nd
		default:
			break loop0
		}
	}

	// Inner ((...)) -> (...)
	for {
		changed := false
		w := 0
		for r := 0; r < len(dds); {
			dd := dds[r]
			if r == len(dds)-1 || dd.Case != 1 { // '(' Declarator ')'
				dds[w] = dd
				w++
				r++
				continue
			}

			dd2 := dds[r+1]
			if dd2.Case != 1 {
				dds[w] = dd
				w++
				r++
				continue
			}

			d := dd.Declarator
			d2 := dd2.Declarator
			switch s, s2 := d.stars(), d2.stars(); {
			case s == 0 && s2 == 0:
				dds[w] = dd
				w++
				r += 2
				changed = true
			case s == 0 && s2 != 0:
				dds[w] = dd2
				w++
				r += 2
				changed = true
			case s != 0 && s2 == 0:
				dds[w] = dd
				w++
				r += 2
				changed = true
			case s != 0 && s2 != 0:
				d2 := d2.clone()
				var p *Pointer
				for i := 0; i < s+s2; i++ {
					p = &Pointer{Pointer: p}
				}
				d2.PointerOpt = &PointerOpt{Pointer: p}
				dd2 := dd2.clone()
				dd2.Declarator = d2
				dds[w] = dd2
				w++
				r += 2
				changed = true
			}

		}
		dds = dds[:w]
		if !changed {
			break
		}
	}

	// Outer (...) -> ...
	for {
		i := len(dds) - 1
		if dd := dds[i]; dd.Case == 1 /* '(' Declarator ')' */ && dd.Declarator.stars() == 0 {
			dds = dds[:i:i]
			continue
		}

		break
	}
	resultStars := 0
	i := len(dds) - 1
	if dd := dds[i]; dd.Case == 1 /* '(' Declarator ')' */ {
		resultStars = dd.Declarator.stars()
		dds = dds[:i:i]
	}

	stars := 0
	resultStars += d.stars()
	switch {
	case len(dds) == 1:
		if dds[0].Case != 0 { // IDENTIFIER
			panic("internal error")
		}

		stars, resultStars = resultStars, 0
	default:
	again:
		i := 1
	loop:
		for {
			switch dd := dds[i]; dd.Case {
			case 1: // '(' Declarator ')'
				if dds[i-1].Case == 0 { // IDENTIFIER
					stars = dd.Declarator.stars()
					if stars == 0 {
						copy(dds[i:], dds[i+1:])
						dds = dds[:len(dds)-1 : len(dds)-1]
						goto again
					}
				} else {
					//dbg("", resultStars, stars, d.specifier.str(), ddsStr(dds))
					panic("TODO")
				}
				i++
			case
				2, // DirectDeclarator '[' TypeQualifierListOpt ExpressionOpt ']'
				6, // DirectDeclarator '(' ParameterTypeList ')'
				7: // DirectDeclarator '(' IdentifierListOpt ')'
				break loop
			default:
				//dbg("", position(n.Pos()), resultStars, stars, d.specifier.str(), ddsStr(dds))
				panic(dd.Case)
			}
		}
	}

	resultSpecifier := d.specifier
	resultAttr |= resultSpecifier.attrs()
	resultAttr &^= mask
	t := &ctype{
		dds0:            dds0,
		dds:             dds,
		model:           lx.model,
		resultAttr:      resultAttr,
		resultSpecifier: resultSpecifier,
		resultStars:     resultStars,
		stars:           stars,
	}
	//fmt.Printf("%s: 343\n%s", position(d.Pos()), PrettyString(resultSpecifier))
	if lx.tweaks.enableUnsignedEnums && n.unsigednEnum(lx, resultSpecifier) {
		t.resultSpecifier = &spec{resultAttr, tsEncode(tsUnsigned)}
	}
	n.Type = t
	//dbg("@@@@ %v: %s", position(n.Pos()), t.dds[0].Token.S())
	//dbg("setFull %v: %v, %v %v", t, t.Kind(), t.resultStars, t.stars)
	//dbg("", t.str())
	//dbg("----> %v", t)

	if lx.scope == nil {
		return t
	}

	// Determine linkage

	dd := dds[0]
	scs := resultAttr & (saTypedef | saExtern | saStatic | saAuto | saRegister)
	sk := lx.scope.kind
	var prev, prevVisible *Declarator
	var prevVisibleBinding *Binding
	id := dd.Token.Val
	if p := lx.scope.Parent; p != nil {
		b := p.Lookup(NSIdentifiers, id)
		if dd, ok := b.Node.(*DirectDeclarator); ok {
			prevVisible = dd.TopDeclarator()
			prevVisibleBinding = &b
		}
	}
	if b := dd.prev; b != nil {
		prev = b.Node.(*DirectDeclarator).TopDeclarator()
	}

	switch {
	case
		// [0]6.2.2, 6: The following identifiers have no linkage: an
		// identifier declared to be anything other than an object or a
		// function; an identifier declared to be a function parameter;
		// a block scope identifier for an object declared without the
		// storage-class specifier extern.
		resultAttr&saTypedef != 0,
		sk == ScopeParams,
		(sk == ScopeBlock || sk == ScopeMembers) && resultAttr&saExtern == 0:

		n.Linkage = None
	case
		// [0]6.2.2, 3: If the declaration of a file scope identifier
		// for an object or a function contains the storage-class
		// specifier static, the identifier has internal linkage.
		sk == ScopeFile && resultAttr&saStatic != 0:

		n.Linkage = Internal
	case
		// [0]6.2.2, 4: For an identifier declared with the
		// storage-class specifier extern in a scope in which a prior
		// declaration of that identifier is visible, if the prior
		// declaration specifies internal or external linkage, the
		// linkage of the identifier at the later declaration is the
		// same as the linkage specified at the prior declaration.

		resultAttr&saExtern != 0 &&
			(prev != nil && (prev.Linkage == Internal || prev.Linkage == External) ||
				prevVisible != nil && (prevVisible.Linkage == Internal || prevVisible.Linkage == External)):
		switch {
		case prev != nil && (prev.Linkage == Internal || prev.Linkage == External):
			n.Linkage = prev.Linkage
		default:
			n.Linkage = prevVisible.Linkage
			dd.visible = prevVisibleBinding
		}
	case
		// [0]6.2.2, 4: If no prior declaration is visible, or if the
		// prior declaration specifies no linkage, then the identifier
		// has external linkage.
		resultAttr&saExtern != 0 && (prev == nil || prev.Linkage == None):

		n.Linkage = External
	case
		// [0]6.2.2, 5: If the declaration of an identifier for a
		// function has no storage-class specifier, its linkage is
		// determined exactly as if it were declared with the
		// storage-class specifier extern.
		t.Kind() == Function && scs == 0,
		// [0]6.2.2, 5: If the declaration of an identifier for an
		// object has file scope and no storage-class specifier, its
		// linkage is external.
		t.Kind() != Function && sk == ScopeFile && scs == 0:

		n.Linkage = External
	}

	if isGenerating || id == 0 {
		//dbg("setFull done (A)(%p): %s: %s\n%v", lx.scope, position(n.Pos()), n, resultSpecifier)
		return t
	}

	if prev != nil && prev.specifier.IsTypedef() != n.specifier.IsTypedef() {
		lx.report.Err(n.Pos(),
			"redeclaration of %s as different kind of symbol, previous declaration at %v",
			xc.Dict.S(id), position(prev.Pos()))
		return t
	}

	switch n.Linkage {
	case External:
		// [0]6.2.2, 2: In the set of translation units and libraries
		// that constitutes an entire program, each declaration of a
		// particular identifier with external linkage denotes the same
		// object or function.
		if prev, ok := lx.externs[id]; ok && !n.isCompatible(prev) {
			t, isA := compositeType(prev.Type, n.Type)
			if t == nil {
				lx.report.Err(n.Pos(),
					"conflicting types for %s '%s' with external linkage, previous declaration at %s '%s'",
					xc.Dict.S(id), n.Type, position(prev.Pos()), prev.Type)
				break
			}

			if !isA {
				dd.prev.Node = n.DirectDeclarator.bottom()
			}
		}

		lx.externs[id] = n
	case Internal:
		// [0]6.2.2, 2: Within one translation unit, each declaration
		// of an identifier with internal linkage denotes the same
		// object or function.
		if prev != nil && !n.isCompatible(prev) {
			t, isA := compositeType(prev.Type, n.Type)
			if t == nil {
				lx.report.Err(n.Pos(),
					"conflicting types for %s '%s' with internal linkage, previous declaration at %s '%s'",
					xc.Dict.S(id), n.Type, position(prev.Pos()), prev.Type)
				break
			}

			if !isA {
				dd.prev.Node = n.DirectDeclarator.bottom()
			}
		}
	case None:
		// [0]6.2.2, 2: Each declaration of an identifier with no
		// linkage denotes a unique entity.
		if prev != nil {
			if lx.tweaks.allowCompatibleTypedefRedefinitions &&
				n.RawSpecifier().IsTypedef() && prev.RawSpecifier().IsTypedef() &&
				strings.TrimPrefix(n.Type.String(), "typedef ") == strings.TrimPrefix(prev.Type.String(), "typedef ") {
				break
			}

			lx.report.Err(n.Pos(),
				"redeclaration of %s '%s' with no linkage, previous declaration at %v '%s'",
				xc.Dict.S(id), n.Type, position(prev.Pos()), prev.Type)
		}
	default:
		panic("internal error")
	}

	//dbg("setFull done: %s: %s", position(n.Pos()), n)
	return t
}

// ----------------------------------------------------------- DeclaratorOpt
func (n *DeclaratorOpt) isCompatible(m *DeclaratorOpt) bool {
	return n == m || (n != nil && m != nil && n.Declarator.isCompatible(m.Declarator))
}

// ----------------------------------------------------------- DirectDeclarator

// DeclarationScope returns the scope a name declared by n is in. If n does not
// declare a name or n declares a name of a built in type, DeclarationScope
// returns nil.
func (n *DirectDeclarator) DeclarationScope() *Bindings {
	return n.idScope
}

// TopDeclarator returns the top level Declarator associated with n.
func (n *DirectDeclarator) TopDeclarator() *Declarator {
	return n.top().declarator
}

func (n *DirectDeclarator) top() *DirectDeclarator {
	for n.parent != nil {
		n = n.parent
	}
	return n
}

func (n *DirectDeclarator) bottom() *DirectDeclarator {
	for n.Case != 0 { // IDENTIFIER
		n = n.directDeclarator()
	}
	return n
}

func (n *DirectDeclarator) clone() *DirectDeclarator {
	m := *n
	return &m
}

func (n *DirectDeclarator) isCompatible(m *DirectDeclarator) (r bool) {
	if n == m {
		return true
	}

	if n.Case > m.Case {
		n, m = m, n
	}

	if n.Case != m.Case {
		if n.Case == 6 && m.Case == 7 {
			var b []Parameter
			if o := m.IdentifierListOpt; o != nil {
				b = o.params
			}
			return isCompatibleParameters(
				n.ParameterTypeList.params,
				b,
				n.ParameterTypeList.Case == 1, // ParameterList ',' "..."
				false,
			)
		}
	}

	switch n.Case {
	case 0: // IDENTIFIER
		return true
	case 1: // '(' Declarator ')'
		return true // Declarator checked before
	case 2: // DirectDeclarator '[' TypeQualifierListOpt ExpressionOpt ']'
		// [0]6.7.5.3 6: For two array types to be compatible, both
		// shall have compatible element types, and if both size
		// specifiers are present, and are integer constant
		// expressions, then both size specifiers shall have the same
		// constant value. If the two array types are used in a context
		// which requires them to be compatible, it is undefined
		// behavior if the two size specifiers evaluate to unequal
		// values.
		var nv, mv interface{}
		if o := n.ExpressionOpt; o != nil {
			nv = o.Expression.Value
		}
		if o := m.ExpressionOpt; o != nil {
			mv = o.Expression.Value
		}
		if nv != nil && mv != nil && nv != mv {
			return false
		}

		return true
	case 6: // DirectDeclarator '(' ParameterTypeList ')'
		return isCompatibleParameters(
			n.ParameterTypeList.params,
			m.ParameterTypeList.params,
			n.ParameterTypeList.Case == 1, // ParameterList ',' "..."
			m.ParameterTypeList.Case == 1, // ParameterList ',' "..."
		)
	case 7: // DirectDeclarator '(' IdentifierListOpt ')'
		var a, b []Parameter
		if o := n.IdentifierListOpt; o != nil {
			a = o.params
		}
		if o := m.IdentifierListOpt; o != nil {
			b = o.params
		}

		return isCompatibleParameters(a, b, false, false)
	default:
		panic(n.Case)
	}
}

func (n *DirectDeclarator) directDeclarator() *DirectDeclarator {
	switch n.Case {
	case 0: // IDENTIFIER
		return nil
	case 1: // '(' Declarator ')'
		return n.Declarator.DirectDeclarator
	case
		2, // DirectDeclarator '[' TypeQualifierListOpt ExpressionOpt ']'
		3, // DirectDeclarator '[' "static" TypeQualifierListOpt Expression ']'
		4, // DirectDeclarator '[' TypeQualifierList "static" Expression ']'
		5, // DirectDeclarator '[' TypeQualifierListOpt '*' ']'
		6, // DirectDeclarator '(' ParameterTypeList ')'
		7: // DirectDeclarator '(' IdentifierListOpt ')'
		return n.DirectDeclarator
	default:
		panic(n.Case)
	}
}

func (n *DirectDeclarator) isArray() bool {
	switch n.Case {
	case
		0, // IDENTIFIER
		1, // '(' Declarator ')'                                                 // Case 1
		6, // DirectDeclarator '(' ParameterTypeList ')'                         // Case 6
		7: // DirectDeclarator '(' IdentifierListOpt ')'                         // Case 7
		return false
	case
		2, // DirectDeclarator '[' TypeQualifierListOpt ExpressionOpt ']'        // Case 2
		3, // DirectDeclarator '[' "static" TypeQualifierListOpt Expression ']'  // Case 3
		4, // DirectDeclarator '[' TypeQualifierList "static" Expression ']'     // Case 4
		5: // DirectDeclarator '[' TypeQualifierListOpt '*' ']'                  // Case 5
		return true
	default:
		panic(n.Case)
	}
}

func (n *DirectDeclarator) isVLA() *Expression {
	switch dd := n.DirectDeclarator; dd.Case {
	case 0: // IDENTIFIER
		return nil
	case 1: // '(' Declarator ')'                                                 // Case 1
		//dbg("", n.TopDeclarator().Type, n.TopDeclarator().Type.Element(), n.TopDeclarator().Type.Element().Elements())
		d := n.TopDeclarator()
		if d.Type.Kind() == Ptr && d.Type.Element().Elements() >= 0 {
			return nil
		}

		panic("TODO")
	case 2: // DirectDeclarator '[' TypeQualifierListOpt ExpressionOpt ']'        // Case 2
		o := n.ExpressionOpt
		if o == nil || o.Expression.Value != nil {
			return nil
		}

		return o.Expression
	case 3: // DirectDeclarator '[' "static" TypeQualifierListOpt Expression ']'  // Case 3
		panic("TODO")
	case 4: // DirectDeclarator '[' TypeQualifierList "static" Expression ']'     // Case 4
		panic("TODO")
	case 5: // DirectDeclarator '[' TypeQualifierListOpt '*' ']'                  // Case 5
		panic("TODO")
	case 6: // DirectDeclarator '(' ParameterTypeList ')'                         // Case 6
		return nil
	case 7: // DirectDeclarator '(' IdentifierListOpt ')'                         // Case 7
		panic("TODO")
	default:
		panic("internal error")
	}
}

// -------------------------------------------------------------  EnumSpecifier

func (n *EnumSpecifier) isUnsigned(lx *lexer) bool {
	switch n.Case {
	case 0: // "enum" IdentifierOpt '{' EnumeratorList CommaOpt '}'
		return n.unsigned
	case 1: // "enum" IDENTIFIER                                     // Case 1
		switch b := lx.scope.Lookup(NSTags, n.Token2.Val); x := b.Node.(type) {
		case *EnumSpecifier:
			switch n := x; n.Case {
			case 0: // "enum" IdentifierOpt '{' EnumeratorList CommaOpt '}'
				return n.unsigned
			}
		}
	}
	return false
}

// ----------------------------------------------------------------- Expression

func (n *Expression) cond(lx *lexer, op operand) {
	m := lx.model
	lv, _ := n.Expression.eval(lx)
	if lv == nil {
		_, at := op.eval(lx)
		_, bt := n.Expression2.eval(lx)
		if eqTypes(at, bt) {
			n.Type = at
			return
		}

		if IsArithmeticType(at) && IsArithmeticType(bt) {
			n.Type = m.BinOpType(at, bt)
			return
		}

		ak := at.Kind()
		bk := bt.Kind()

		if ak == Function && bk == Ptr {
			if e := bt.Element(); e.Kind() == Function && eqTypes(at, e) {
				n.Type = bt
				return
			}
		}

		if bk == Function && ak == Ptr {
			if e := at.Element(); e.Kind() == Function && eqTypes(bt, e) {
				n.Type = at
				return
			}
		}

		if (ak == Enum || ak == Bool) && IsIntType(bt) {
			n.Type = at
			return
		}

		if (bk == Enum || bk == Bool) && IsIntType(at) {
			n.Type = bt
			return
		}

		if ak == Struct && bk == Struct ||
			ak == Union && bk == Union {
			if at.CanAssignTo(bt) {
				n.Type = at
				return
			}
		}

		if ak == Void && bk == Void {
			n.Type = at
			return
		}

		if ak == Array && bk == Array {
			if at.(*ctype).isCompatible(bt.(*ctype)) {
				n.Type = at
				return
			}

			at = at.(*ctype).arrayDecay()
			ak = at.Kind()
			bt = bt.(*ctype).arrayDecay()
			bk = bt.Kind()
		}

		if ak == Array && bk == Ptr && at.CanAssignTo(bt) {
			n.Type = bt
			return
		}

		if ak == Ptr && bk == Array && bt.CanAssignTo(at) {
			n.Type = at
			return
		}

		if ak == Ptr && bk == Ptr {
			if at.CanAssignTo(bt) {
				n.Type = at
				return
			}
		}

		if (ak == Ptr || ak == Array || ak == Function) && IsIntType(bt) {
			n.Type = at
			return
		}

		if (bk == Ptr || bk == Array || bk == Function) && IsIntType(at) {
			n.Type = bt
			return
		}

		if ak == Ptr && at.Element().Kind() == Void && bk == Ptr {
			n.Type = bt
			return
		}

		if bk == Ptr && bt.Element().Kind() == Void && ak == Ptr {
			n.Type = at
			return
		}

		lx.report.ErrTok(n.Token2, "'%s'/'%s' mismatch in conditional expression", at, bt)
		return
	}

	if isNonZero(lv) {
		n.Value, n.Type = op.eval(lx)
		return
	}

	n.Value, n.Type = n.Expression2.eval(lx)
}

func (n *Expression) eval(lx *lexer) (interface{}, Type) {
	m := lx.model
	if n.Type != nil {
		return n.Value, n.Type
	}

	n.Type = undefined
outer:
	switch n.Case {
	case 0: // IDENTIFIER
		b := n.scope.Lookup(NSIdentifiers, n.Token.Val)
		if b.Node == nil {
			lx.report.ErrTok(n.Token, "undefined: %s", n.Token.S())
			break
		}

		dd := b.Node.(*DirectDeclarator)
		t := dd.top().declarator.Type
		if (t.Kind() == Ptr || t.Kind() == Array) && n.Type.Elements() == -1 {
			found := false
			dd := dd
		more:
			for dd.prev != nil {
				dd = dd.prev.Node.(*DirectDeclarator)
				if t2 := dd.TopDeclarator().Type; t2.Elements() >= 0 {
					t = t2
					found = true
					break
				}
			}
			if !found && dd.visible != nil {
				dd = dd.visible.Node.(*DirectDeclarator)
				if t2 := dd.TopDeclarator().Type; t2.Elements() >= 0 {
					t = t2
				} else {
					goto more
				}
			}
		}
		n.Type = t
		if v := dd.EnumVal; v != nil {
			n.Value = v
		}
	case 1: // CHARCONST
		n.Value, n.Type = m.charConst(lx, n.Token)
	case 2: // FLOATCONST
		n.Value, n.Type = m.floatConst(lx, n.Token)
	case 3: // INTCONST
		n.Value, n.Type = m.intConst(lx, n.Token)
	case 4: // LONGCHARCONST
		n.Value, n.Type = m.charConst(lx, n.Token)
	case 5: // LONGSTRINGLITERAL
		n.Value, n.Type = m.strConst(lx, n.Token)
	case 6: // STRINGLITERAL
		n.Value, n.Type = m.strConst(lx, n.Token)
	case 7: //  '(' ExpressionList ')'
		n.Value, n.Type = n.ExpressionList.eval(lx)
	case 8: // Expression '[' ExpressionList ']'
		_, t := n.Expression.eval(lx)
		_, t2 := n.ExpressionList.eval(lx)
		switch t.Kind() {
		case Ptr, Array:
			n.Type = t.Element()
			if !IsIntType(t2) && t2.Kind() != Bool {
				lx.report.Err(n.ExpressionList.Pos(), "array subscript is not an integer or bool (have '%s')", t2)
				break
			}

			if p, x := n.Expression.Value, n.ExpressionList.Value; p != nil && x != nil {
				sz := uintptr(n.Type.SizeOf())
				switch pv := p.(type) {
				case uintptr:
					switch xv := x.(type) {
					case int32:
						pv += sz * uintptr(xv)
					case uint32:
						pv += sz * uintptr(xv)
					case int64:
						pv += sz * uintptr(xv)
					case uint64:
						pv += sz * uintptr(xv)
					case uintptr:
						pv += sz * xv
					default:
						panic("TODO")
					}
					n.Value = pv
				case StringLitID, LongStringLitID:
					// ok, but not a constant expression.
				default:
					panic("internal error")
				}
			}
			break outer
		}

		if !IsIntType(t) && t.Kind() != Bool || t2.Kind() != Ptr && t2.Kind() != Array {
			lx.report.ErrTok(n.Token, "invalid index expression types (%s[%t])", t, n.ExpressionList.Type)
			break
		}

		n.Type = t2.Element()
		if p, x := n.ExpressionList.Value, n.Expression.Value; p != nil && x != nil {
			panic(fmt.Errorf("%s: TODO", position(n.Pos())))
		}
	case 9: // Expression '(' ArgumentExpressionListOpt ')'
		if n.Expression.Case == 0 { // IDENTIFIER
			if lx.tweaks.enableBuiltinConstantP && n.Expression.Token.Val == idBuiltinConstantP {
				o := n.ArgumentExpressionListOpt
				if o == nil {
					lx.report.Err(n.Expression.Pos(), "missing argument of __builtin_constant_p")
					break
				}

				args := o.ArgumentExpressionList
				if args.ArgumentExpressionList != nil {
					lx.report.Err(n.Expression.Pos(), "too many arguments of __builtin_constant_p")
					break
				}

				n.Case = 3 // INTCONST
				n.Type = lx.model.IntType
				switch v, _ := args.Expression.eval(lx); {
				case v != nil:
					n.Value = int32(1)
				default:
					n.Value = int32(0)
				}
				break
			}

			if lx.tweaks.enableBuiltinClassifyType && n.Expression.Token.Val == idBuiltinClasifyType {
				o := n.ArgumentExpressionListOpt
				if o == nil {
					lx.report.Err(n.Expression.Pos(), "missing argument of __builtin_classify_type")
					break
				}

				args := o.ArgumentExpressionList
				if args.ArgumentExpressionList != nil {
					lx.report.Err(n.Expression.Pos(), "too many arguments of __builtin_classify_type")
					break
				}

				n.Case = 3 // INTCONST
				n.Type = lx.model.IntType
				v := noTypeClass
				if _, t := args.Expression.eval(lx); t != nil {
					v = classifyType[t.Kind()]
				}
				n.Value = int32(v)
				break
			}

			if n.Expression.Token.Val == idBuiltinTypesCompatible {
				// using #define __builtin_types_compatible_p(type1, type2) __builtin_types_compatible__((type1){}, (type2){})
				o := n.ArgumentExpressionListOpt
				if o == nil {
					lx.report.Err(n.Expression.Pos(), "missing arguments of __builtin_types_compatible_p")
					break
				}

				args := o.ArgumentExpressionList
				arg1 := args.Expression
				if arg1.Case != 14 { // '(' TypeName ')' '{' InitializerList CommaOpt '}'
					lx.report.Err(arg1.Pos(), "invalid argument of __builtin_types_compatible__")
					break
				}

				args = args.ArgumentExpressionList
				if args == nil {
					lx.report.Err(n.Expression.Pos(), "missing argument of __builtin_types_compatible_p")
					break
				}

				arg2 := args.Expression
				if arg2.Case != 14 { // '(' TypeName ')' '{' InitializerList CommaOpt '}'
					lx.report.Err(arg1.Pos(), "invalid argument of __builtin_types_compatible__")
					break
				}

				if args.ArgumentExpressionList != nil {
					lx.report.Err(n.Expression.Pos(), "too many arguments of __builtin_types_compatible_p")
					break
				}

				t := arg1.Type
				u := arg2.Type
				var v int32
				if !isEnum(arg1.TypeName, arg2.TypeName) && t.(*ctype).isCompatible(u.(*ctype)) {
					v = 1
					if t.Kind() == Ptr && u.Kind() == Ptr && t.Specifier().IsConst() != u.Specifier().IsConst() {
						v = 0
					}
				}
				n.Type = lx.model.IntType
				n.Value = v
				break
			}

			b := n.Expression.scope.Lookup(NSIdentifiers, n.Expression.Token.Val)
			if b.Node == nil && lx.tweaks.enableImplicitFuncDef {
				n.Type = lx.model.IntType
				break
			}
		}

		_, t := n.Expression.eval(lx)
		if t.Kind() == Ptr {
			t = t.Element()
		}
		if t.Kind() != Function {
			lx.report.Err(n.Expression.Pos(), "called object is not a function or function pointer (have '%s')", t)
			break
		}

		n.Type = t.Result()
		params, isVariadic := t.Parameters()
		if params == nil {
			break // [0], 6.5.2.2/8
		}

		var args []*Expression
		var types []Type
		if o := n.ArgumentExpressionListOpt; o != nil {
			for l := o.ArgumentExpressionList; l != nil; l = l.ArgumentExpressionList {
				ex := l.Expression
				args = append(args, ex)
				_, t := ex.eval(lx)
				types = append(types, t)
			}
		}

		if g, e := len(args), len(params); g < e {
			lx.report.ErrTok(n.Token, "too few arguments to function (have %v, want %v)", g, e)
			break
		}

		if !isVariadic {
			if len(args) > len(params) && len(params) != 0 /* composite type */ {
				lx.report.Err(n.ArgumentExpressionListOpt.Pos(), "too many arguments to function")
				break
			}
		}

		for i, param := range params {
			pt := param.Type
			if pt.Kind() == Array {
				pt = pt.(*ctype).arrayDecay()
			}
			typ := types[i]
			if pt.Kind() == Function && typ.Kind() == Ptr && typ.Element().Kind() == Function {
				typ = typ.Element()
			}
			if !typ.CanAssignTo(pt) {
				lx.report.Err(args[i].Pos(), "expected '%s' but argument is of type '%s'", pt, typ)
			}
		}
	case 10: // Expression '.' IDENTIFIER
		_, t := n.Expression.eval(lx)
		mb, err := t.Member(n.Token2.Val)
		if err == nil {
			n.Type = mb.Type
		} else {
			// support AnonymousStructs() by doing some emulating... (todo check if enabled)
			offset, ty, err2 := memberOffsetRecursive(t, n.Token2.Val)
			if err2 == nil {
				// This is kindof a simple workaround... should work good enough though
				// and might be the easiest implementation possible
				// transform a.b into (*(ty*)((char*)(&a))+offset))
				ptr := &Expression{
					Case:       17, // &Expression
					Token:      xc.Token{lex.Char{Rune: '&'}, 0},
					Expression: n.Expression,
				}
				// sneak in a char pointer so that the offset is correct
				charTy := lx.model.CharType.Pointer()
				charTyDeclarator := &Declarator{Type: charTy}
				ptr = &Expression{
					Case:       25,
					Token:      xc.Token{lex.Char{Rune: '('}, 0},
					TypeName:   &TypeName{Type: charTy, declarator: charTyDeclarator},
					Token2:     xc.Token{lex.Char{Rune: ')'}, 0},
					Expression: ptr,
				}
				sid := dict.SID(strconv.Itoa(offset))
				offset := &Expression{
					Case:  3, // INTCONST
					Token: xc.Token{lex.Char{Rune: INTCONST}, sid},
				}
				fieldPtr := &Expression{
					Case:        29, // +
					Expression:  ptr,
					Token:       xc.Token{lex.Char{Rune: '+'}, 0},
					Expression2: offset,
				}
				ptrTy := (*ty).Pointer()
				declarator := &Declarator{Type: ptrTy}
				cast := &Expression{
					Case:       
Download .txt
Showing preview only (392K chars total). Download the full file or copy to clipboard to get everything.
gitextract_7n8tim4r/

├── AUTHORS
├── CONTRIBUTORS
├── LICENSE
├── Makefile
├── README.md
├── all_test.go
├── ast.go
├── ast2.go
├── ast_test.go
├── cc.go
├── cpp.go
├── encoding.go
├── etc.go
├── generate.go
├── global.go
├── kind_string.go
├── lexer.go
├── linkage_string.go
├── model.go
├── namespace_string.go
├── parser.go
├── parser.y
├── parser.yy
├── scanner.go
├── scanner.l
├── scope_string.go
├── testdata/
│   ├── anon.c
│   ├── arith-1.c
│   ├── arith-1.h
│   ├── array.c
│   ├── empty.c
│   ├── enum.c
│   ├── example-6.10.3.3-4.h
│   ├── example-6.10.3.5-3.h
│   ├── example-6.10.3.5-4.h
│   ├── example-6.10.3.5-5.h
│   ├── example-6.10.3.5-6.h
│   ├── example-6.10.3.5-7.h
│   ├── func.c
│   ├── funcfunc.c
│   ├── gcc-6.3.0/
│   │   ├── COPYING
│   │   ├── COPYING.LIB
│   │   ├── COPYING.RUNTIME
│   │   ├── COPYING3
│   │   ├── COPYING3.LIB
│   │   ├── README
│   │   ├── gcc/
│   │   │   └── testsuite/
│   │   │       └── gcc.c-torture/
│   │   │           ├── compat/
│   │   │           │   ├── strct-layout.c
│   │   │           │   ├── struct-align.c
│   │   │           │   ├── struct-big.c
│   │   │           │   ├── struct-i.c
│   │   │           │   ├── struct-ic.c
│   │   │           │   ├── struct-ii.c
│   │   │           │   └── struct-ret-1.c
│   │   │           ├── compile/
│   │   │           │   ├── 20000105-1.c
│   │   │           │   ├── 20000105-2.c
│   │   │           │   ├── 20000120-1.c
│   │   │           │   ├── 20000120-2.c
│   │   │           │   ├── 20000127-1.c
│   │   │           │   ├── 20000211-1.c
│   │   │           │   ├── 20000211-3.c
│   │   │           │   ├── 20000224-1.c
│   │   │           │   ├── 20000314-1.c
│   │   │           │   ├── 20000314-2.c
│   │   │           │   ├── 20000319-1.c
│   │   │           │   ├── 20000326-1.c
│   │   │           │   ├── 20000326-2.c
│   │   │           │   ├── 20000329-1.c
│   │   │           │   ├── 20000403-1.c
│   │   │           │   ├── 20000403-2.c
│   │   │           │   ├── 20000405-1.c
│   │   │           │   ├── 20000405-2.c
│   │   │           │   ├── 20000405-3.c
│   │   │           │   ├── 20000412-1.c
│   │   │           │   ├── 20000412-2.c
│   │   │           │   ├── 20000420-1.c
│   │   │           │   ├── 20000420-2.c
│   │   │           │   ├── 20000427-1.c
│   │   │           │   ├── 20000502-1.c
│   │   │           │   ├── 20000504-1.c
│   │   │           │   ├── 20000511-1.c
│   │   │           │   ├── 20000517-1.c
│   │   │           │   ├── 20000518-1.c
│   │   │           │   ├── 20000523-1.c
│   │   │           │   ├── 20000605-1.c
│   │   │           │   ├── 20000606-1.c
│   │   │           │   ├── 20000609-1.c
│   │   │           │   ├── 20000629-1.c
│   │   │           │   ├── 20000701-1.c
│   │   │           │   ├── 20000717-1.c
│   │   │           │   ├── 20000718.c
│   │   │           │   ├── 20000728-1.c
│   │   │           │   ├── 20000802-1.c
│   │   │           │   ├── 20000803-1.c
│   │   │           │   ├── 20000804-1.c
│   │   │           │   ├── 20000818-1.c
│   │   │           │   ├── 20000825-1.c
│   │   │           │   ├── 20000827-1.c
│   │   │           │   ├── 20000922-1.c
│   │   │           │   ├── 20000923-1.c
│   │   │           │   ├── 20001018-1.c
│   │   │           │   ├── 20001024-1.c
│   │   │           │   ├── 20001109-1.c
│   │   │           │   ├── 20001109-2.c
│   │   │           │   ├── 20001116-1.c
│   │   │           │   ├── 20001121-1.c
│   │   │           │   ├── 20001123-1.c
│   │   │           │   ├── 20001123-2.c
│   │   │           │   ├── 20001205-1.c
│   │   │           │   ├── 20001212-1.c
│   │   │           │   ├── 20001221-1.c
│   │   │           │   ├── 20001222-1.c
│   │   │           │   ├── 20001226-1.c
│   │   │           │   ├── 200031109-1.c
│   │   │           │   ├── 20010102-1.c
│   │   │           │   ├── 20010107-1.c
│   │   │           │   ├── 20010112-1.c
│   │   │           │   ├── 20010113-1.c
│   │   │           │   ├── 20010114-1.c
│   │   │           │   ├── 20010114-2.c
│   │   │           │   ├── 20010117-1.c
│   │   │           │   ├── 20010117-2.c
│   │   │           │   ├── 20010118-1.c
│   │   │           │   ├── 20010124-1.c
│   │   │           │   ├── 20010202-1.c
│   │   │           │   ├── 20010209-1.c
│   │   │           │   ├── 20010226-1.c
│   │   │           │   ├── 20010227-1.c
│   │   │           │   ├── 20010313-1.c
│   │   │           │   ├── 20010320-1.c
│   │   │           │   ├── 20010326-1.c
│   │   │           │   ├── 20010327-1.c
│   │   │           │   ├── 20010328-1.c
│   │   │           │   ├── 20010329-1.c
│   │   │           │   ├── 20010404-1.c
│   │   │           │   ├── 20010408-1.c
│   │   │           │   ├── 20010421-1.c
│   │   │           │   ├── 20010423-1.c
│   │   │           │   ├── 20010426-1.c
│   │   │           │   ├── 20010503-1.c
│   │   │           │   ├── 20010510-1.c
│   │   │           │   ├── 20010518-1.c
│   │   │           │   ├── 20010518-2.c
│   │   │           │   ├── 20010525-1.c
│   │   │           │   ├── 20010605-1.c
│   │   │           │   ├── 20010605-2.c
│   │   │           │   ├── 20010605-3.c
│   │   │           │   ├── 20010610-1.c
│   │   │           │   ├── 20010611-1.c
│   │   │           │   ├── 20010701-1.c
│   │   │           │   ├── 20010706-1.c
│   │   │           │   ├── 20010711-1.c
│   │   │           │   ├── 20010711-2.c
│   │   │           │   ├── 20010714-1.c
│   │   │           │   ├── 20010824-1.c
│   │   │           │   ├── 20010903-1.c
│   │   │           │   ├── 20010903-2.c
│   │   │           │   ├── 20010911-1.c
│   │   │           │   ├── 20011010-1.c
│   │   │           │   ├── 20011023-1.c
│   │   │           │   ├── 20011029-1.c
│   │   │           │   ├── 20011106-1.c
│   │   │           │   ├── 20011106-2.c
│   │   │           │   ├── 20011109-1.c
│   │   │           │   ├── 20011114-1.c
│   │   │           │   ├── 20011114-2.c
│   │   │           │   ├── 20011114-3.c
│   │   │           │   ├── 20011114-4.c
│   │   │           │   ├── 20011119-1.c
│   │   │           │   ├── 20011119-2.c
│   │   │           │   ├── 20011130-1.c
│   │   │           │   ├── 20011130-2.c
│   │   │           │   ├── 20011205-1.c
│   │   │           │   ├── 20011217-1.c
│   │   │           │   ├── 20011217-2.c
│   │   │           │   ├── 20011218-1.c
│   │   │           │   ├── 20011219-1.c
│   │   │           │   ├── 20011219-2.c
│   │   │           │   ├── 20011229-1.c
│   │   │           │   ├── 20011229-2.c
│   │   │           │   ├── 20020103-1.c
│   │   │           │   ├── 20020106-1.c
│   │   │           │   ├── 20020109-1.c
│   │   │           │   ├── 20020109-2.c
│   │   │           │   ├── 20020110.c
│   │   │           │   ├── 20020116-1.c
│   │   │           │   ├── 20020120-1.c
│   │   │           │   ├── 20020121-1.c
│   │   │           │   ├── 20020129-1.c
│   │   │           │   ├── 20020206-1.c
│   │   │           │   ├── 20020210-1.c
│   │   │           │   ├── 20020303-1.c
│   │   │           │   ├── 20020304-1.c
│   │   │           │   ├── 20020304-2.c
│   │   │           │   ├── 20020309-1.c
│   │   │           │   ├── 20020309-2.c
│   │   │           │   ├── 20020312-1.c
│   │   │           │   ├── 20020314-1.c
│   │   │           │   ├── 20020315-1.c
│   │   │           │   ├── 20020318-1.c
│   │   │           │   ├── 20020319-1.c
│   │   │           │   ├── 20020320-1.c
│   │   │           │   ├── 20020323-1.c
│   │   │           │   ├── 20020330-1.c
│   │   │           │   ├── 20020409-1.c
│   │   │           │   ├── 20020415-1.c
│   │   │           │   ├── 20020418-1.c
│   │   │           │   ├── 20020530-1.c
│   │   │           │   ├── 20020604-1.c
│   │   │           │   ├── 20020605-1.c
│   │   │           │   ├── 20020701-1.c
│   │   │           │   ├── 20020706-1.c
│   │   │           │   ├── 20020706-2.c
│   │   │           │   ├── 20020709-1.c
│   │   │           │   ├── 20020710-1.c
│   │   │           │   ├── 20020715-1.c
│   │   │           │   ├── 20020807-1.c
│   │   │           │   ├── 20020910-1.c
│   │   │           │   ├── 20020926-1.c
│   │   │           │   ├── 20020927-1.c
│   │   │           │   ├── 20020930-1.c
│   │   │           │   ├── 20021001-1.c
│   │   │           │   ├── 20021007-1.c
│   │   │           │   ├── 20021008-1.c
│   │   │           │   ├── 20021015-1.c
│   │   │           │   ├── 20021015-2.c
│   │   │           │   ├── 20021103-1.c
│   │   │           │   ├── 20021108-1.c
│   │   │           │   ├── 20021110.c
│   │   │           │   ├── 20021119-1.c
│   │   │           │   ├── 20021120-1.c
│   │   │           │   ├── 20021120-2.c
│   │   │           │   ├── 20021124-1.c
│   │   │           │   ├── 20021204-1.c
│   │   │           │   ├── 20021205-1.c
│   │   │           │   ├── 20021212-1.c
│   │   │           │   ├── 20021230-1.c
│   │   │           │   ├── 20030109-1.c
│   │   │           │   ├── 20030110-1.c
│   │   │           │   ├── 20030125-1.c
│   │   │           │   ├── 20030206-1.c
│   │   │           │   ├── 20030216-1.c
│   │   │           │   ├── 20030219-1.c
│   │   │           │   ├── 20030220-1.c
│   │   │           │   ├── 20030224-1.c
│   │   │           │   ├── 20030305-1.c
│   │   │           │   ├── 20030310-1.c
│   │   │           │   ├── 20030314-1.c
│   │   │           │   ├── 20030319-1.c
│   │   │           │   ├── 20030320-1.c
│   │   │           │   ├── 20030323-1.c
│   │   │           │   ├── 20030330-1.c
│   │   │           │   ├── 20030331-1.c
│   │   │           │   ├── 20030405-1.c
│   │   │           │   ├── 20030410-1.c
│   │   │           │   ├── 20030415-1.c
│   │   │           │   ├── 20030416-1.c
│   │   │           │   ├── 20030418-1.c
│   │   │           │   ├── 20030503-1.c
│   │   │           │   ├── 20030518-1.c
│   │   │           │   ├── 20030530-1.c
│   │   │           │   ├── 20030530-3.c
│   │   │           │   ├── 20030604-1.c
│   │   │           │   ├── 20030605-1.c
│   │   │           │   ├── 20030612-1.c
│   │   │           │   ├── 20030624-1.c
│   │   │           │   ├── 20030703-1.c
│   │   │           │   ├── 20030704-1.c
│   │   │           │   ├── 20030707-1.c
│   │   │           │   ├── 20030708-1.c
│   │   │           │   ├── 20030716-1.c
│   │   │           │   ├── 20030725-1.c
│   │   │           │   ├── 20030804-1.c
│   │   │           │   ├── 20030821-1.c
│   │   │           │   ├── 20030823-1.c
│   │   │           │   ├── 20030902-1.c
│   │   │           │   ├── 20030903-1.c
│   │   │           │   ├── 20030904-1.c
│   │   │           │   ├── 20030907-1.c
│   │   │           │   ├── 20030910-1.c
│   │   │           │   ├── 20030917-1.c
│   │   │           │   ├── 20030921-1.c
│   │   │           │   ├── 20031002-1.c
│   │   │           │   ├── 20031010-1.c
│   │   │           │   ├── 20031011-1.c
│   │   │           │   ├── 20031011-2.c
│   │   │           │   ├── 20031023-1.c
│   │   │           │   ├── 20031023-2.c
│   │   │           │   ├── 20031023-3.c
│   │   │           │   ├── 20031023-4.c
│   │   │           │   ├── 20031031-1.c
│   │   │           │   ├── 20031031-2.c
│   │   │           │   ├── 20031102-1.c
│   │   │           │   ├── 20031112-1.c
│   │   │           │   ├── 20031113-1.c
│   │   │           │   ├── 20031124-1.c
│   │   │           │   ├── 20031125-1.c
│   │   │           │   ├── 20031125-2.c
│   │   │           │   ├── 20031203-1.c
│   │   │           │   ├── 20031203-2.c
│   │   │           │   ├── 20031203-3.c
│   │   │           │   ├── 20031208-1.c
│   │   │           │   ├── 20031220-1.c
│   │   │           │   ├── 20031220-2.c
│   │   │           │   ├── 20031227-1.c
│   │   │           │   ├── 20031231-1.c
│   │   │           │   ├── 20040101-1.c
│   │   │           │   ├── 20040109-1.c
│   │   │           │   ├── 20040121-1.c
│   │   │           │   ├── 20040124-1.c
│   │   │           │   ├── 20040130-1.c
│   │   │           │   ├── 20040202-1.c
│   │   │           │   ├── 20040209-1.c
│   │   │           │   ├── 20040214-1.c
│   │   │           │   ├── 20040214-2.c
│   │   │           │   ├── 20040216-1.c
│   │   │           │   ├── 20040219-1.c
│   │   │           │   ├── 20040220-1.c
│   │   │           │   ├── 20040303-1.c
│   │   │           │   ├── 20040303-2.c
│   │   │           │   ├── 20040304-1.c
│   │   │           │   ├── 20040309-1.c
│   │   │           │   ├── 20040310-1.c
│   │   │           │   ├── 20040317-1.c
│   │   │           │   ├── 20040317-2.c
│   │   │           │   ├── 20040317-3.c
│   │   │           │   ├── 20040323-1.c
│   │   │           │   ├── 20040401-1.c
│   │   │           │   ├── 20040415-1.c
│   │   │           │   ├── 20040415-2.c
│   │   │           │   ├── 20040419-1.c
│   │   │           │   ├── 20040602-1.c
│   │   │           │   ├── 20040610-1.c
│   │   │           │   ├── 20040611-1.c
│   │   │           │   ├── 20040614-1.c
│   │   │           │   ├── 20040621-1.c
│   │   │           │   ├── 20040624-1.c
│   │   │           │   ├── 20040705-1.c
│   │   │           │   ├── 20040708-1.c
│   │   │           │   ├── 20040709-1.c
│   │   │           │   ├── 20040726-1.c
│   │   │           │   ├── 20040726-2.c
│   │   │           │   ├── 20040727-1.c
│   │   │           │   ├── 20040730-1.c
│   │   │           │   ├── 20040817-1.c
│   │   │           │   ├── 20040824-1.c
│   │   │           │   ├── 20040901-1.c
│   │   │           │   ├── 20040907-1.c
│   │   │           │   ├── 20040908-1.c
│   │   │           │   ├── 20040909-1.c
│   │   │           │   ├── 20040914-1.c
│   │   │           │   ├── 20040916-1.c
│   │   │           │   ├── 20041005-1.c
│   │   │           │   ├── 20041007-1.c
│   │   │           │   ├── 20041018-1.c
│   │   │           │   ├── 20041026-1.c
│   │   │           │   ├── 20041119-1.c
│   │   │           │   ├── 20041211-1.c
│   │   │           │   ├── 20050105-1.c
│   │   │           │   ├── 20050113-1.c
│   │   │           │   ├── 20050119-1.c
│   │   │           │   ├── 20050122-1.c
│   │   │           │   ├── 20050122-2.c
│   │   │           │   ├── 20050202-1.c
│   │   │           │   ├── 20050206-1.c
│   │   │           │   ├── 20050210-1.c
│   │   │           │   ├── 20050215-1.c
│   │   │           │   ├── 20050215-2.c
│   │   │           │   ├── 20050215-3.c
│   │   │           │   ├── 20050217-1.c
│   │   │           │   ├── 20050303-1.c
│   │   │           │   ├── 20050328-1.c
│   │   │           │   ├── 20050423-1.c
│   │   │           │   ├── 20050510-1.c
│   │   │           │   ├── 20050516-1.c
│   │   │           │   ├── 20050520-1.c
│   │   │           │   ├── 20050622-1.c
│   │   │           │   ├── 20050721-1.c
│   │   │           │   ├── 20050801-1.c
│   │   │           │   ├── 20050801-2.c
│   │   │           │   ├── 20051207-1.c
│   │   │           │   ├── 20051216-1.c
│   │   │           │   ├── 20051228-1.c
│   │   │           │   ├── 20060109-1.c
│   │   │           │   ├── 20060202-1.c
│   │   │           │   ├── 20060208-1.c
│   │   │           │   ├── 20060215-1.c
│   │   │           │   ├── 20060217-1.c
│   │   │           │   ├── 20060309-1.c
│   │   │           │   ├── 20060419-1.c
│   │   │           │   ├── 20060421-1.c
│   │   │           │   ├── 20060609-1.c
│   │   │           │   ├── 20060625-1.c
│   │   │           │   ├── 20060823-1.c
│   │   │           │   ├── 20060826-1.c
│   │   │           │   ├── 20060904-1.c
│   │   │           │   ├── 20061005-1.c
│   │   │           │   ├── 20061214-1.c
│   │   │           │   ├── 20070121.c
│   │   │           │   ├── 20070129.c
│   │   │           │   ├── 20070419-1.c
│   │   │           │   ├── 20070501-1.c
│   │   │           │   ├── 20070520-1.c
│   │   │           │   ├── 20070522-1.c
│   │   │           │   ├── 20070529-1.c
│   │   │           │   ├── 20070529-2.c
│   │   │           │   ├── 20070531-1.c
│   │   │           │   ├── 20070531-2.c
│   │   │           │   ├── 20070603-1.c
│   │   │           │   ├── 20070603-2.c
│   │   │           │   ├── 20070605-1.c
│   │   │           │   ├── 20070827-1.c
│   │   │           │   ├── 20070905-1.c
│   │   │           │   ├── 20070906-1.c
│   │   │           │   ├── 20070915-1.c
│   │   │           │   ├── 20070919-1.c
│   │   │           │   ├── 20071027-1.c
│   │   │           │   ├── 20071102-1.c
│   │   │           │   ├── 20071105-1.c
│   │   │           │   ├── 20071107-1.c
│   │   │           │   ├── 20071108-1.c
│   │   │           │   ├── 20071114-1.c
│   │   │           │   ├── 20071117-1.c
│   │   │           │   ├── 20071118-1.c
│   │   │           │   ├── 20071128-1.c
│   │   │           │   ├── 20071203-1.c
│   │   │           │   ├── 20071207-1.c
│   │   │           │   ├── 20071214-1.c
│   │   │           │   ├── 20080114-1.c
│   │   │           │   ├── 20080124-1.c
│   │   │           │   ├── 20080419-1.c
│   │   │           │   ├── 20080613-1.c
│   │   │           │   ├── 20080625-1.c
│   │   │           │   ├── 20080628-1.c
│   │   │           │   ├── 20080704-1.c
│   │   │           │   ├── 20080721-1.c
│   │   │           │   ├── 20080806-1.c
│   │   │           │   ├── 20080812-1.c
│   │   │           │   ├── 20080820-1.c
│   │   │           │   ├── 20080903-1.c
│   │   │           │   ├── 20080910-1.c
│   │   │           │   ├── 20080922-1.c
│   │   │           │   ├── 20080929-1.c
│   │   │           │   ├── 20081101-1.c
│   │   │           │   ├── 20081108-1.c
│   │   │           │   ├── 20081108-2.c
│   │   │           │   ├── 20081108-3.c
│   │   │           │   ├── 20081119-1.c
│   │   │           │   ├── 20081203-1.c
│   │   │           │   ├── 20090107-1.c
│   │   │           │   ├── 20090114-1.c
│   │   │           │   ├── 20090209-1.c
│   │   │           │   ├── 20090303-1.c
│   │   │           │   ├── 20090303-2.c
│   │   │           │   ├── 20090328-1.c
│   │   │           │   ├── 20090331-1.c
│   │   │           │   ├── 20090401-1.c
│   │   │           │   ├── 20090518-1.c
│   │   │           │   ├── 20090519-1.c
│   │   │           │   ├── 20090721-1.c
│   │   │           │   ├── 20090907-1.c
│   │   │           │   ├── 20090917-1.c
│   │   │           │   ├── 20091215-1.c
│   │   │           │   ├── 20100609-1.c
│   │   │           │   ├── 20100907.c
│   │   │           │   ├── 20100915-1.c
│   │   │           │   ├── 20101216-1.c
│   │   │           │   ├── 20101217-1.c
│   │   │           │   ├── 20110126-1.c
│   │   │           │   ├── 20110131-1.c
│   │   │           │   ├── 20110401-1.c
│   │   │           │   ├── 20110902.c
│   │   │           │   ├── 20110906-1.c
│   │   │           │   ├── 20110913-1.c
│   │   │           │   ├── 20111209-1.c
│   │   │           │   ├── 20120524-1.c
│   │   │           │   ├── 20120727-1.c
│   │   │           │   ├── 20120727-2.c
│   │   │           │   ├── 20120822-1.c
│   │   │           │   ├── 20120830-1.c
│   │   │           │   ├── 20120830-2.c
│   │   │           │   ├── 20120913-1.c
│   │   │           │   ├── 20120917-1.c
│   │   │           │   ├── 20120927-1.c
│   │   │           │   ├── 20121010-1.c
│   │   │           │   ├── 20121027-1.c
│   │   │           │   ├── 20121107-1.c
│   │   │           │   ├── 20121220-1.c
│   │   │           │   ├── 20140110-1.c
│   │   │           │   ├── 20140213.c
│   │   │           │   ├── 20140528-1.c
│   │   │           │   ├── 20140723-1.c
│   │   │           │   ├── 20140816-1.c
│   │   │           │   ├── 20150108.c
│   │   │           │   ├── 20150327.c
│   │   │           │   ├── 20151204.c
│   │   │           │   ├── 20160205-1.c
│   │   │           │   ├── 20161124-1.c
│   │   │           │   ├── 386.c
│   │   │           │   ├── 86.c
│   │   │           │   ├── 900116-1.c
│   │   │           │   ├── 900216-1.c
│   │   │           │   ├── 900313-1.c
│   │   │           │   ├── 900407-1.c
│   │   │           │   ├── 900516-1.c
│   │   │           │   ├── 920301-1.c
│   │   │           │   ├── 920409-1.c
│   │   │           │   ├── 920409-2.c
│   │   │           │   ├── 920410-1.c
│   │   │           │   ├── 920410-2.c
│   │   │           │   ├── 920411-2.c
│   │   │           │   ├── 920413-1.c
│   │   │           │   ├── 920415-1.c
│   │   │           │   ├── 920428-1.c
│   │   │           │   ├── 920428-2.c
│   │   │           │   ├── 920428-3.c
│   │   │           │   ├── 920428-4.c
│   │   │           │   ├── 920428-5.c
│   │   │           │   ├── 920428-6.c
│   │   │           │   ├── 920428-7.c
│   │   │           │   ├── 920501-1.c
│   │   │           │   ├── 920501-10.c
│   │   │           │   ├── 920501-11.c
│   │   │           │   ├── 920501-12.c
│   │   │           │   ├── 920501-13.c
│   │   │           │   ├── 920501-15.c
│   │   │           │   ├── 920501-16.c
│   │   │           │   ├── 920501-17.c
│   │   │           │   ├── 920501-18.c
│   │   │           │   ├── 920501-19.c
│   │   │           │   ├── 920501-2.c
│   │   │           │   ├── 920501-20.c
│   │   │           │   ├── 920501-21.c
│   │   │           │   ├── 920501-22.c
│   │   │           │   ├── 920501-23.c
│   │   │           │   ├── 920501-3.c
│   │   │           │   ├── 920501-4.c
│   │   │           │   ├── 920501-6.c
│   │   │           │   ├── 920501-7.c
│   │   │           │   ├── 920501-8.c
│   │   │           │   ├── 920501-9.c
│   │   │           │   ├── 920502-1.c
│   │   │           │   ├── 920502-2.c
│   │   │           │   ├── 920520-1.c
│   │   │           │   ├── 920521-1.c
│   │   │           │   ├── 920529-1.c
│   │   │           │   ├── 920608-1.c
│   │   │           │   ├── 920611-2.c
│   │   │           │   ├── 920615-1.c
│   │   │           │   ├── 920617-1.c
│   │   │           │   ├── 920617-2.c
│   │   │           │   ├── 920623-1.c
│   │   │           │   ├── 920624-1.c
│   │   │           │   ├── 920625-1.c
│   │   │           │   ├── 920625-2.c
│   │   │           │   ├── 920626-1.c
│   │   │           │   ├── 920701-1.c
│   │   │           │   ├── 920702-1.c
│   │   │           │   ├── 920706-1.c
│   │   │           │   ├── 920710-2.c
│   │   │           │   ├── 920711-1.c
│   │   │           │   ├── 920721-1.c
│   │   │           │   ├── 920723-1.c
│   │   │           │   ├── 920729-1.c
│   │   │           │   ├── 920806-1.c
│   │   │           │   ├── 920808-1.c
│   │   │           │   ├── 920809-1.c
│   │   │           │   ├── 920817-1.c
│   │   │           │   ├── 920820-1.c
│   │   │           │   ├── 920821-1.c
│   │   │           │   ├── 920821-2.c
│   │   │           │   ├── 920825-1.c
│   │   │           │   ├── 920825-2.c
│   │   │           │   ├── 920826-1.c
│   │   │           │   ├── 920828-1.c
│   │   │           │   ├── 920829-1.c
│   │   │           │   ├── 920831-1.c
│   │   │           │   ├── 920902-1.c
│   │   │           │   ├── 920909-1.c
│   │   │           │   ├── 920917-1.c
│   │   │           │   ├── 920928-1.c
│   │   │           │   ├── 920928-2.c
│   │   │           │   ├── 920928-3.c
│   │   │           │   ├── 920928-4.c
│   │   │           │   ├── 920928-5.c
│   │   │           │   ├── 920928-6.c
│   │   │           │   ├── 921004-1.c
│   │   │           │   ├── 921011-1.c
│   │   │           │   ├── 921011-2.c
│   │   │           │   ├── 921012-1.c
│   │   │           │   ├── 921012-2.c
│   │   │           │   ├── 921013-1.c
│   │   │           │   ├── 921019-1.c
│   │   │           │   ├── 921021-1.c
│   │   │           │   ├── 921024-1.c
│   │   │           │   ├── 921026-1.c
│   │   │           │   ├── 921103-1.c
│   │   │           │   ├── 921109-1.c
│   │   │           │   ├── 921111-1.c
│   │   │           │   ├── 921116-2.c
│   │   │           │   ├── 921118-1.c
│   │   │           │   ├── 921126-1.c
│   │   │           │   ├── 921202-1.c
│   │   │           │   ├── 921202-2.c
│   │   │           │   ├── 921203-1.c
│   │   │           │   ├── 921203-2.c
│   │   │           │   ├── 921206-1.c
│   │   │           │   ├── 921227-1.c
│   │   │           │   ├── 930109-1.c
│   │   │           │   ├── 930109-2.c
│   │   │           │   ├── 930111-1.c
│   │   │           │   ├── 930117-1.c
│   │   │           │   ├── 930118-1.c
│   │   │           │   ├── 930120-1.c
│   │   │           │   ├── 930126-1.c
│   │   │           │   ├── 930210-1.c
│   │   │           │   ├── 930217-1.c
│   │   │           │   ├── 930222-1.c
│   │   │           │   ├── 930325-1.c
│   │   │           │   ├── 930326-1.c
│   │   │           │   ├── 930411-1.c
│   │   │           │   ├── 930421-1.c
│   │   │           │   ├── 930427-2.c
│   │   │           │   ├── 930503-1.c
│   │   │           │   ├── 930503-2.c
│   │   │           │   ├── 930506-1.c
│   │   │           │   ├── 930506-2.c
│   │   │           │   ├── 930510-1.c
│   │   │           │   ├── 930513-1.c
│   │   │           │   ├── 930513-2.c
│   │   │           │   ├── 930513-3.c
│   │   │           │   ├── 930523-1.c
│   │   │           │   ├── 930525-1.c
│   │   │           │   ├── 930527-1.c
│   │   │           │   ├── 930529-1.c
│   │   │           │   ├── 930530-1.c
│   │   │           │   ├── 930602-1.c
│   │   │           │   ├── 930603-1.c
│   │   │           │   ├── 930607-1.c
│   │   │           │   ├── 930611-1.c
│   │   │           │   ├── 930618-1.c
│   │   │           │   ├── 930621-1.c
│   │   │           │   ├── 930623-1.c
│   │   │           │   ├── 930702-1.c
│   │   │           │   ├── 930926-1.c
│   │   │           │   ├── 930927-1.c
│   │   │           │   ├── 931003-1.c
│   │   │           │   ├── 931004-1.c
│   │   │           │   ├── 931013-1.c
│   │   │           │   ├── 931013-2.c
│   │   │           │   ├── 931013-3.c
│   │   │           │   ├── 931018-1.c
│   │   │           │   ├── 931031-1.c
│   │   │           │   ├── 931102-1.c
│   │   │           │   ├── 931102-2.c
│   │   │           │   ├── 931203-1.c
│   │   │           │   ├── 940611-1.c
│   │   │           │   ├── 940712-1.c
│   │   │           │   ├── 940718-1.c
│   │   │           │   ├── 941014-1.c
│   │   │           │   ├── 941014-2.c
│   │   │           │   ├── 941014-3.c
│   │   │           │   ├── 941014-4.c
│   │   │           │   ├── 941019-1.c
│   │   │           │   ├── 941111-1.c
│   │   │           │   ├── 941113-1.c
│   │   │           │   ├── 950122-1.c
│   │   │           │   ├── 950124-1.c
│   │   │           │   ├── 950221-1.c
│   │   │           │   ├── 950329-1.c
│   │   │           │   ├── 950512-1.c
│   │   │           │   ├── 950530-1.c
│   │   │           │   ├── 950607-1.c
│   │   │           │   ├── 950610-1.c
│   │   │           │   ├── 950612-1.c
│   │   │           │   ├── 950613-1.c
│   │   │           │   ├── 950618-1.c
│   │   │           │   ├── 950719-1.c
│   │   │           │   ├── 950729-1.c
│   │   │           │   ├── 950816-1.c
│   │   │           │   ├── 950816-2.c
│   │   │           │   ├── 950816-3.c
│   │   │           │   ├── 950910-1.c
│   │   │           │   ├── 950919-1.c
│   │   │           │   ├── 950921-1.c
│   │   │           │   ├── 950922-1.c
│   │   │           │   ├── 951004-1.c
│   │   │           │   ├── 951106-1.c
│   │   │           │   ├── 951116-1.c
│   │   │           │   ├── 951128-1.c
│   │   │           │   ├── 951220-1.c
│   │   │           │   ├── 951222-1.c
│   │   │           │   ├── 960106-1.c
│   │   │           │   ├── 960130-1.c
│   │   │           │   ├── 960201-1.c
│   │   │           │   ├── 960218-1.c
│   │   │           │   ├── 960220-1.c
│   │   │           │   ├── 960221-1.c
│   │   │           │   ├── 960319-1.c
│   │   │           │   ├── 960514-1.c
│   │   │           │   ├── 960704-1.c
│   │   │           │   ├── 960829-1.c
│   │   │           │   ├── 961004-1.c
│   │   │           │   ├── 961010-1.c
│   │   │           │   ├── 961019-1.c
│   │   │           │   ├── 961031-1.c
│   │   │           │   ├── 961126-1.c
│   │   │           │   ├── 961203-1.c
│   │   │           │   ├── 970206-1.c
│   │   │           │   ├── 970214-1.c
│   │   │           │   ├── 980329-1.c
│   │   │           │   ├── 980408-1.c
│   │   │           │   ├── 980504-1.c
│   │   │           │   ├── 980506-1.c
│   │   │           │   ├── 980506-2.c
│   │   │           │   ├── 980511-1.c
│   │   │           │   ├── 980701-1.c
│   │   │           │   ├── 980706-1.c
│   │   │           │   ├── 980726-1.c
│   │   │           │   ├── 980729-1.c
│   │   │           │   ├── 980816-1.c
│   │   │           │   ├── 980821-1.c
│   │   │           │   ├── 980825-1.c
│   │   │           │   ├── 981001-1.c
│   │   │           │   ├── 981001-2.c
│   │   │           │   ├── 981001-3.c
│   │   │           │   ├── 981001-4.c
│   │   │           │   ├── 981006-1.c
│   │   │           │   ├── 981007-1.c
│   │   │           │   ├── 981107-1.c
│   │   │           │   ├── 981223-1.c
│   │   │           │   ├── 990107-1.c
│   │   │           │   ├── 990117-1.c
│   │   │           │   ├── 990203-1.c
│   │   │           │   ├── 990517-1.c
│   │   │           │   ├── 990519-1.c
│   │   │           │   ├── 990523-1.c
│   │   │           │   ├── 990527-1.c
│   │   │           │   ├── 990617-1.c
│   │   │           │   ├── 990625-1.c
│   │   │           │   ├── 990625-2.c
│   │   │           │   ├── 990801-1.c
│   │   │           │   ├── 990801-2.c
│   │   │           │   ├── 990829-1.c
│   │   │           │   ├── 990913-1.c
│   │   │           │   ├── 990928-1.c
│   │   │           │   ├── 991008-1.c
│   │   │           │   ├── 991026-1.c
│   │   │           │   ├── 991026-2.c
│   │   │           │   ├── 991127-1.c
│   │   │           │   ├── 991202-1.c
│   │   │           │   ├── 991208-1.c
│   │   │           │   ├── 991213-1.c
│   │   │           │   ├── 991213-2.c
│   │   │           │   ├── 991213-3.c
│   │   │           │   ├── 991214-1.c
│   │   │           │   ├── 991214-2.c
│   │   │           │   ├── 991229-1.c
│   │   │           │   ├── 991229-2.c
│   │   │           │   ├── 991229-3.c
│   │   │           │   ├── BUG1.c
│   │   │           │   ├── BUG11.c
│   │   │           │   ├── BUG12.c
│   │   │           │   ├── BUG13.c
│   │   │           │   ├── BUG16.c
│   │   │           │   ├── BUG17.c
│   │   │           │   ├── BUG18.c
│   │   │           │   ├── BUG2.c
│   │   │           │   ├── BUG21.c
│   │   │           │   ├── BUG22.c
│   │   │           │   ├── BUG23.c
│   │   │           │   ├── BUG24.c
│   │   │           │   ├── BUG25.c
│   │   │           │   ├── BUG3.c
│   │   │           │   ├── BUG4.c
│   │   │           │   ├── BUG5.c
│   │   │           │   ├── BUG6.c
│   │   │           │   ├── DFcmp.c
│   │   │           │   ├── HIcmp.c
│   │   │           │   ├── HIset.c
│   │   │           │   ├── PYRBUG.c
│   │   │           │   ├── QIcmp.c
│   │   │           │   ├── QIset.c
│   │   │           │   ├── SFset.c
│   │   │           │   ├── SIcmp.c
│   │   │           │   ├── SIset.c
│   │   │           │   ├── UHIcmp.c
│   │   │           │   ├── UQIcmp.c
│   │   │           │   ├── USIcmp.c
│   │   │           │   ├── a.c
│   │   │           │   ├── a1.c
│   │   │           │   ├── a3.c
│   │   │           │   ├── aa.c
│   │   │           │   ├── aaa.c
│   │   │           │   ├── abs.c
│   │   │           │   ├── ac.c
│   │   │           │   ├── acc.c
│   │   │           │   ├── acc1.c
│   │   │           │   ├── add.c
│   │   │           │   ├── add386.c
│   │   │           │   ├── addcc.c
│   │   │           │   ├── andm.c
│   │   │           │   ├── andmem.c
│   │   │           │   ├── andn.c
│   │   │           │   ├── andok.c
│   │   │           │   ├── andsi.c
│   │   │           │   ├── andsparc.c
│   │   │           │   ├── aos.c
│   │   │           │   ├── arr.c
│   │   │           │   ├── as.c
│   │   │           │   ├── ase.c
│   │   │           │   ├── asmgoto-1.c
│   │   │           │   ├── b.c
│   │   │           │   ├── b1.c
│   │   │           │   ├── b2.c
│   │   │           │   ├── b3.c
│   │   │           │   ├── b88.c
│   │   │           │   ├── bad.c
│   │   │           │   ├── band.c
│   │   │           │   ├── bb0.c
│   │   │           │   ├── bb1.c
│   │   │           │   ├── bbb.c
│   │   │           │   ├── bc.c
│   │   │           │   ├── bcopy-1.c
│   │   │           │   ├── bcopy.c
│   │   │           │   ├── bf.c
│   │   │           │   ├── bfins.c
│   │   │           │   ├── bfx.c
│   │   │           │   ├── bge.c
│   │   │           │   ├── bit.c
│   │   │           │   ├── bitf.c
│   │   │           │   ├── bitw.c
│   │   │           │   ├── blk.c
│   │   │           │   ├── bt.c
│   │   │           │   ├── bt386.c
│   │   │           │   ├── bug.c
│   │   │           │   ├── bugc.c
│   │   │           │   ├── builtin_constant_p.c
│   │   │           │   ├── builtin_unreachable-1.c
│   │   │           │   ├── buns.c
│   │   │           │   ├── bx.c
│   │   │           │   ├── c.c
│   │   │           │   ├── c1.c
│   │   │           │   ├── c2.c
│   │   │           │   ├── call.c
│   │   │           │   ├── call386.c
│   │   │           │   ├── callind.c
│   │   │           │   ├── calls-void.c
│   │   │           │   ├── calls.c
│   │   │           │   ├── cc.c
│   │   │           │   ├── charmtst.c
│   │   │           │   ├── cmb.c
│   │   │           │   ├── cmp.c
│   │   │           │   ├── cmpdi-1.c
│   │   │           │   ├── cmphi.c
│   │   │           │   ├── cmpsi386.c
│   │   │           │   ├── cmul.c
│   │   │           │   ├── cn1.c
│   │   │           │   ├── comb.c
│   │   │           │   ├── combine-hang.c
│   │   │           │   ├── compile.exp
│   │   │           │   ├── complex-1.c
│   │   │           │   ├── complex-2.c
│   │   │           │   ├── complex-3.c
│   │   │           │   ├── complex-4.c
│   │   │           │   ├── complex-5.c
│   │   │           │   ├── complex-6.c
│   │   │           │   ├── compound-literal-1.c
│   │   │           │   ├── compound-literal-2.c
│   │   │           │   ├── compound-literal-3.c
│   │   │           │   ├── consec.c
│   │   │           │   ├── const-high-part.c
│   │   │           │   ├── const.c
│   │   │           │   ├── conv.c
│   │   │           │   ├── conv_tst.c
│   │   │           │   ├── cp.c
│   │   │           │   ├── cpp-1.c
│   │   │           │   ├── cpp-2.c
│   │   │           │   ├── csebug.c
│   │   │           │   ├── cvt.c
│   │   │           │   ├── d.c
│   │   │           │   ├── dbl_parm.c
│   │   │           │   ├── dblbug.c
│   │   │           │   ├── ddd.c
│   │   │           │   ├── dead.c
│   │   │           │   ├── debugvlafunction-1.c
│   │   │           │   ├── delay.c
│   │   │           │   ├── di.c
│   │   │           │   ├── dic.c
│   │   │           │   ├── dilayout.c
│   │   │           │   ├── dimove.c
│   │   │           │   ├── dimul.c
│   │   │           │   ├── div.c
│   │   │           │   ├── divdf.c
│   │   │           │   ├── dll.c
│   │   │           │   ├── dm.c
│   │   │           │   ├── dshift.c
│   │   │           │   ├── e.c
│   │   │           │   ├── ex.c
│   │   │           │   ├── ext.c
│   │   │           │   ├── f1.c
│   │   │           │   ├── f2.c
│   │   │           │   ├── fdmul.c
│   │   │           │   ├── fix-trunc-mem-1.c
│   │   │           │   ├── flo.c
│   │   │           │   ├── float.c
│   │   │           │   ├── flt_const.c
│   │   │           │   ├── fnul.c
│   │   │           │   ├── foo.c
│   │   │           │   ├── forgetcc.c
│   │   │           │   ├── fq.c
│   │   │           │   ├── funcptr-1.c
│   │   │           │   ├── g.c
│   │   │           │   ├── gen_tst.c
│   │   │           │   ├── glob.c
│   │   │           │   ├── goto-1.c
│   │   │           │   ├── gronk.c
│   │   │           │   ├── hi.c
│   │   │           │   ├── hibug.c
│   │   │           │   ├── i++.c
│   │   │           │   ├── i.c
│   │   │           │   ├── ic.c
│   │   │           │   ├── icfmatch.c
│   │   │           │   ├── icmp.c
│   │   │           │   ├── ifreg.c
│   │   │           │   ├── iftrap-1.c
│   │   │           │   ├── iftrap-2.c
│   │   │           │   ├── iftrap-3.c
│   │   │           │   ├── imm.c
│   │   │           │   ├── init-1.c
│   │   │           │   ├── init-2.c
│   │   │           │   ├── init-3.c
│   │   │           │   ├── inline-1.c
│   │   │           │   ├── isinf.c
│   │   │           │   ├── jmp.c
│   │   │           │   ├── jumptab.c
│   │   │           │   ├── l.c
│   │   │           │   ├── labels-1.c
│   │   │           │   ├── labels-2.c
│   │   │           │   ├── labels-3.c
│   │   │           │   ├── layout.c
│   │   │           │   ├── lbug.c
│   │   │           │   ├── libcall-1.c
│   │   │           │   ├── limits-blockid.c
│   │   │           │   ├── limits-caselabels.c
│   │   │           │   ├── limits-declparen.c
│   │   │           │   ├── limits-enumconst.c
│   │   │           │   ├── limits-exprparen.c
│   │   │           │   ├── limits-externalid.c
│   │   │           │   ├── limits-externdecl.c
│   │   │           │   ├── limits-fnargs.c
│   │   │           │   ├── limits-fndefn.c
│   │   │           │   ├── limits-idexternal.c
│   │   │           │   ├── limits-idinternal.c
│   │   │           │   ├── limits-pointer.c
│   │   │           │   ├── limits-stringlit.c
│   │   │           │   ├── limits-structmem.c
│   │   │           │   ├── limits-structnest.c
│   │   │           │   ├── ll1.c
│   │   │           │   ├── llbug.c
│   │   │           │   ├── lll.c
│   │   │           │   ├── load8.c
│   │   │           │   ├── loadhicc.c
│   │   │           │   ├── loop-1.c
│   │   │           │   ├── loop386.c
│   │   │           │   ├── lop.c
│   │   │           │   ├── m1.c
│   │   │           │   ├── m2.c
│   │   │           │   ├── m5.c
│   │   │           │   ├── m68.c
│   │   │           │   ├── m68k-byte-addr.c
│   │   │           │   ├── mangle-1.c
│   │   │           │   ├── mbyte.c
│   │   │           │   ├── mchar.c
│   │   │           │   ├── mcmp.c
│   │   │           │   ├── mdouble.c
│   │   │           │   ├── memcpy-1.c
│   │   │           │   ├── memcpy-2.c
│   │   │           │   ├── memtst.c
│   │   │           │   ├── mipscop-1.c
│   │   │           │   ├── mipscop-2.c
│   │   │           │   ├── mipscop-3.c
│   │   │           │   ├── mipscop-4.c
│   │   │           │   ├── miscomp.c
│   │   │           │   ├── mm.c
│   │   │           │   ├── mod.c
│   │   │           │   ├── modcc.c
│   │   │           │   ├── move.c
│   │   │           │   ├── move_qhi.c
│   │   │           │   ├── mregtst.c
│   │   │           │   ├── msp.c
│   │   │           │   ├── mtst.c
│   │   │           │   ├── mu.c
│   │   │           │   ├── mul.c
│   │   │           │   ├── mword.c
│   │   │           │   ├── mword1.c
│   │   │           │   ├── n.c
│   │   │           │   ├── n1.c
│   │   │           │   ├── nand.c
│   │   │           │   ├── neg.c
│   │   │           │   ├── nested-1.c
│   │   │           │   ├── nested-2.c
│   │   │           │   ├── o.c
│   │   │           │   ├── omit.c
│   │   │           │   ├── opout.c
│   │   │           │   ├── opt.c
│   │   │           │   ├── or.c
│   │   │           │   ├── or386.c
│   │   │           │   ├── p.c
│   │   │           │   ├── packed-1.c
│   │   │           │   ├── parms.c
│   │   │           │   ├── pass.c
│   │   │           │   ├── pc44485.c
│   │   │           │   ├── pmt.c
│   │   │           │   ├── poor.c
│   │   │           │   ├── pp.c
│   │   │           │   ├── pr12517.c
│   │   │           │   ├── pr12578.c
│   │   │           │   ├── pr12899.c
│   │   │           │   ├── pr13066-1.c
│   │   │           │   ├── pr13889.c
│   │   │           │   ├── pr14692.c
│   │   │           │   ├── pr14730.c
│   │   │           │   ├── pr15245.c
│   │   │           │   ├── pr16461.c
│   │   │           │   ├── pr16566-1.c
│   │   │           │   ├── pr16566-2.c
│   │   │           │   ├── pr16566-3.c
│   │   │           │   ├── pr16808.c
│   │   │           │   ├── pr17119.c
│   │   │           │   ├── pr17273.c
│   │   │           │   ├── pr17397.c
│   │   │           │   ├── pr17407.c
│   │   │           │   ├── pr17408.c
│   │   │           │   ├── pr17529.c
│   │   │           │   ├── pr17558.c
│   │   │           │   ├── pr17656.c
│   │   │           │   ├── pr17906.c
│   │   │           │   ├── pr17913.c
│   │   │           │   ├── pr18291.c
│   │   │           │   ├── pr18299-1.c
│   │   │           │   ├── pr18712.c
│   │   │           │   ├── pr18903.c
│   │   │           │   ├── pr19080.c
│   │   │           │   ├── pr19121.c
│   │   │           │   ├── pr19357.c
│   │   │           │   ├── pr19736.c
│   │   │           │   ├── pr19853.c
│   │   │           │   ├── pr20203.c
│   │   │           │   ├── pr20412.c
│   │   │           │   ├── pr20539-1.c
│   │   │           │   ├── pr20583.c
│   │   │           │   ├── pr20928.c
│   │   │           │   ├── pr21021.c
│   │   │           │   ├── pr21030.c
│   │   │           │   ├── pr21293.c
│   │   │           │   ├── pr21356.c
│   │   │           │   ├── pr21380.c
│   │   │           │   ├── pr21532.c
│   │   │           │   ├── pr21562.c
│   │   │           │   ├── pr21638.c
│   │   │           │   ├── pr21728.c
│   │   │           │   ├── pr21761.c
│   │   │           │   ├── pr21839.c
│   │   │           │   ├── pr21840.c
│   │   │           │   ├── pr22013-1.c
│   │   │           │   ├── pr22269.c
│   │   │           │   ├── pr22379.c
│   │   │           │   ├── pr22398.c
│   │   │           │   ├── pr22422.c
│   │   │           │   ├── pr22531.c
│   │   │           │   ├── pr22589-1.c
│   │   │           │   ├── pr23233-1.c
│   │   │           │   ├── pr23237.c
│   │   │           │   ├── pr23435.c
│   │   │           │   ├── pr23445.c
│   │   │           │   ├── pr23476.c
│   │   │           │   ├── pr23929.c
│   │   │           │   ├── pr23944.c
│   │   │           │   ├── pr23946.c
│   │   │           │   ├── pr23960.c
│   │   │           │   ├── pr24227.c
│   │   │           │   ├── pr24883.c
│   │   │           │   ├── pr24930.c
│   │   │           │   ├── pr25224.c
│   │   │           │   ├── pr25310.c
│   │   │           │   ├── pr25311.c
│   │   │           │   ├── pr25483.c
│   │   │           │   ├── pr25513.c
│   │   │           │   ├── pr25514.c
│   │   │           │   ├── pr25860.c
│   │   │           │   ├── pr25861.c
│   │   │           │   ├── pr26213.c
│   │   │           │   ├── pr26255.c
│   │   │           │   ├── pr26425.c
│   │   │           │   ├── pr26622.c
│   │   │           │   ├── pr26626.c
│   │   │           │   ├── pr26725.c
│   │   │           │   ├── pr26781-1.c
│   │   │           │   ├── pr26781-2.c
│   │   │           │   ├── pr26833.c
│   │   │           │   ├── pr26840.c
│   │   │           │   ├── pr27087.c
│   │   │           │   ├── pr27282.c
│   │   │           │   ├── pr27341-1.c
│   │   │           │   ├── pr27341-2.c
│   │   │           │   ├── pr27373.c
│   │   │           │   ├── pr27528.c
│   │   │           │   ├── pr27571.c
│   │   │           │   ├── pr27863.c
│   │   │           │   ├── pr27889.c
│   │   │           │   ├── pr27907.c
│   │   │           │   ├── pr28489.c
│   │   │           │   ├── pr28675.c
│   │   │           │   ├── pr28776-1.c
│   │   │           │   ├── pr28776-2.c
│   │   │           │   ├── pr28865.c
│   │   │           │   ├── pr28905.c
│   │   │           │   ├── pr29128.c
│   │   │           │   ├── pr29201.c
│   │   │           │   ├── pr29241.c
│   │   │           │   ├── pr29250.c
│   │   │           │   ├── pr29945.c
│   │   │           │   ├── pr30132.c
│   │   │           │   ├── pr30311.c
│   │   │           │   ├── pr30338.c
│   │   │           │   ├── pr30433.c
│   │   │           │   ├── pr30564-1.c
│   │   │           │   ├── pr30564-2.c
│   │   │           │   ├── pr30984.c
│   │   │           │   ├── pr31034.c
│   │   │           │   ├── pr31345-1.c
│   │   │           │   ├── pr31541.c
│   │   │           │   ├── pr31703.c
│   │   │           │   ├── pr31710.c
│   │   │           │   ├── pr31797.c
│   │   │           │   ├── pr31953.c
│   │   │           │   ├── pr32139.c
│   │   │           │   ├── pr32169.c
│   │   │           │   ├── pr32349.c
│   │   │           │   ├── pr32355.c
│   │   │           │   ├── pr32372.c
│   │   │           │   ├── pr32399.c
│   │   │           │   ├── pr32453.c
│   │   │           │   ├── pr32482.c
│   │   │           │   ├── pr32571.c
│   │   │           │   ├── pr32584.c
│   │   │           │   ├── pr32606.c
│   │   │           │   ├── pr32780.c
│   │   │           │   ├── pr32796.c
│   │   │           │   ├── pr32919.c
│   │   │           │   ├── pr32920.c
│   │   │           │   ├── pr32988.c
│   │   │           │   ├── pr33122.c
│   │   │           │   ├── pr33133.c
│   │   │           │   ├── pr33146.c
│   │   │           │   ├── pr33166.c
│   │   │           │   ├── pr33173.c
│   │   │           │   ├── pr33382.c
│   │   │           │   ├── pr33614.c
│   │   │           │   ├── pr33617.c
│   │   │           │   ├── pr33641.c
│   │   │           │   ├── pr33855.c
│   │   │           │   ├── pr34029-1.c
│   │   │           │   ├── pr34029-2.c
│   │   │           │   ├── pr34030.c
│   │   │           │   ├── pr34091.c
│   │   │           │   ├── pr34093.c
│   │   │           │   ├── pr34113.c
│   │   │           │   ├── pr34127.c
│   │   │           │   ├── pr34138.c
│   │   │           │   ├── pr34334.c
│   │   │           │   ├── pr34448.c
│   │   │           │   ├── pr34458.c
│   │   │           │   ├── pr34648.c
│   │   │           │   ├── pr34688.c
│   │   │           │   ├── pr34808.c
│   │   │           │   ├── pr34856.c
│   │   │           │   ├── pr34885.c
│   │   │           │   ├── pr34966.c
│   │   │           │   ├── pr34993.c
│   │   │           │   ├── pr35006.c
│   │   │           │   ├── pr35043.c
│   │   │           │   ├── pr35171.c
│   │   │           │   ├── pr35318.c
│   │   │           │   ├── pr35431.c
│   │   │           │   ├── pr35432.c
│   │   │           │   ├── pr35468.c
│   │   │           │   ├── pr35492.c
│   │   │           │   ├── pr35595.c
│   │   │           │   ├── pr35607.c
│   │   │           │   ├── pr35760.c
│   │   │           │   ├── pr35869.c
│   │   │           │   ├── pr36125.c
│   │   │           │   ├── pr36141.c
│   │   │           │   ├── pr36154.c
│   │   │           │   ├── pr36172.c
│   │   │           │   ├── pr36238.c
│   │   │           │   ├── pr36245.c
│   │   │           │   ├── pr36666.c
│   │   │           │   ├── pr36817.c
│   │   │           │   ├── pr36988.c
│   │   │           │   ├── pr37026.c
│   │   │           │   ├── pr37056.c
│   │   │           │   ├── pr37078.c
│   │   │           │   ├── pr37207.c
│   │   │           │   ├── pr37258.c
│   │   │           │   ├── pr37285.c
│   │   │           │   ├── pr37305.c
│   │   │           │   ├── pr37327.c
│   │   │           │   ├── pr37341.c
│   │   │           │   ├── pr37380.c
│   │   │           │   ├── pr37381.c
│   │   │           │   ├── pr37382.c
│   │   │           │   ├── pr37387.c
│   │   │           │   ├── pr37395.c
│   │   │           │   ├── pr37418-1.c
│   │   │           │   ├── pr37418-2.c
│   │   │           │   ├── pr37418-3.c
│   │   │           │   ├── pr37418-4.c
│   │   │           │   ├── pr37432.c
│   │   │           │   ├── pr37433-1.c
│   │   │           │   ├── pr37433.c
│   │   │           │   ├── pr37483.c
│   │   │           │   ├── pr37617.c
│   │   │           │   ├── pr37662.c
│   │   │           │   ├── pr37664.c
│   │   │           │   ├── pr37669-2.c
│   │   │           │   ├── pr37669.c
│   │   │           │   ├── pr37713.c
│   │   │           │   ├── pr37742-3.c
│   │   │           │   ├── pr37742.c
│   │   │           │   ├── pr37878.c
│   │   │           │   ├── pr37913.c
│   │   │           │   ├── pr37955.c
│   │   │           │   ├── pr37976.c
│   │   │           │   ├── pr37991.c
│   │   │           │   ├── pr38123.c
│   │   │           │   ├── pr38343-2.c
│   │   │           │   ├── pr38343.c
│   │   │           │   ├── pr38359.c
│   │   │           │   ├── pr38360.c
│   │   │           │   ├── pr38428.c
│   │   │           │   ├── pr38505.c
│   │   │           │   ├── pr38554.c
│   │   │           │   ├── pr38564.c
│   │   │           │   ├── pr38590-1.c
│   │   │           │   ├── pr38590-2.c
│   │   │           │   ├── pr38621.c
│   │   │           │   ├── pr38661-1.c
│   │   │           │   ├── pr38661.c
│   │   │           │   ├── pr38752.c
│   │   │           │   ├── pr38771.c
│   │   │           │   ├── pr38789.c
│   │   │           │   ├── pr38807.c
│   │   │           │   ├── pr38857.c
│   │   │           │   ├── pr38926.c
│   │   │           │   ├── pr39041.c
│   │   │           │   ├── pr39202.c
│   │   │           │   ├── pr39360.c
│   │   │           │   ├── pr39394.c
│   │   │           │   ├── pr39423-1.c
│   │   │           │   ├── pr39423-2.c
│   │   │           │   ├── pr39614-1.c
│   │   │           │   ├── pr39614-2.c
│   │   │           │   ├── pr39614-3.c
│   │   │           │   ├── pr39614-4.c
│   │   │           │   ├── pr39614-5.c
│   │   │           │   ├── pr39636.c
│   │   │           │   ├── pr39648.c
│   │   │           │   ├── pr39673-1.c
│   │   │           │   ├── pr39673-2.c
│   │   │           │   ├── pr39779.c
│   │   │           │   ├── pr39824.c
│   │   │           │   ├── pr39834.c
│   │   │           │   ├── pr39845.c
│   │   │           │   ├── pr39886.c
│   │   │           │   ├── pr39928-1.c
│   │   │           │   ├── pr39928-2.c
│   │   │           │   ├── pr39937.c
│   │   │           │   ├── pr39941.c
│   │   │           │   ├── pr39943.c
│   │   │           │   ├── pr39983.c
│   │   │           │   ├── pr39999.c
│   │   │           │   ├── pr40023.c
│   │   │           │   ├── pr40026.c
│   │   │           │   ├── pr40035.c
│   │   │           │   ├── pr40080.c
│   │   │           │   ├── pr40204.c
│   │   │           │   ├── pr40233.c
│   │   │           │   ├── pr40252.c
│   │   │           │   ├── pr40291.c
│   │   │           │   ├── pr40321.c
│   │   │           │   ├── pr40351.c
│   │   │           │   ├── pr40432.c
│   │   │           │   ├── pr40556.c
│   │   │           │   ├── pr40570.c
│   │   │           │   ├── pr40582.c
│   │   │           │   ├── pr40640.c
│   │   │           │   ├── pr40676.c
│   │   │           │   ├── pr40692.c
│   │   │           │   ├── pr40753.c
│   │   │           │   ├── pr40797.c
│   │   │           │   ├── pr40964.c
│   │   │           │   ├── pr41006-1.c
│   │   │           │   ├── pr41006-2.c
│   │   │           │   ├── pr41016.c
│   │   │           │   ├── pr41101.c
│   │   │           │   ├── pr41163.c
│   │   │           │   ├── pr41181.c
│   │   │           │   ├── pr41182-1.c
│   │   │           │   ├── pr41282.c
│   │   │           │   ├── pr41469.c
│   │   │           │   ├── pr41634.c
│   │   │           │   ├── pr41646.c
│   │   │           │   ├── pr41661.c
│   │   │           │   ├── pr41679.c
│   │   │           │   ├── pr41728.c
│   │   │           │   ├── pr41987.c
│   │   │           │   ├── pr42025-1.c
│   │   │           │   ├── pr42025-2.c
│   │   │           │   ├── pr42049.c
│   │   │           │   ├── pr42164.c
│   │   │           │   ├── pr42196-1.c
│   │   │           │   ├── pr42196-2.c
│   │   │           │   ├── pr42196-3.c
│   │   │           │   ├── pr42234.c
│   │   │           │   ├── pr42237.c
│   │   │           │   ├── pr42299.c
│   │   │           │   ├── pr42347.c
│   │   │           │   ├── pr42398.c
│   │   │           │   ├── pr42559.c
│   │   │           │   ├── pr42632.c
│   │   │           │   ├── pr42703.c
│   │   │           │   ├── pr42705.c
│   │   │           │   ├── pr42708-1.c
│   │   │           │   ├── pr42716.c
│   │   │           │   ├── pr42717.c
│   │   │           │   ├── pr42730.c
│   │   │           │   ├── pr42749.c
│   │   │           │   ├── pr42927.c
│   │   │           │   ├── pr42956.c
│   │   │           │   ├── pr42998.c
│   │   │           │   ├── pr43066.c
│   │   │           │   ├── pr43164.c
│   │   │           │   ├── pr43186.c
│   │   │           │   ├── pr43188.c
│   │   │           │   ├── pr43191.c
│   │   │           │   ├── pr43255.c
│   │   │           │   ├── pr43288.c
│   │   │           │   ├── pr43367.c
│   │   │           │   ├── pr43415.c
│   │   │           │   ├── pr43417.c
│   │   │           │   ├── pr43614.c
│   │   │           │   ├── pr43635.c
│   │   │           │   ├── pr43636.c
│   │   │           │   ├── pr43661.c
│   │   │           │   ├── pr43679.c
│   │   │           │   ├── pr43791.c
│   │   │           │   ├── pr43845.c
│   │   │           │   ├── pr44030.c
│   │   │           │   ├── pr44038.c
│   │   │           │   ├── pr44043.c
│   │   │           │   ├── pr44063.c
│   │   │           │   ├── pr44119.c
│   │   │           │   ├── pr44197.c
│   │   │           │   ├── pr44246.c
│   │   │           │   ├── pr44686.c
│   │   │           │   ├── pr44687.c
│   │   │           │   ├── pr44707.c
│   │   │           │   ├── pr44784.c
│   │   │           │   ├── pr44788.c
│   │   │           │   ├── pr44831.c
│   │   │           │   ├── pr44891.c
│   │   │           │   ├── pr44937.c
│   │   │           │   ├── pr44941.c
│   │   │           │   ├── pr44946.c
│   │   │           │   ├── pr44988.c
│   │   │           │   ├── pr45047.c
│   │   │           │   ├── pr45059.c
│   │   │           │   ├── pr45109.c
│   │   │           │   ├── pr45182.c
│   │   │           │   ├── pr45412.c
│   │   │           │   ├── pr45535.c
│   │   │           │   ├── pr45728.c
│   │   │           │   ├── pr45771.c
│   │   │           │   ├── pr45876.c
│   │   │           │   ├── pr45919.c
│   │   │           │   ├── pr45969-1.c
│   │   │           │   ├── pr46002.c
│   │   │           │   ├── pr46034.c
│   │   │           │   ├── pr46107.c
│   │   │           │   ├── pr46248.c
│   │   │           │   ├── pr46360.c
│   │   │           │   ├── pr46388.c
│   │   │           │   ├── pr46461.c
│   │   │           │   ├── pr46534.c
│   │   │           │   ├── pr46547-1.c
│   │   │           │   ├── pr46637.c
│   │   │           │   ├── pr46832.c
│   │   │           │   ├── pr46856.c
│   │   │           │   ├── pr46866.c
│   │   │           │   ├── pr46883.c
│   │   │           │   ├── pr46934.c
│   │   │           │   ├── pr47140.c
│   │   │           │   ├── pr47141.c
│   │   │           │   ├── pr47150.c
│   │   │           │   ├── pr47157.c
│   │   │           │   ├── pr47265.c
│   │   │           │   ├── pr47364-1.c
│   │   │           │   ├── pr47364-2.c
│   │   │           │   ├── pr47427.c
│   │   │           │   ├── pr47428.c
│   │   │           │   ├── pr47967.c
│   │   │           │   ├── pr48136.c
│   │   │           │   ├── pr48161.c
│   │   │           │   ├── pr48305.c
│   │   │           │   ├── pr48335-1.c
│   │   │           │   ├── pr48381.c
│   │   │           │   ├── pr48517.c
│   │   │           │   ├── pr48596.c
│   │   │           │   ├── pr48641.c
│   │   │           │   ├── pr48734.c
│   │   │           │   ├── pr48742.c
│   │   │           │   ├── pr48767.c
│   │   │           │   ├── pr48929.c
│   │   │           │   ├── pr49029.c
│   │   │           │   ├── pr49049.c
│   │   │           │   ├── pr49145.c
│   │   │           │   ├── pr49163.c
│   │   │           │   ├── pr49206.c
│   │   │           │   ├── pr49220.c
│   │   │           │   ├── pr49238.c
│   │   │           │   ├── pr49474.c
│   │   │           │   ├── pr49710.c
│   │   │           │   ├── pr49735.c
│   │   │           │   ├── pr50009.c
│   │   │           │   ├── pr50380.c
│   │   │           │   ├── pr50565-1.c
│   │   │           │   ├── pr50565-2.c
│   │   │           │   ├── pr50650.c
│   │   │           │   ├── pr51069.c
│   │   │           │   ├── pr51077.c
│   │   │           │   ├── pr51246.c
│   │   │           │   ├── pr51247.c
│   │   │           │   ├── pr51354.c
│   │   │           │   ├── pr51495.c
│   │   │           │   ├── pr51694.c
│   │   │           │   ├── pr51761.c
│   │   │           │   ├── pr51767.c
│   │   │           │   ├── pr51856.c
│   │   │           │   ├── pr52073.c
│   │   │           │   ├── pr52074.c
│   │   │           │   ├── pr52092.c
│   │   │           │   ├── pr52113.c
│   │   │           │   ├── pr52115.c
│   │   │           │   ├── pr52175.c
│   │   │           │   ├── pr52255.c
│   │   │           │   ├── pr52306.c
│   │   │           │   ├── pr52375.c
│   │   │           │   ├── pr52437.c
│   │   │           │   ├── pr52533.c
│   │   │           │   ├── pr52555.c
│   │   │           │   ├── pr52714.c
│   │   │           │   ├── pr52750.c
│   │   │           │   ├── pr52773.c
│   │   │           │   ├── pr52891-1.c
│   │   │           │   ├── pr52891-2.c
│   │   │           │   ├── pr52979-1.c
│   │   │           │   ├── pr53058.c
│   │   │           │   ├── pr53163.c
│   │   │           │   ├── pr53187.c
│   │   │           │   ├── pr53226.c
│   │   │           │   ├── pr53409.c
│   │   │           │   ├── pr53410-1.c
│   │   │           │   ├── pr53410-2.c
│   │   │           │   ├── pr53411.c
│   │   │           │   ├── pr53418-1.c
│   │   │           │   ├── pr53418-2.c
│   │   │           │   ├── pr53495.c
│   │   │           │   ├── pr53519.c
│   │   │           │   ├── pr53748.c
│   │   │           │   ├── pr53886.c
│   │   │           │   ├── pr54103-1.c
│   │   │           │   ├── pr54103-2.c
│   │   │           │   ├── pr54103-3.c
│   │   │           │   ├── pr54103-4.c
│   │   │           │   ├── pr54103-5.c
│   │   │           │   ├── pr54103-6.c
│   │   │           │   ├── pr54321.c
│   │   │           │   ├── pr54428.c
│   │   │           │   ├── pr54552-1.c
│   │   │           │   ├── pr54559.c
│   │   │           │   ├── pr54713-1.c
│   │   │           │   ├── pr54713-2.c
│   │   │           │   ├── pr54713-3.c
│   │   │           │   ├── pr54925.c
│   │   │           │   ├── pr55273.c
│   │   │           │   ├── pr55350.c
│   │   │           │   ├── pr55569.c
│   │   │           │   ├── pr55832.c
│   │   │           │   ├── pr55851.c
│   │   │           │   ├── pr55920.c
│   │   │           │   ├── pr55921.c
│   │   │           │   ├── pr55955.c
│   │   │           │   ├── pr56405.c
│   │   │           │   ├── pr56448.c
│   │   │           │   ├── pr56484.c
│   │   │           │   ├── pr56539.c
│   │   │           │   ├── pr56571.c
│   │   │           │   ├── pr56745.c
│   │   │           │   ├── pr56984.c
│   │   │           │   ├── pr57108.c
│   │   │           │   ├── pr57331.c
│   │   │           │   ├── pr57441.c
│   │   │           │   ├── pr57698.c
│   │   │           │   ├── pr58088.c
│   │   │           │   ├── pr58164.c
│   │   │           │   ├── pr58332.c
│   │   │           │   ├── pr58340.c
│   │   │           │   ├── pr58343.c
│   │   │           │   ├── pr58344.c
│   │   │           │   ├── pr58775.c
│   │   │           │   ├── pr58946.c
│   │   │           │   ├── pr58970-1.c
│   │   │           │   ├── pr58970-2.c
│   │   │           │   ├── pr58978.c
│   │   │           │   ├── pr58997.c
│   │   │           │   ├── pr59102.c
│   │   │           │   ├── pr59119.c
│   │   │           │   ├── pr59134.c
│   │   │           │   ├── pr59322.c
│   │   │           │   ├── pr59362.c
│   │   │           │   ├── pr59386.c
│   │   │           │   ├── pr59417.c
│   │   │           │   ├── pr59569-1.c
│   │   │           │   ├── pr59569-2.c
│   │   │           │   ├── pr59743.c
│   │   │           │   ├── pr59803.c
│   │   │           │   ├── pr59919.c
│   │   │           │   ├── pr60071.c
│   │   │           │   ├── pr60268.c
│   │   │           │   ├── pr60502.c
│   │   │           │   ├── pr60556.c
│   │   │           │   ├── pr60655-1.c
│   │   │           │   ├── pr60655-2.c
│   │   │           │   ├── pr61042.c
│   │   │           │   ├── pr61222-1.c
│   │   │           │   ├── pr61222-2.c
│   │   │           │   ├── pr61684.c
│   │   │           │   ├── pr61848.c
│   │   │           │   ├── pr62312.c
│   │   │           │   ├── pr63282.c
│   │   │           │   ├── pr63761.c
│   │   │           │   ├── pr64067.c
│   │   │           │   ├── pr64269.c
│   │   │           │   ├── pr64494.c
│   │   │           │   ├── pr65014.c
│   │   │           │   ├── pr65153.c
│   │   │           │   ├── pr65163.c
│   │   │           │   ├── pr65241.c
│   │   │           │   ├── pr65540.c
│   │   │           │   ├── pr65593.c
│   │   │           │   ├── pr65595.c
│   │   │           │   ├── pr65680.c
│   │   │           │   ├── pr65735.c
│   │   │           │   ├── pr65803.c
│   │   │           │   ├── pr65873.c
│   │   │           │   ├── pr65875.c
│   │   │           │   ├── pr66168.c
│   │   │           │   ├── pr67106.c
│   │   │           │   ├── pr67143.c
│   │   │           │   ├── pr67506.c
│   │   │           │   ├── pr67816.c
│   │   │           │   ├── pr68013.c
│   │   │           │   ├── pr69102.c
│   │   │           │   ├── pr69161.c
│   │   │           │   ├── pr69209.c
│   │   │           │   ├── pr69214.c
│   │   │           │   ├── pr69740-1.c
│   │   │           │   ├── pr69740-2.c
│   │   │           │   ├── pr69989-2.c
│   │   │           │   ├── pr69999.c
│   │   │           │   ├── pr70061.c
│   │   │           │   ├── pr70190.c
│   │   │           │   ├── pr70199.c
│   │   │           │   ├── pr70240.c
│   │   │           │   ├── pr70263-1.c
│   │   │           │   ├── pr70355.c
│   │   │           │   ├── pr70633.c
│   │   │           │   ├── pr70916.c
│   │   │           │   ├── pr71693.c
│   │   │           │   ├── pr71916.c
│   │   │           │   ├── pr72802.c
│   │   │           │   ├── pret-arg.c
│   │   │           │   ├── pta-1.c
│   │   │           │   ├── ptr-conv-1.c
│   │   │           │   ├── pyr.c
│   │   │           │   ├── pyr2.c
│   │   │           │   ├── q.c
│   │   │           │   ├── r.c
│   │   │           │   ├── r1.c
│   │   │           │   ├── rel.c
│   │   │           │   ├── rmsc.c
│   │   │           │   ├── round.c
│   │   │           │   ├── run.c
│   │   │           │   ├── s.c
│   │   │           │   ├── sar.c
│   │   │           │   ├── sc.c
│   │   │           │   ├── scal.c
│   │   │           │   ├── scc.c
│   │   │           │   ├── scond.c
│   │   │           │   ├── section.c
│   │   │           │   ├── selfrec.c
│   │   │           │   ├── seq.c
│   │   │           │   ├── set386.c
│   │   │           │   ├── set88.c
│   │   │           │   ├── sh.c
│   │   │           │   ├── shand.c
│   │   │           │   ├── shft.c
│   │   │           │   ├── shift.c
│   │   │           │   ├── shloop.c
│   │   │           │   ├── shm.c
│   │   │           │   ├── signext.c
│   │   │           │   ├── signext2.c
│   │   │           │   ├── sim.c
│   │   │           │   ├── simd-1.c
│   │   │           │   ├── simd-2.c
│   │   │           │   ├── simd-3.c
│   │   │           │   ├── simd-4.c
│   │   │           │   ├── simd-5.c
│   │   │           │   ├── simd-6.c
│   │   │           │   ├── simple.c
│   │   │           │   ├── sizeof-macros-1.c
│   │   │           │   ├── sne.c
│   │   │           │   ├── sound.c
│   │   │           │   ├── sparcbug.c
│   │   │           │   ├── speed.c
│   │   │           │   ├── sra-1.c
│   │   │           │   ├── ssa-pre-1.c
│   │   │           │   ├── statement-expression-1.c
│   │   │           │   ├── stor.c
│   │   │           │   ├── store0.c
│   │   │           │   ├── storecc.c
│   │   │           │   ├── str.c
│   │   │           │   ├── strcpy-1.c
│   │   │           │   ├── strcpy-2.c
│   │   │           │   ├── stru.c
│   │   │           │   ├── struct-non-lval-1.c
│   │   │           │   ├── struct-non-lval-2.c
│   │   │           │   ├── struct-non-lval-3.c
│   │   │           │   ├── structret.c
│   │   │           │   ├── structs.c
│   │   │           │   ├── stuct.c
│   │   │           │   ├── sub32.c
│   │   │           │   ├── subcc.c
│   │   │           │   ├── subcse.c
│   │   │           │   ├── switch-1.c
│   │   │           │   ├── sym.c
│   │   │           │   ├── symconst.c
│   │   │           │   ├── sync-1.c
│   │   │           │   ├── sync-2.c
│   │   │           │   ├── sync-3.c
│   │   │           │   ├── t.c
│   │   │           │   ├── test-flow.c
│   │   │           │   ├── test-loop.c
│   │   │           │   ├── test.c
│   │   │           │   ├── time.c
│   │   │           │   ├── tmp.c
│   │   │           │   ├── trivial.c
│   │   │           │   ├── trunc.c
│   │   │           │   ├── trunctfdf.c
│   │   │           │   ├── u.c
│   │   │           │   ├── udconvert.c
│   │   │           │   ├── udivmod4.c
│   │   │           │   ├── unalign-1.c
│   │   │           │   ├── uns.c
│   │   │           │   ├── uns_tst.c
│   │   │           │   ├── uuarg.c
│   │   │           │   ├── v.c
│   │   │           │   ├── vector-1.c
│   │   │           │   ├── vector-2.c
│   │   │           │   ├── vector-3.c
│   │   │           │   ├── vector-4.c
│   │   │           │   ├── vector-5.c
│   │   │           │   ├── vector-6.c
│   │   │           │   ├── vector-align-1.c
│   │   │           │   ├── vla-const-1.c
│   │   │           │   ├── vla-const-2.c
│   │   │           │   ├── volatile-1.c
│   │   │           │   ├── w.c
│   │   │           │   ├── widechar-1.c
│   │   │           │   ├── ww.c
│   │   │           │   ├── x.c
│   │   │           │   ├── xb.c
│   │   │           │   ├── xbg.c
│   │   │           │   ├── xc.c
│   │   │           │   ├── xcsebug.c
│   │   │           │   ├── xdi.c
│   │   │           │   ├── xfoo.c
│   │   │           │   ├── xi.c
│   │   │           │   ├── xlop.c
│   │   │           │   ├── xmtst.c
│   │   │           │   ├── xneg.c
│   │   │           │   ├── xopt.c
│   │   │           │   ├── xor.c
│   │   │           │   ├── xorn.c
│   │   │           │   ├── xp.c
│   │   │           │   ├── xpp.c
│   │   │           │   ├── xs.c
│   │   │           │   ├── xsh.c
│   │   │           │   ├── xz.c
│   │   │           │   ├── xzz.c
│   │   │           │   ├── zero-strct-1.c
│   │   │           │   ├── zero-strct-2.c
│   │   │           │   ├── zero-strct-3.c
│   │   │           │   ├── zero-strct-4.c
│   │   │           │   └── zero-strct-5.c
│   │   │           ├── execute/
│   │   │           │   ├── 20000112-1.c
│   │   │           │   ├── 20000113-1.c
│   │   │           │   ├── 20000121-1.c
│   │   │           │   ├── 20000205-1.c
│   │   │           │   ├── 20000217-1.c
│   │   │           │   ├── 20000223-1.c
│   │   │           │   ├── 20000224-1.c
│   │   │           │   ├── 20000225-1.c
│   │   │           │   ├── 20000227-1.c
│   │   │           │   ├── 20000313-1.c
│   │   │           │   ├── 20000314-1.c
│   │   │           │   ├── 20000314-2.c
│   │   │           │   ├── 20000314-3.c
│   │   │           │   ├── 20000402-1.c
│   │   │           │   ├── 20000403-1.c
│   │   │           │   ├── 20000412-1.c
│   │   │           │   ├── 20000412-2.c
│   │   │           │   ├── 20000412-3.c
│   │   │           │   ├── 20000412-4.c
│   │   │           │   ├── 20000412-5.c
│   │   │           │   ├── 20000412-6.c
│   │   │           │   ├── 20000419-1.c
│   │   │           │   ├── 20000422-1.c
│   │   │           │   ├── 20000503-1.c
│   │   │           │   ├── 20000511-1.c
│   │   │           │   ├── 20000519-1.c
│   │   │           │   ├── 20000519-2.c
│   │   │           │   ├── 20000523-1.c
│   │   │           │   ├── 20000528-1.c
│   │   │           │   ├── 20000603-1.c
│   │   │           │   ├── 20000605-1.c
│   │   │           │   ├── 20000605-2.c
│   │   │           │   ├── 20000605-3.c
│   │   │           │   ├── 20000622-1.c
│   │   │           │   ├── 20000703-1.c
│   │   │           │   ├── 20000706-1.c
│   │   │           │   ├── 20000706-2.c
│   │   │           │   ├── 20000706-3.c
│   │   │           │   ├── 20000706-4.c
│   │   │           │   ├── 20000706-5.c
│   │   │           │   ├── 20000707-1.c
│   │   │           │   ├── 20000715-1.c
│   │   │           │   ├── 20000715-2.c
│   │   │           │   ├── 20000717-1.c
│   │   │           │   ├── 20000717-2.c
│   │   │           │   ├── 20000717-3.c
│   │   │           │   ├── 20000717-4.c
│   │   │           │   ├── 20000717-5.c
│   │   │           │   ├── 20000722-1.c
│   │   │           │   ├── 20000726-1.c
│   │   │           │   ├── 20000731-1.c
│   │   │           │   ├── 20000731-2.c
│   │   │           │   ├── 20000801-1.c
│   │   │           │   ├── 20000801-2.c
│   │   │           │   ├── 20000801-3.c
│   │   │           │   ├── 20000801-4.c
│   │   │           │   ├── 20000808-1.c
│   │   │           │   ├── 20000815-1.c
│   │   │           │   ├── 20000818-1.c
│   │   │           │   ├── 20000819-1.c
│   │   │           │   ├── 20000822-1.c
│   │   │           │   ├── 20000910-1.c
│   │   │           │   ├── 20000910-2.c
│   │   │           │   ├── 20000914-1.c
│   │   │           │   ├── 20000917-1.c
│   │   │           │   ├── 20001009-1.c
│   │   │           │   ├── 20001009-2.c
│   │   │           │   ├── 20001011-1.c
│   │   │           │   ├── 20001013-1.c
│   │   │           │   ├── 20001017-1.c
│   │   │           │   ├── 20001017-2.c
│   │   │           │   ├── 20001024-1.c
│   │   │           │   ├── 20001026-1.c
│   │   │           │   ├── 20001027-1.c
│   │   │           │   ├── 20001031-1.c
│   │   │           │   ├── 20001101.c
│   │   │           │   ├── 20001108-1.c
│   │   │           │   ├── 20001111-1.c
│   │   │           │   ├── 20001112-1.c
│   │   │           │   ├── 20001121-1.c
│   │   │           │   ├── 20001124-1.c
│   │   │           │   ├── 20001130-1.c
│   │   │           │   ├── 20001130-2.c
│   │   │           │   ├── 20001203-1.c
│   │   │           │   ├── 20001203-2.c
│   │   │           │   ├── 20001221-1.c
│   │   │           │   ├── 20001228-1.c
│   │   │           │   ├── 20001229-1.c
│   │   │           │   ├── 20010106-1.c
│   │   │           │   ├── 20010114-1.c
│   │   │           │   ├── 20010116-1.c
│   │   │           │   ├── 20010118-1.c
│   │   │           │   ├── 20010119-1.c
│   │   │           │   ├── 20010122-1.c
│   │   │           │   ├── 20010123-1.c
│   │   │           │   ├── 20010129-1.c
│   │   │           │   ├── 20010206-1.c
│   │   │           │   ├── 20010209-1.c
│   │   │           │   ├── 20010221-1.c
│   │   │           │   ├── 20010222-1.c
│   │   │           │   ├── 20010224-1.c
│   │   │           │   ├── 20010325-1.c
│   │   │           │   ├── 20010329-1.c
│   │   │           │   ├── 20010403-1.c
│   │   │           │   ├── 20010409-1.c
│   │   │           │   ├── 20010422-1.c
│   │   │           │   ├── 20010518-1.c
│   │   │           │   ├── 20010518-2.c
│   │   │           │   ├── 20010520-1.c
│   │   │           │   ├── 20010604-1.c
│   │   │           │   ├── 20010605-1.c
│   │   │           │   ├── 20010605-2.c
│   │   │           │   ├── 20010711-1.c
│   │   │           │   ├── 20010717-1.c
│   │   │           │   ├── 20010723-1.c
│   │   │           │   ├── 20010904-1.c
│   │   │           │   ├── 20010904-2.c
│   │   │           │   ├── 20010910-1.c
│   │   │           │   ├── 20010915-1.c
│   │   │           │   ├── 20010924-1.c
│   │   │           │   ├── 20010925-1.c
│   │   │           │   ├── 20011008-3.c
│   │   │           │   ├── 20011019-1.c
│   │   │           │   ├── 20011024-1.c
│   │   │           │   ├── 20011109-1.c
│   │   │           │   ├── 20011109-2.c
│   │   │           │   ├── 20011113-1.c
│   │   │           │   ├── 20011114-1.c
│   │   │           │   ├── 20011115-1.c
│   │   │           │   ├── 20011121-1.c
│   │   │           │   ├── 20011126-1.c
│   │   │           │   ├── 20011126-2.c
│   │   │           │   ├── 20011128-1.c
│   │   │           │   ├── 20011217-1.c
│   │   │           │   ├── 20011219-1.c
│   │   │           │   ├── 20011223-1.c
│   │   │           │   ├── 20020103-1.c
│   │   │           │   ├── 20020107-1.c
│   │   │           │   ├── 20020108-1.c
│   │   │           │   ├── 20020118-1.c
│   │   │           │   ├── 20020127-1.c
│   │   │           │   ├── 20020129-1.c
│   │   │           │   ├── 20020201-1.c
│   │   │           │   ├── 20020206-1.c
│   │   │           │   ├── 20020206-2.c
│   │   │           │   ├── 20020213-1.c
│   │   │           │   ├── 20020215-1.c
│   │   │           │   ├── 20020216-1.c
│   │   │           │   ├── 20020219-1.c
│   │   │           │   ├── 20020225-1.c
│   │   │           │   ├── 20020225-2.c
│   │   │           │   ├── 20020226-1.c
│   │   │           │   ├── 20020227-1.c
│   │   │           │   ├── 20020307-1.c
│   │   │           │   ├── 20020314-1.c
│   │   │           │   ├── 20020320-1.c
│   │   │           │   ├── 20020321-1.c
│   │   │           │   ├── 20020328-1.c
│   │   │           │   ├── 20020402-1.c
│   │   │           │   ├── 20020402-2.c
│   │   │           │   ├── 20020402-3.c
│   │   │           │   ├── 20020404-1.c
│   │   │           │   ├── 20020406-1.c
│   │   │           │   ├── 20020411-1.c
│   │   │           │   ├── 20020412-1.c
│   │   │           │   ├── 20020413-1.c
│   │   │           │   ├── 20020418-1.c
│   │   │           │   ├── 20020423-1.c
│   │   │           │   ├── 20020503-1.c
│   │   │           │   ├── 20020506-1.c
│   │   │           │   ├── 20020508-1.c
│   │   │           │   ├── 20020508-2.c
│   │   │           │   ├── 20020508-3.c
│   │   │           │   ├── 20020510-1.c
│   │   │           │   ├── 20020529-1.c
│   │   │           │   ├── 20020611-1.c
│   │   │           │   ├── 20020614-1.c
│   │   │           │   ├── 20020615-1.c
│   │   │           │   ├── 20020619-1.c
│   │   │           │   ├── 20020716-1.c
│   │   │           │   ├── 20020720-1.c
│   │   │           │   ├── 20020805-1.c
│   │   │           │   ├── 20020810-1.c
│   │   │           │   ├── 20020819-1.c
│   │   │           │   ├── 20020904-1.c
│   │   │           │   ├── 20020911-1.c
│   │   │           │   ├── 20020916-1.c
│   │   │           │   ├── 20020920-1.c
│   │   │           │   ├── 20021010-1.c
│   │   │           │   ├── 20021010-2.c
│   │   │           │   ├── 20021011-1.c
│   │   │           │   ├── 20021015-1.c
│   │   │           │   ├── 20021024-1.c
│   │   │           │   ├── 20021111-1.c
│   │   │           │   ├── 20021113-1.c
│   │   │           │   ├── 20021118-1.c
│   │   │           │   ├── 20021118-2.c
│   │   │           │   ├── 20021118-3.c
│   │   │           │   ├── 20021119-1.c
│   │   │           │   ├── 20021120-1.c
│   │   │           │   ├── 20021120-2.c
│   │   │           │   ├── 20021120-3.c
│   │   │           │   ├── 20021127-1.c
│   │   │           │   ├── 20021204-1.c
│   │   │           │   ├── 20021219-1.c
│   │   │           │   ├── 20030105-1.c
│   │   │           │   ├── 20030109-1.c
│   │   │           │   ├── 20030117-1.c
│   │   │           │   ├── 20030120-1.c
│   │   │           │   ├── 20030120-2.c
│   │   │           │   ├── 20030125-1.c
│   │   │           │   ├── 20030128-1.c
│   │   │           │   ├── 20030203-1.c
│   │   │           │   ├── 20030209-1.c
│   │   │           │   ├── 20030216-1.c
│   │   │           │   ├── 20030218-1.c
│   │   │           │   ├── 20030221-1.c
│   │   │           │   ├── 20030222-1.c
│   │   │           │   ├── 20030224-2.c
│   │   │           │   ├── 20030307-1.c
│   │   │           │   ├── 20030313-1.c
│   │   │           │   ├── 20030316-1.c
│   │   │           │   ├── 20030323-1.c
│   │   │           │   ├── 20030330-1.c
│   │   │           │   ├── 20030401-1.c
│   │   │           │   ├── 20030403-1.c
│   │   │           │   ├── 20030404-1.c
│   │   │           │   ├── 20030408-1.c
│   │   │           │   ├── 20030501-1.c
│   │   │           │   ├── 20030606-1.c
│   │   │           │   ├── 20030613-1.c
│   │   │           │   ├── 20030626-1.c
│   │   │           │   ├── 20030626-2.c
│   │   │           │   ├── 20030714-1.c
│   │   │           │   ├── 20030715-1.c
│   │   │           │   ├── 20030717-1.c
│   │   │           │   ├── 20030718-1.c
│   │   │           │   ├── 20030811-1.c
│   │   │           │   ├── 20030821-1.c
│   │   │           │   ├── 20030828-1.c
│   │   │           │   ├── 20030828-2.c
│   │   │           │   ├── 20030903-1.c
│   │   │           │   ├── 20030909-1.c
│   │   │           │   ├── 20030910-1.c
│   │   │           │   ├── 20030913-1.c
│   │   │           │   ├── 20030914-1.c
│   │   │           │   ├── 20030914-2.c
│   │   │           │   ├── 20030916-1.c
│   │   │           │   ├── 20030920-1.c
│   │   │           │   ├── 20030928-1.c
│   │   │           │   ├── 20031003-1.c
│   │   │           │   ├── 20031010-1.c
│   │   │           │   ├── 20031011-1.c
│   │   │           │   ├── 20031012-1.c
│   │   │           │   ├── 20031020-1.c
│   │   │           │   ├── 20031201-1.c
│   │   │           │   ├── 20031204-1.c
│   │   │           │   ├── 20031211-1.c
│   │   │           │   ├── 20031211-2.c
│   │   │           │   ├── 20031214-1.c
│   │   │           │   ├── 20031215-1.c
│   │   │           │   ├── 20031216-1.c
│   │   │           │   ├── 20040208-1.c
│   │   │           │   ├── 20040218-1.c
│   │   │           │   ├── 20040223-1.c
│   │   │           │   ├── 20040302-1.c
│   │   │           │   ├── 20040307-1.c
│   │   │           │   ├── 20040308-1.c
│   │   │           │   ├── 20040309-1.c
│   │   │           │   ├── 20040311-1.c
│   │   │           │   ├── 20040313-1.c
│   │   │           │   ├── 20040319-1.c
│   │   │           │   ├── 20040331-1.c
│   │   │           │   ├── 20040409-1.c
│   │   │           │   ├── 20040409-2.c
│   │   │           │   ├── 20040409-3.c
│   │   │           │   ├── 20040411-1.c
│   │   │           │   ├── 20040423-1.c
│   │   │           │   ├── 20040520-1.c
│   │   │           │   ├── 20040625-1.c
│   │   │           │   ├── 20040629-1.c
│   │   │           │   ├── 20040703-1.c
│   │   │           │   ├── 20040704-1.c
│   │   │           │   ├── 20040705-1.c
│   │   │           │   ├── 20040705-2.c
│   │   │           │   ├── 20040706-1.c
│   │   │           │   ├── 20040707-1.c
│   │   │           │   ├── 20040709-1.c
│   │   │           │   ├── 20040709-2.c
│   │   │           │   ├── 20040805-1.c
│   │   │           │   ├── 20040811-1.c
│   │   │           │   ├── 20040820-1.c
│   │   │           │   ├── 20040823-1.c
│   │   │           │   ├── 20040831-1.c
│   │   │           │   ├── 20040917-1.c
│   │   │           │   ├── 20041011-1.c
│   │   │           │   ├── 20041019-1.c
│   │   │           │   ├── 20041112-1.c
│   │   │           │   ├── 20041113-1.c
│   │   │           │   ├── 20041114-1.c
│   │   │           │   ├── 20041124-1.c
│   │   │           │   ├── 20041126-1.c
│   │   │           │   ├── 20041201-1.c
│   │   │           │   ├── 20041210-1.c
│   │   │           │   ├── 20041212-1.c
│   │   │           │   ├── 20041213-2.c
│   │   │           │   ├── 20041214-1.c
│   │   │           │   ├── 20041218-1.c
│   │   │           │   ├── 20041218-2.c
│   │   │           │   ├── 20050104-1.c
│   │   │           │   ├── 20050106-1.c
│   │   │           │   ├── 20050107-1.c
│   │   │           │   ├── 20050111-1.c
│   │   │           │   ├── 20050119-1.c
│   │   │           │   ├── 20050119-2.c
│   │   │           │   ├── 20050121-1.c
│   │   │           │   ├── 20050124-1.c
│   │   │           │   ├── 20050125-1.c
│   │   │           │   ├── 20050131-1.c
│   │   │           │   ├── 20050203-1.c
│   │   │           │   ├── 20050215-1.c
│   │   │           │   ├── 20050218-1.c
│   │   │           │   ├── 20050224-1.c
│   │   │           │   ├── 20050316-1.c
│   │   │           │   ├── 20050316-2.c
│   │   │           │   ├── 20050316-3.c
│   │   │           │   ├── 20050410-1.c
│   │   │           │   ├── 20050502-1.c
│   │   │           │   ├── 20050502-2.c
│   │   │           │   ├── 20050604-1.c
│   │   │           │   ├── 20050607-1.c
│   │   │           │   ├── 20050613-1.c
│   │   │           │   ├── 20050713-1.c
│   │   │           │   ├── 20050826-1.c
│   │   │           │   ├── 20050826-2.c
│   │   │           │   ├── 20050929-1.c
│   │   │           │   ├── 20051012-1.c
│   │   │           │   ├── 20051021-1.c
│   │   │           │   ├── 20051104-1.c
│   │   │           │   ├── 20051110-1.c
│   │   │           │   ├── 20051110-2.c
│   │   │           │   ├── 20051113-1.c
│   │   │           │   ├── 20051215-1.c
│   │   │           │   ├── 20060102-1.c
│   │   │           │   ├── 20060110-1.c
│   │   │           │   ├── 20060110-2.c
│   │   │           │   ├── 20060127-1.c
│   │   │           │   ├── 20060412-1.c
│   │   │           │   ├── 20060420-1.c
│   │   │           │   ├── 20060905-1.c
│   │   │           │   ├── 20060910-1.c
│   │   │           │   ├── 20060929-1.c
│   │   │           │   ├── 20060930-1.c
│   │   │           │   ├── 20060930-2.c
│   │   │           │   ├── 20061031-1.c
│   │   │           │   ├── 20061101-1.c
│   │   │           │   ├── 20061101-2.c
│   │   │           │   ├── 20061220-1.c
│   │   │           │   ├── 20070201-1.c
│   │   │           │   ├── 20070212-1.c
│   │   │           │   ├── 20070212-2.c
│   │   │           │   ├── 20070212-3.c
│   │   │           │   ├── 20070424-1.c
│   │   │           │   ├── 20070517-1.c
│   │   │           │   ├── 20070614-1.c
│   │   │           │   ├── 20070623-1.c
│   │   │           │   ├── 20070724-1.c
│   │   │           │   ├── 20070824-1.c
│   │   │           │   ├── 20070919-1.c
│   │   │           │   ├── 20071011-1.c
│   │   │           │   ├── 20071018-1.c
│   │   │           │   ├── 20071029-1.c
│   │   │           │   ├── 20071030-1.c
│   │   │           │   ├── 20071108-1.c
│   │   │           │   ├── 20071120-1.c
│   │   │           │   ├── 20071202-1.c
│   │   │           │   ├── 20071205-1.c
│   │   │           │   ├── 20071210-1.c
│   │   │           │   ├── 20071211-1.c
│   │   │           │   ├── 20071213-1.c
│   │   │           │   ├── 20071216-1.c
│   │   │           │   ├── 20071219-1.c
│   │   │           │   ├── 20071220-1.c
│   │   │           │   ├── 20071220-2.c
│   │   │           │   ├── 20080117-1.c
│   │   │           │   ├── 20080122-1.c
│   │   │           │   ├── 20080222-1.c
│   │   │           │   ├── 20080408-1.c
│   │   │           │   ├── 20080424-1.c
│   │   │           │   ├── 20080502-1.c
│   │   │           │   ├── 20080506-1.c
│   │   │           │   ├── 20080506-2.c
│   │   │           │   ├── 20080519-1.c
│   │   │           │   ├── 20080522-1.c
│   │   │           │   ├── 20080529-1.c
│   │   │           │   ├── 20080604-1.c
│   │   │           │   ├── 20080719-1.c
│   │   │           │   ├── 20080813-1.c
│   │   │           │   ├── 20081103-1.c
│   │   │           │   ├── 20081112-1.c
│   │   │           │   ├── 20081117-1.c
│   │   │           │   ├── 20081218-1.c
│   │   │           │   ├── 20090113-1.c
│   │   │           │   ├── 20090113-2.c
│   │   │           │   ├── 20090113-3.c
│   │   │           │   ├── 20090207-1.c
│   │   │           │   ├── 20090219-1.c
│   │   │           │   ├── 20090527-1.c
│   │   │           │   ├── 20090623-1.c
│   │   │           │   ├── 20090711-1.c
│   │   │           │   ├── 20090814-1.c
│   │   │           │   ├── 20091229-1.c
│   │   │           │   ├── 20100209-1.c
│   │   │           │   ├── 20100316-1.c
│   │   │           │   ├── 20100416-1.c
│   │   │           │   ├── 20100430-1.c
│   │   │           │   ├── 20100708-1.c
│   │   │           │   ├── 20100805-1.c
│   │   │           │   ├── 20100827-1.c
│   │   │           │   ├── 20101011-1.c
│   │   │           │   ├── 20101013-1.c
│   │   │           │   ├── 20101025-1.c
│   │   │           │   ├── 20110418-1.c
│   │   │           │   ├── 20111208-1.c
│   │   │           │   ├── 20111212-1.c
│   │   │           │   ├── 20111227-1.c
│   │   │           │   ├── 20120105-1.c
│   │   │           │   ├── 20120111-1.c
│   │   │           │   ├── 20120207-1.c
│   │   │           │   ├── 20120427-1.c
│   │   │           │   ├── 20120427-2.c
│   │   │           │   ├── 20120615-1.c
│   │   │           │   ├── 20120808-1.c
│   │   │           │   ├── 20120817-1.c
│   │   │           │   ├── 20120919-1.c
│   │   │           │   ├── 20121108-1.c
│   │   │           │   ├── 20131127-1.c
│   │   │           │   ├── 20140212-1.c
│   │   │           │   ├── 20140212-2.c
│   │   │           │   ├── 20140326-1.c
│   │   │           │   ├── 20140425-1.c
│   │   │           │   ├── 20140622-1.c
│   │   │           │   ├── 20140828-1.c
│   │   │           │   ├── 20141022-1.c
│   │   │           │   ├── 20141107-1.c
│   │   │           │   ├── 20141125-1.c
│   │   │           │   ├── 20150611-1.c
│   │   │           │   ├── 900409-1.c
│   │   │           │   ├── 920202-1.c
│   │   │           │   ├── 920302-1.c
│   │   │           │   ├── 920409-1.c
│   │   │           │   ├── 920410-1.c
│   │   │           │   ├── 920411-1.c
│   │   │           │   ├── 920415-1.c
│   │   │           │   ├── 920428-1.c
│   │   │           │   ├── 920428-2.c
│   │   │           │   ├── 920429-1.c
│   │   │           │   ├── 920501-1.c
│   │   │           │   ├── 920501-2.c
│   │   │           │   ├── 920501-3.c
│   │   │           │   ├── 920501-4.c
│   │   │           │   ├── 920501-5.c
│   │   │           │   ├── 920501-6.c
│   │   │           │   ├── 920501-7.c
│   │   │           │   ├── 920501-8.c
│   │   │           │   ├── 920501-9.c
│   │   │           │   ├── 920506-1.c
│   │   │           │   ├── 920520-1.c
│   │   │           │   ├── 920603-1.c
│   │   │           │   ├── 920604-1.c
│   │   │           │   ├── 920612-1.c
│   │   │           │   ├── 920612-2.c
│   │   │           │   ├── 920618-1.c
│   │   │           │   ├── 920625-1.c
│   │   │           │   ├── 920710-1.c
│   │   │           │   ├── 920711-1.c
│   │   │           │   ├── 920721-1.c
│   │   │           │   ├── 920721-2.c
│   │   │           │   ├── 920721-3.c
│   │   │           │   ├── 920721-4.c
│   │   │           │   ├── 920726-1.c
│   │   │           │   ├── 920728-1.c
│   │   │           │   ├── 920730-1.c
│   │   │           │   ├── 920731-1.c
│   │   │           │   ├── 920810-1.c
│   │   │           │   ├── 920812-1.c
│   │   │           │   ├── 920829-1.c
│   │   │           │   ├── 920908-1.c
│   │   │           │   ├── 920908-2.c
│   │   │           │   ├── 920909-1.c
│   │   │           │   ├── 920922-1.c
│   │   │           │   ├── 920929-1.c
│   │   │           │   ├── 921006-1.c
│   │   │           │   ├── 921007-1.c
│   │   │           │   ├── 921013-1.c
│   │   │           │   ├── 921016-1.c
│   │   │           │   ├── 921017-1.c
│   │   │           │   ├── 921019-1.c
│   │   │           │   ├── 921019-2.c
│   │   │           │   ├── 921029-1.c
│   │   │           │   ├── 921104-1.c
│   │   │           │   ├── 921110-1.c
│   │   │           │   ├── 921112-1.c
│   │   │           │   ├── 921113-1.c
│   │   │           │   ├── 921117-1.c
│   │   │           │   ├── 921123-1.c
│   │   │           │   ├── 921123-2.c
│   │   │           │   ├── 921124-1.c
│   │   │           │   ├── 921202-1.c
│   │   │           │   ├── 921202-2.c
│   │   │           │   ├── 921204-1.c
│   │   │           │   ├── 921207-1.c
│   │   │           │   ├── 921208-1.c
│   │   │           │   ├── 921208-2.c
│   │   │           │   ├── 921215-1.c
│   │   │           │   ├── 921218-1.c
│   │   │           │   ├── 921218-2.c
│   │   │           │   ├── 930106-1.c
│   │   │           │   ├── 930111-1.c
│   │   │           │   ├── 930123-1.c
│   │   │           │   ├── 930126-1.c
│   │   │           │   ├── 930208-1.c
│   │   │           │   ├── 930406-1.c
│   │   │           │   ├── 930408-1.c
│   │   │           │   ├── 930429-1.c
│   │   │           │   ├── 930429-2.c
│   │   │           │   ├── 930513-1.c
│   │   │           │   ├── 930513-2.c
│   │   │           │   ├── 930518-1.c
│   │   │           │   ├── 930526-1.c
│   │   │           │   ├── 930527-1.c
│   │   │           │   ├── 930529-1.c
│   │   │           │   ├── 930603-1.c
│   │   │           │   ├── 930603-2.c
│   │   │           │   ├── 930603-3.c
│   │   │           │   ├── 930608-1.c
│   │   │           │   ├── 930614-1.c
│   │   │           │   ├── 930614-2.c
│   │   │           │   ├── 930621-1.c
│   │   │           │   ├── 930622-1.c
│   │   │           │   ├── 930622-2.c
│   │   │           │   ├── 930628-1.c
│   │   │           │   ├── 930630-1.c
│   │   │           │   ├── 930702-1.c
│   │   │           │   ├── 930713-1.c
│   │   │           │   ├── 930718-1.c
│   │   │           │   ├── 930719-1.c
│   │   │           │   ├── 930725-1.c
│   │   │           │   ├── 930818-1.c
│   │   │           │   ├── 930916-1.c
│   │   │           │   ├── 930921-1.c
│   │   │           │   ├── 930929-1.c
│   │   │           │   ├── 930930-1.c
│   │   │           │   ├── 930930-2.c
│   │   │           │   ├── 931002-1.c
│   │   │           │   ├── 931004-1.c
│   │   │           │   ├── 931004-10.c
│   │   │           │   ├── 931004-11.c
│   │   │           │   ├── 931004-12.c
│   │   │           │   ├── 931004-13.c
│   │   │           │   ├── 931004-14.c
│   │   │           │   ├── 931004-2.c
│   │   │           │   ├── 931004-3.c
│   │   │           │   ├── 931004-4.c
│   │   │           │   ├── 931004-5.c
│   │   │           │   ├── 931004-6.c
│   │   │           │   ├── 931004-7.c
│   │   │           │   ├── 931004-8.c
│   │   │           │   ├── 931004-9.c
│   │   │           │   ├── 931005-1.c
│   │   │           │   ├── 931009-1.c
│   │   │           │   ├── 931012-1.c
│   │   │           │   ├── 931017-1.c
│   │   │           │   ├── 931018-1.c
│   │   │           │   ├── 931031-1.c
│   │   │           │   ├── 931102-1.c
│   │   │           │   ├── 931102-2.c
│   │   │           │   ├── 931110-1.c
│   │   │           │   ├── 931110-2.c
│   │   │           │   ├── 931208-1.c
│   │   │           │   ├── 931228-1.c
│   │   │           │   ├── 940115-1.c
│   │   │           │   ├── 940122-1.c
│   │   │           │   ├── 941014-1.c
│   │   │           │   ├── 941014-2.c
│   │   │           │   ├── 941015-1.c
│   │   │           │   ├── 941021-1.c
│   │   │           │   ├── 941025-1.c
│   │   │           │   ├── 941031-1.c
│   │   │           │   ├── 941101-1.c
│   │   │           │   ├── 941110-1.c
│   │   │           │   ├── 941202-1.c
│   │   │           │   ├── 950221-1.c
│   │   │           │   ├── 950322-1.c
│   │   │           │   ├── 950426-1.c
│   │   │           │   ├── 950426-2.c
│   │   │           │   ├── 950503-1.c
│   │   │           │   ├── 950511-1.c
│   │   │           │   ├── 950512-1.c
│   │   │           │   ├── 950605-1.c
│   │   │           │   ├── 950607-1.c
│   │   │           │   ├── 950607-2.c
│   │   │           │   ├── 950612-1.c
│   │   │           │   ├── 950621-1.c
│   │   │           │   ├── 950628-1.c
│   │   │           │   ├── 950704-1.c
│   │   │           │   ├── 950706-1.c
│   │   │           │   ├── 950710-1.c
│   │   │           │   ├── 950714-1.c
│   │   │           │   ├── 950809-1.c
│   │   │           │   ├── 950906-1.c
│   │   │           │   ├── 950915-1.c
│   │   │           │   ├── 950929-1.c
│   │   │           │   ├── 951003-1.c
│   │   │           │   ├── 951115-1.c
│   │   │           │   ├── 951204-1.c
│   │   │           │   ├── 960116-1.c
│   │   │           │   ├── 960117-1.c
│   │   │           │   ├── 960209-1.c
│   │   │           │   ├── 960215-1.c
│   │   │           │   ├── 960218-1.c
│   │   │           │   ├── 960219-1.c
│   │   │           │   ├── 960301-1.c
│   │   │           │   ├── 960302-1.c
│   │   │           │   ├── 960311-1.c
│   │   │           │   ├── 960311-2.c
│   │   │           │   ├── 960311-3.c
│   │   │           │   ├── 960312-1.c
│   │   │           │   ├── 960317-1.c
│   │   │           │   ├── 960321-1.c
│   │   │           │   ├── 960326-1.c
│   │   │           │   ├── 960327-1.c
│   │   │           │   ├── 960402-1.c
│   │   │           │   ├── 960405-1.c
│   │   │           │   ├── 960416-1.c
│   │   │           │   ├── 960419-1.c
│   │   │           │   ├── 960419-2.c
│   │   │           │   ├── 960512-1.c
│   │   │           │   ├── 960513-1.c
│   │   │           │   ├── 960521-1.c
│   │   │           │   ├── 960608-1.c
│   │   │           │   ├── 960801-1.c
│   │   │           │   ├── 960802-1.c
│   │   │           │   ├── 960830-1.c
│   │   │           │   ├── 960909-1.c
│   │   │           │   ├── 961004-1.c
│   │   │           │   ├── 961017-1.c
│   │   │           │   ├── 961017-2.c
│   │   │           │   ├── 961026-1.c
│   │   │           │   ├── 961112-1.c
│   │   │           │   ├── 961122-1.c
│   │   │           │   ├── 961122-2.c
│   │   │           │   ├── 961125-1.c
│   │   │           │   ├── 961206-1.c
│   │   │           │   ├── 961213-1.c
│   │   │           │   ├── 961223-1.c
│   │   │           │   ├── 970214-1.c
│   │   │           │   ├── 970214-2.c
│   │   │           │   ├── 970217-1.c
│   │   │           │   ├── 970923-1.c
│   │   │           │   ├── 980205.c
│   │   │           │   ├── 980223.c
│   │   │           │   ├── 980424-1.c
│   │   │           │   ├── 980505-1.c
│   │   │           │   ├── 980505-2.c
│   │   │           │   ├── 980506-1.c
│   │   │           │   ├── 980506-2.c
│   │   │           │   ├── 980506-3.c
│   │   │           │   ├── 980526-1.c
│   │   │           │   ├── 980526-2.c
│   │   │           │   ├── 980526-3.c
│   │   │           │   ├── 980602-1.c
│   │   │           │   ├── 980602-2.c
│   │   │           │   ├── 980604-1.c
│   │   │           │   ├── 980605-1.c
│   │   │           │   ├── 980608-1.c
│   │   │           │   ├── 980612-1.c
│   │   │           │   ├── 980617-1.c
│   │   │           │   ├── 980618-1.c
│   │   │           │   ├── 980701-1.c
│   │   │           │   ├── 980707-1.c
│   │   │           │   ├── 980709-1.c
│   │   │           │   ├── 980716-1.c
│   │   │           │   ├── 980929-1.c
│   │   │           │   ├── 981001-1.c
│   │   │           │   ├── 981019-1.c
│   │   │           │   ├── 981130-1.c
│   │   │           │   ├── 981206-1.c
│   │   │           │   ├── 990106-1.c
│   │   │           │   ├── 990106-2.c
│   │   │           │   ├── 990117-1.c
│   │   │           │   ├── 990127-1.c
│   │   │           │   ├── 990127-2.c
│   │   │           │   ├── 990128-1.c
│   │   │           │   ├── 990130-1.c
│   │   │           │   ├── 990208-1.c
│   │   │           │   ├── 990211-1.c
│   │   │           │   ├── 990222-1.c
│   │   │           │   ├── 990324-1.c
│   │   │           │   ├── 990326-1.c
│   │   │           │   ├── 990404-1.c
│   │   │           │   ├── 990413-2.c
│   │   │           │   ├── 990513-1.c
│   │   │           │   ├── 990524-1.c
│   │   │           │   ├── 990525-1.c
│   │   │           │   ├── 990525-2.c
│   │   │           │   ├── 990527-1.c
│   │   │           │   ├── 990531-1.c
│   │   │           │   ├── 990604-1.c
│   │   │           │   ├── 990628-1.c
│   │   │           │   ├── 990804-1.c
│   │   │           │   ├── 990811-1.c
│   │   │           │   ├── 990826-0.c
│   │   │           │   ├── 990827-1.c
│   │   │           │   ├── 990829-1.c
│   │   │           │   ├── 990923-1.c
│   │   │           │   ├── 991014-1.c
│   │   │           │   ├── 991016-1.c
│   │   │           │   ├── 991019-1.c
│   │   │           │   ├── 991023-1.c
│   │   │           │   ├── 991030-1.c
│   │   │           │   ├── 991112-1.c
│   │   │           │   ├── 991118-1.c
│   │   │           │   ├── 991201-1.c
│   │   │           │   ├── 991202-1.c
│   │   │           │   ├── 991202-2.c
│   │   │           │   ├── 991202-3.c
│   │   │           │   ├── 991216-1.c
│   │   │           │   ├── 991216-2.c
│   │   │           │   ├── 991216-4.c
│   │   │           │   ├── 991221-1.c
│   │   │           │   ├── 991227-1.c
│   │   │           │   ├── 991228-1.c
│   │   │           │   ├── alias-1.c
│   │   │           │   ├── alias-2.c
│   │   │           │   ├── alias-3.c
│   │   │           │   ├── alias-4.c
│   │   │           │   ├── align-1.c
│   │   │           │   ├── align-2.c
│   │   │           │   ├── align-3.c
│   │   │           │   ├── align-nest.c
│   │   │           │   ├── alloca-1.c
│   │   │           │   ├── anon-1.c
│   │   │           │   ├── arith-1.c
│   │   │           │   ├── arith-rand-ll.c
│   │   │           │   ├── arith-rand.c
│   │   │           │   ├── ashldi-1.c
│   │   │           │   ├── ashrdi-1.c
│   │   │           │   ├── bcp-1.c
│   │   │           │   ├── bf-layout-1.c
│   │   │           │   ├── bf-pack-1.c
│   │   │           │   ├── bf-sign-1.c
│   │   │           │   ├── bf-sign-2.c
│   │   │           │   ├── bf64-1.c
│   │   │           │   ├── bitfld-1.c
│   │   │           │   ├── bitfld-2.c
│   │   │           │   ├── bitfld-3.c
│   │   │           │   ├── bitfld-4.c
│   │   │           │   ├── bitfld-5.c
│   │   │           │   ├── bitfld-6.c
│   │   │           │   ├── bitfld-7.c
│   │   │           │   ├── bswap-1.c
│   │   │           │   ├── bswap-2.c
│   │   │           │   ├── built-in-setjmp.c
│   │   │           │   ├── builtin-bitops-1.c
│   │   │           │   ├── builtin-constant.c
│   │   │           │   ├── builtin-prefetch-1.c
│   │   │           │   ├── builtin-prefetch-2.c
│   │   │           │   ├── builtin-prefetch-3.c
│   │   │           │   ├── builtin-prefetch-4.c
│   │   │           │   ├── builtin-prefetch-5.c
│   │   │           │   ├── builtin-prefetch-6.c
│   │   │           │   ├── builtin-types-compatible-p.c
│   │   │           │   ├── builtins/
│   │   │           │   │   ├── 20010124-1-lib.c
│   │   │           │   │   ├── 20010124-1.c
│   │   │           │   │   ├── 20010124-1.x
│   │   │           │   │   ├── abs-1-lib.c
│   │   │           │   │   ├── abs-1.c
│   │   │           │   │   ├── abs-1.x
│   │   │           │   │   ├── abs-2-lib.c
│   │   │           │   │   ├── abs-2.c
│   │   │           │   │   ├── abs-3-lib.c
│   │   │           │   │   ├── abs-3.c
│   │   │           │   │   ├── builtins.exp
│   │   │           │   │   ├── chk.h
│   │   │           │   │   ├── complex-1-lib.c
│   │   │           │   │   ├── complex-1.c
│   │   │           │   │   ├── fprintf-lib.c
│   │   │           │   │   ├── fprintf.c
│   │   │           │   │   ├── fprintf.x
│   │   │           │   │   ├── fputs-lib.c
│   │   │           │   │   ├── fputs.c
│   │   │           │   │   ├── fputs.x
│   │   │           │   │   ├── lib/
│   │   │           │   │   │   ├── abs.c
│   │   │           │   │   │   ├── bfill.c
│   │   │           │   │   │   ├── bzero.c
│   │   │           │   │   │   ├── chk.c
│   │   │           │   │   │   ├── fprintf.c
│   │   │           │   │   │   ├── main.c
│   │   │           │   │   │   ├── memchr.c
│   │   │           │   │   │   ├── memcmp.c
│   │   │           │   │   │   ├── memmove.c
│   │   │           │   │   │   ├── mempcpy.c
│   │   │           │   │   │   ├── memset.c
│   │   │           │   │   │   ├── printf.c
│   │   │           │   │   │   ├── sprintf.c
│   │   │           │   │   │   ├── stpcpy.c
│   │   │           │   │   │   ├── strcat.c
│   │   │           │   │   │   ├── strchr.c
│   │   │           │   │   │   ├── strcmp.c
│   │   │           │   │   │   ├── strcpy.c
│   │   │           │   │   │   ├── strcspn.c
│   │   │           │   │   │   ├── strlen.c
│   │   │           │   │   │   ├── strncat.c
│   │   │           │   │   │   ├── strncmp.c
│   │   │           │   │   │   ├── strncpy.c
│   │   │           │   │   │   ├── strpbrk.c
│   │   │           │   │   │   ├── strrchr.c
│   │   │           │   │   │   ├── strspn.c
│   │   │           │   │   │   └── strstr.c
│   │   │           │   │   ├── memchr-lib.c
│   │   │           │   │   ├── memchr.c
│   │   │           │   │   ├── memcmp-lib.c
│   │   │           │   │   ├── memcmp.c
│   │   │           │   │   ├── memcpy-chk-lib.c
│   │   │           │   │   ├── memcpy-chk.c
│   │   │           │   │   ├── memcpy-chk.x
│   │   │           │   │   ├── memmove-2-lib.c
│   │   │           │   │   ├── memmove-2.c
│   │   │           │   │   ├── memmove-chk-lib.c
│   │   │           │   │   ├── memmove-chk.c
│   │   │           │   │   ├── memmove-chk.x
│   │   │           │   │   ├── memmove-lib.c
│   │   │           │   │   ├── memmove.c
│   │   │           │   │   ├── memops-asm-lib.c
│   │   │           │   │   ├── memops-asm.c
│   │   │           │   │   ├── memops-asm.x
│   │   │           │   │   ├── mempcpy-2-lib.c
│   │   │           │   │   ├── mempcpy-2.c
│   │   │           │   │   ├── mempcpy-chk-lib.c
│   │   │           │   │   ├── mempcpy-chk.c
│   │   │           │   │   ├── mempcpy-chk.x
│   │   │           │   │   ├── mempcpy-lib.c
│   │   │           │   │   ├── mempcpy.c
│   │   │           │   │   ├── memset-chk-lib.c
│   │   │           │   │   ├── memset-chk.c
│   │   │           │   │   ├── memset-chk.x
│   │   │           │   │   ├── memset-lib.c
│   │   │           │   │   ├── memset.c
│   │   │           │   │   ├── pr22237-lib.c
│   │   │           │   │   ├── pr22237.c
│   │   │           │   │   ├── pr23484-chk-lib.c
│   │   │           │   │   ├── pr23484-chk.c
│   │   │           │   │   ├── pr23484-chk.x
│   │   │           │   │   ├── printf-lib.c
│   │   │           │   │   ├── printf.c
│   │   │           │   │   ├── snprintf-chk-lib.c
│   │   │           │   │   ├── snprintf-chk.c
│   │   │           │   │   ├── snprintf-chk.x
│   │   │           │   │   ├── sprintf-chk-lib.c
│   │   │           │   │   ├── sprintf-chk.c
│   │   │           │   │   ├── sprintf-chk.x
│   │   │           │   │   ├── sprintf-lib.c
│   │   │           │   │   ├── sprintf.c
│   │   │           │   │   ├── stpcpy-chk-lib.c
│   │   │           │   │   ├── stpcpy-chk.c
│   │   │           │   │   ├── stpcpy-chk.x
│   │   │           │   │   ├── stpncpy-chk-lib.c
│   │   │           │   │   ├── stpncpy-chk.c
│   │   │           │   │   ├── stpncpy-chk.x
│   │   │           │   │   ├── strcat-chk-lib.c
│   │   │           │   │   ├── strcat-chk.c
│   │   │           │   │   ├── strcat-chk.x
│   │   │           │   │   ├── strcat-lib.c
│   │   │           │   │   ├── strcat.c
│   │   │           │   │   ├── strchr-lib.c
│   │   │           │   │   ├── strchr.c
│   │   │           │   │   ├── strcmp-lib.c
│   │   │           │   │   ├── strcmp.c
│   │   │           │   │   ├── strcpy-2-lib.c
│   │   │           │   │   ├── strcpy-2.c
│   │   │           │   │   ├── strcpy-chk-lib.c
│   │   │           │   │   ├── strcpy-chk.c
│   │   │           │   │   ├── strcpy-chk.x
│   │   │           │   │   ├── strcpy-lib.c
│   │   │           │   │   ├── strcpy.c
│   │   │           │   │   ├── strcspn-lib.c
│   │   │           │   │   ├── strcspn.c
│   │   │           │   │   ├── strlen-2-lib.c
│   │   │           │   │   ├── strlen-2.c
│   │   │           │   │   ├── strlen-3-lib.c
│   │   │           │   │   ├── strlen-3.c
│   │   │           │   │   ├── strlen-lib.c
│   │   │           │   │   ├── strlen.c
│   │   │           │   │   ├── strncat-chk-lib.c
│   │   │           │   │   ├── strncat-chk.c
│   │   │           │   │   ├── strncat-chk.x
│   │   │           │   │   ├── strncat-lib.c
│   │   │           │   │   ├── strncat.c
│   │   │           │   │   ├── strncmp-2-lib.c
│   │   │           │   │   ├── strncmp-2.c
│   │   │           │   │   ├── strncmp-lib.c
│   │   │           │   │   ├── strncmp.c
│   │   │           │   │   ├── strncpy-chk-lib.c
│   │   │           │   │   ├── strncpy-chk.c
│   │   │           │   │   ├── strncpy-chk.x
│   │   │           │   │   ├── strncpy-lib.c
│   │   │           │   │   ├── strncpy.c
│   │   │           │   │   ├── strpbrk-lib.c
│   │   │           │   │   ├── strpbrk.c
│   │   │           │   │   ├── strpcpy-2-lib.c
│   │   │           │   │   ├── strpcpy-2.c
│   │   │           │   │   ├── strpcpy-lib.c
│   │   │           │   │   ├── strpcpy.c
│   │   │           │   │   ├── strrchr-lib.c
│   │   │           │   │   ├── strrchr.c
│   │   │           │   │   ├── strspn-lib.c
│   │   │           │   │   ├── strspn.c
│   │   │           │   │   ├── strstr-asm-lib.c
│   │   │           │   │   ├── strstr-asm.c
│   │   │           │   │   ├── strstr-asm.x
│   │   │           │   │   ├── strstr-lib.c
│   │   │           │   │   ├── strstr.c
│   │   │           │   │   ├── vsnprintf-chk-lib.c
│   │   │           │   │   ├── vsnprintf-chk.c
│   │   │           │   │   ├── vsnprintf-chk.x
│   │   │           │   │   ├── vsprintf-chk-lib.c
│   │   │           │   │   ├── vsprintf-chk.c
│   │   │           │   │   └── vsprintf-chk.x
│   │   │           │   ├── call-trap-1.c
│   │   │           │   ├── cbrt.c
│   │   │           │   ├── cmpdi-1.c
│   │   │           │   ├── cmpsf-1.c
│   │   │           │   ├── cmpsi-1.c
│   │   │           │   ├── cmpsi-2.c
│   │   │           │   ├── comp-goto-1.c
│   │   │           │   ├── comp-goto-2.c
│   │   │           │   ├── compare-1.c
│   │   │           │   ├── compare-2.c
│   │   │           │   ├── compare-3.c
│   │   │           │   ├── complex-1.c
│   │   │           │   ├── complex-2.c
│   │   │           │   ├── complex-3.c
│   │   │           │   ├── complex-4.c
│   │   │           │   ├── complex-5.c
│   │   │           │   ├── complex-6.c
│   │   │           │   ├── complex-7.c
│   │   │           │   ├── compndlit-1.c
│   │   │           │   ├── const-addr-expr-1.c
│   │   │           │   ├── conversion.c
│   │   │           │   ├── cvt-1.c
│   │   │           │   ├── dbra-1.c
│   │   │           │   ├── divcmp-1.c
│   │   │           │   ├── divcmp-2.c
│   │   │           │   ├── divcmp-3.c
│   │   │           │   ├── divcmp-4.c
│   │   │           │   ├── divcmp-5.c
│   │   │           │   ├── divconst-1.c
│   │   │           │   ├── divconst-2.c
│   │   │           │   ├── divconst-3.c
│   │   │           │   ├── divmod-1.c
│   │   │           │   ├── doloop-1.c
│   │   │           │   ├── doloop-2.c
│   │   │           │   ├── eeprof-1.c
│   │   │           │   ├── enum-1.c
│   │   │           │   ├── enum-2.c
│   │   │           │   ├── enum-3.c
│   │   │           │   ├── execute.exp
│   │   │           │   ├── extzvsi.c
│   │   │           │   ├── ffs-1.c
│   │   │           │   ├── ffs-2.c
│   │   │           │   ├── float-floor.c
│   │   │           │   ├── floatunsisf-1.c
│   │   │           │   ├── fprintf-1.c
│   │   │           │   ├── fprintf-chk-1.c
│   │   │           │   ├── frame-address.c
│   │   │           │   ├── func-ptr-1.c
│   │   │           │   ├── gofast.c
│   │   │           │   ├── ieee/
│   │   │           │   │   ├── 20000320-1.c
│   │   │           │   │   ├── 20000320-1.x
│   │   │           │   │   ├── 20001122-1.c
│   │   │           │   │   ├── 20010114-2.c
│   │   │           │   │   ├── 20010114-2.x
│   │   │           │   │   ├── 20010226-1.c
│   │   │           │   │   ├── 20011123-1.c
│   │   │           │   │   ├── 20030331-1.c
│   │   │           │   │   ├── 20030331-1.x
│   │   │           │   │   ├── 20041213-1.c
│   │   │           │   │   ├── 920518-1.c
│   │   │           │   │   ├── 920518-1.x
│   │   │           │   │   ├── 920810-1.c
│   │   │           │   │   ├── 930529-1.c
│   │   │           │   │   ├── 980619-1.c
│   │   │           │   │   ├── 980619-1.x
│   │   │           │   │   ├── acc1.c
│   │   │           │   │   ├── acc2.c
│   │   │           │   │   ├── builtin-nan-1.c
│   │   │           │   │   ├── compare-fp-1.c
│   │   │           │   │   ├── compare-fp-1.x
│   │   │           │   │   ├── compare-fp-2.c
│   │   │           │   │   ├── compare-fp-3.c
│   │   │           │   │   ├── compare-fp-3.x
│   │   │           │   │   ├── compare-fp-4.c
│   │   │           │   │   ├── compare-fp-4.x
│   │   │           │   │   ├── copysign1.c
│   │   │           │   │   ├── copysign2.c
│   │   │           │   │   ├── fp-cmp-1.c
│   │   │           │   │   ├── fp-cmp-1.x
│   │   │           │   │   ├── fp-cmp-2.c
│   │   │           │   │   ├── fp-cmp-2.x
│   │   │           │   │   ├── fp-cmp-3.c
│   │   │           │   │   ├── fp-cmp-3.x
│   │   │           │   │   ├── fp-cmp-4.c
│   │   │           │   │   ├── fp-cmp-4e.c
│   │   │           │   │   ├── fp-cmp-4f.c
│   │   │           │   │   ├── fp-cmp-4f.x
│   │   │           │   │   ├── fp-cmp-4l.c
│   │   │           │   │   ├── fp-cmp-5.c
│   │   │           │   │   ├── fp-cmp-6.c
│   │   │           │   │   ├── fp-cmp-6.x
│   │   │           │   │   ├── fp-cmp-7.c
│   │   │           │   │   ├── fp-cmp-8.c
│   │   │           │   │   ├── fp-cmp-8e.c
│   │   │           │   │   ├── fp-cmp-8f.c
│   │   │           │   │   ├── fp-cmp-8f.x
│   │   │           │   │   ├── fp-cmp-8l.c
│   │   │           │   │   ├── hugeval.c
│   │   │           │   │   ├── hugeval.x
│   │   │           │   │   ├── ieee.exp
│   │   │           │   │   ├── inf-1.c
│   │   │           │   │   ├── inf-2.c
│   │   │           │   │   ├── inf-3.c
│   │   │           │   │   ├── minuszero.c
│   │   │           │   │   ├── mul-subnormal-single-1.c
│   │   │           │   │   ├── mul-subnormal-single-1.x
│   │   │           │   │   ├── mzero2.c
│   │   │           │   │   ├── mzero2.x
│   │   │           │   │   ├── mzero3.c
│   │   │           │   │   ├── mzero4.c
│   │   │           │   │   ├── mzero5.c
│   │   │           │   │   ├── mzero6.c
│   │   │           │   │   ├── pr28634.c
│   │   │           │   │   ├── pr29302-1.c
│   │   │           │   │   ├── pr29302-1.x
│   │   │           │   │   ├── pr30704.c
│   │   │           │   │   ├── pr30704.x
│   │   │           │   │   ├── pr36332.c
│   │   │           │   │   ├── pr38016.c
│   │   │           │   │   ├── pr38016.x
│   │   │           │   │   ├── pr50310.c
│   │   │           │   │   ├── pr67218.c
│   │   │           │   │   ├── pr72824-2.c
│   │   │           │   │   ├── pr72824.c
│   │   │           │   │   ├── rbug.c
│   │   │           │   │   ├── rbug.x
│   │   │           │   │   ├── unsafe-fp-assoc-1.c
│   │   │           │   │   ├── unsafe-fp-assoc-1.x
│   │   │           │   │   └── unsafe-fp-assoc.c
│   │   │           │   ├── ifcvt-onecmpl-abs-1.c
│   │   │           │   ├── index-1.c
│   │   │           │   ├── inst-check.c
│   │   │           │   ├── int-compare.c
│   │   │           │   ├── ipa-sra-1.c
│   │   │           │   ├── ipa-sra-2.c
│   │   │           │   ├── longlong.c
│   │   │           │   ├── loop-1.c
│   │   │           │   ├── loop-10.c
│   │   │           │   ├── loop-11.c
│   │   │           │   ├── loop-12.c
│   │   │           │   ├── loop-13.c
│   │   │           │   ├── loop-14.c
│   │   │           │   ├── loop-15.c
│   │   │           │   ├── loop-2.c
│   │   │           │   ├── loop-2b.c
│   │   │           │   ├── loop-2c.c
│   │   │           │   ├── loop-2d.c
│   │   │           │   ├── loop-2e.c
│   │   │           │   ├── loop-2f.c
│   │   │           │   ├── loop-2g.c
│   │   │           │   ├── loop-3.c
│   │   │           │   ├── loop-3b.c
│   │   │           │   ├── loop-3c.c
│   │   │           │   ├── loop-4.c
│   │   │           │   ├── loop-4b.c
│   │   │           │   ├── loop-5.c
│   │   │           │   ├── loop-6.c
│   │   │           │   ├── loop-7.c
│   │   │           │   ├── loop-8.c
│   │   │           │   ├── loop-9.c
│   │   │           │   ├── loop-ivopts-1.c
│   │   │           │   ├── loop-ivopts-2.c
│   │   │           │   ├── lshrdi-1.c
│   │   │           │   ├── lto-tbaa-1.c
│   │   │           │   ├── mayalias-1.c
│   │   │           │   ├── mayalias-2.c
│   │   │           │   ├── mayalias-3.c
│   │   │           │   ├── medce-1.c
│   │   │           │   ├── memcpy-1.c
│   │   │           │   ├── memcpy-2.c
│   │   │           │   ├── memcpy-bi.c
│   │   │           │   ├── memset-1.c
│   │   │           │   ├── memset-2.c
│   │   │           │   ├── memset-3.c
│   │   │           │   ├── memset-4.c
│   │   │           │   ├── mod-1.c
│   │   │           │   ├── mode-dependent-address.c
│   │   │           │   ├── multdi-1.c
│   │   │           │   ├── multi-ix.c
│   │   │           │   ├── nest-align-1.c
│   │   │           │   ├── nest-stdar-1.c
│   │   │           │   ├── nestfunc-1.c
│   │   │           │   ├── nestfunc-2.c
│   │   │           │   ├── nestfunc-3.c
│   │   │           │   ├── nestfunc-4.c
│   │   │           │   ├── nestfunc-5.c
│   │   │           │   ├── nestfunc-6.c
│   │   │           │   ├── nestfunc-7.c
│   │   │           │   ├── p18298.c
│   │   │           │   ├── packed-1.c
│   │   │           │   ├── packed-2.c
│   │   │           │   ├── pending-4.c
│   │   │           │   ├── postmod-1.c
│   │   │           │   ├── pr15262-1.c
│   │   │           │   ├── pr15262-2.c
│   │   │           │   ├── pr15262.c
│   │   │           │   ├── pr15296.c
│   │   │           │   ├── pr16790-1.c
│   │   │           │   ├── pr17078-1.c
│   │   │           │   ├── pr17133.c
│   │   │           │   ├── pr17252.c
│   │   │           │   ├── pr17377.c
│   │   │           │   ├── pr19005.c
│   │   │           │   ├── pr19449.c
│   │   │           │   ├── pr19515.c
│   │   │           │   ├── pr19606.c
│   │   │           │   ├── pr19687.c
│   │   │           │   ├── pr19689.c
│   │   │           │   ├── pr20100-1.c
│   │   │           │   ├── pr20187-1.c
│   │   │           │   ├── pr20466-1.c
│   │   │           │   ├── pr20527-1.c
│   │   │           │   ├── pr20601-1.c
│   │   │           │   ├── pr20621-1.c
│   │   │           │   ├── pr21173.c
│   │   │           │   ├── pr21331.c
│   │   │           │   ├── pr21964-1.c
│   │   │           │   ├── pr22061-1.c
│   │   │           │   ├── pr22061-2.c
│   │   │           │   ├── pr22061-3.c
│   │   │           │   ├── pr22061-4.c
│   │   │           │   ├── pr22098-1.c
│   │   │           │   ├── pr22098-2.c
│   │   │           │   ├── pr22098-3.c
│   │   │           │   ├── pr22348.c
│   │   │           │   ├── pr22429.c
│   │   │           │   ├── pr22493-1.c
│   │   │           │   ├── pr22630.c
│   │   │           │   ├── pr23047.c
│   │   │           │   ├── pr23135.c
│   │   │           │   ├── pr23324.c
│   │   │           │   ├── pr23467.c
│   │   │           │   ├── pr23604.c
│   │   │           │   ├── pr23941.c
│   │   │           │   ├── pr24135.c
│   │   │           │   ├── pr24141.c
│   │   │           │   ├── pr24142.c
│   │   │           │   ├── pr24716.c
│   │   │           │   ├── pr24851.c
│   │   │           │   ├── pr25125.c
│   │   │           │   ├── pr25737.c
│   │   │           │   ├── pr27073.c
│   │   │           │   ├── pr27260.c
│   │   │           │   ├── pr27285.c
│   │   │           │   ├── pr27364.c
│   │   │           │   ├── pr27671-1.c
│   │   │           │   ├── pr28289.c
│   │   │           │   ├── pr28403.c
│   │   │           │   ├── pr28651.c
│   │   │           │   ├── pr28778.c
│   │   │           │   ├── pr28865.c
│   │   │           │   ├── pr28982a.c
│   │   │           │   ├── pr28982b.c
│   │   │           │   ├── pr29006.c
│   │   │           │   ├── pr29156.c
│   │   │           │   ├── pr29695-1.c
│   │   │           │   ├── pr29695-2.c
│   │   │           │   ├── pr29797-1.c
│   │   │           │   ├── pr29797-2.c
│   │   │           │   ├── pr29798.c
│   │   │           │   ├── pr30185.c
│   │   │           │   ├── pr30778.c
│   │   │           │   ├── pr31072.c
│   │   │           │   ├── pr31136.c
│   │   │           │   ├── pr31169.c
│   │   │           │   ├── pr31448-2.c
│   │   │           │   ├── pr31448.c
│   │   │           │   ├── pr31605.c
│   │   │           │   ├── pr32244-1.c
│   │   │           │   ├── pr32500.c
│   │   │           │   ├── pr33142.c
│   │   │           │   ├── pr33382.c
│   │   │           │   ├── pr33631.c
│   │   │           │   ├── pr33669.c
│   │   │           │   ├── pr33779-1.c
│   │   │           │   ├── pr33779-2.c
│   │   │           │   ├── pr33870-1.c
│   │   │           │   ├── pr33870.c
│   │   │           │   ├── pr33992.c
│   │   │           │   ├── pr34070-1.c
│   │   │           │   ├── pr34070-2.c
│   │   │           │   ├── pr34099-2.c
│   │   │           │   ├── pr34099.c
│   │   │           │   ├── pr34130.c
│   │   │           │   ├── pr34154.c
│   │   │           │   ├── pr34176.c
│   │   │           │   ├── pr34415.c
│   │   │           │   ├── pr34456.c
│   │   │           │   ├── pr34768-1.c
│   │   │           │   ├── pr34768-2.c
│   │   │           │   ├── pr34971.c
│   │   │           │   ├── pr34982.c
│   │   │           │   ├── pr35163.c
│   │   │           │   ├── pr35231.c
│   │   │           │   ├── pr35390.c
│   │   │           │   ├── pr35456.c
│   │   │           │   ├── pr35472.c
│   │   │           │   ├── pr35800.c
│   │   │           │   ├── pr36034-1.c
│   │   │           │   ├── pr36034-2.c
│   │   │           │   ├── pr36038.c
│   │   │           │   ├── pr36077.c
│   │   │           │   ├── pr36093.c
│   │   │           │   ├── pr36321.c
│   │   │           │   ├── pr36339.c
│   │   │           │   ├── pr36343.c
│   │   │           │   ├── pr36691.c
│   │   │           │   ├── pr36765.c
│   │   │           │   ├── pr37102.c
│   │   │           │   ├── pr37125.c
│   │   │           │   ├── pr37573.c
│   │   │           │   ├── pr37882.c
│   │   │           │   ├── pr37924.c
│   │   │           │   ├── pr37931.c
│   │   │           │   ├── pr38048-1.c
│   │   │           │   ├── pr38048-2.c
│   │   │           │   ├── pr38051.c
│   │   │           │   ├── pr38151.c
│   │   │           │   ├── pr38212.c
│   │   │           │   ├── pr38236.c
│   │   │           │   ├── pr38422.c
│   │   │           │   ├── pr38533.c
│   │   │           │   ├── pr38819.c
│   │   │           │   ├── pr38969.c
│   │   │           │   ├── pr39100.c
│   │   │           │   ├── pr39120.c
│   │   │           │   ├── pr39228.c
│   │   │           │   ├── pr39233.c
│   │   │           │   ├── pr39240.c
│   │   │           │   ├── pr39339.c
│   │   │           │   ├── pr39501.c
│   │   │           │   ├── pr40022.c
│   │   │           │   ├── pr40057.c
│   │   │           │   ├── pr40386.c
│   │   │           │   ├── pr40404.c
│   │   │           │   ├── pr40493.c
│   │   │           │   ├── pr40579.c
│   │   │           │   ├── pr40657.c
│   │   │           │   ├── pr40668.c
│   │   │           │   ├── pr40747.c
│   │   │           │   ├── pr41239.c
│   │   │           │   ├── pr41317.c
│   │   │           │   ├── pr41395-1.c
│   │   │           │   ├── pr41395-2.c
│   │   │           │   ├── pr41463.c
│   │   │           │   ├── pr41750.c
│   │   │           │   ├── pr41917.c
│   │   │           │   ├── pr41919.c
│   │   │           │   ├── pr41935.c
│   │   │           │   ├── pr42006.c
│   │   │           │   ├── pr42142.c
│   │   │           │   ├── pr42154.c
│   │   │           │   ├── pr42231.c
│   │   │           │   ├── pr42248.c
│   │   │           │   ├── pr42269-2.c
│   │   │           │   ├── pr42512.c
│   │   │           │   ├── pr42544.c
│   │   │           │   ├── pr42570.c
│   │   │           │   ├── pr42614.c
│   │   │           │   ├── pr42691.c
│   │   │           │   ├── pr42721.c
│   │   │           │   ├── pr42833.c
│   │   │           │   ├── pr43008.c
│   │   │           │   ├── pr43220.c
│   │   │           │   ├── pr43236.c
│   │   │           │   ├── pr43269.c
│   │   │           │   ├── pr43385.c
│   │   │           │   ├── pr43438.c
│   │   │           │   ├── pr43560.c
│   │   │           │   ├── pr43629.c
│   │   │           │   ├── pr43783.c
│   │   │           │   ├── pr43784.c
│   │   │           │   ├── pr43835.c
│   │   │           │   ├── pr43987.c
│   │   │           │   ├── pr44164.c
│   │   │           │   ├── pr44202-1.c
│   │   │           │   ├── pr44468.c
│   │   │           │   ├── pr44555.c
│   │   │           │   ├── pr44575.c
│   │   │           │   ├── pr44683.c
│   │   │           │   ├── pr44828.c
│   │   │           │   ├── pr44852.c
│   │   │           │   ├── pr44858.c
│   │   │           │   ├── pr44942.c
│   │   │           │   ├── pr45034.c
│   │   │           │   ├── pr45070.c
│   │   │           │   ├── pr45262.c
│   │   │           │   ├── pr45695.c
│   │   │           │   ├── pr46019.c
│   │   │           │   ├── pr46309.c
│   │   │           │   ├── pr46316.c
│   │   │           │   ├── pr46909-1.c
│   │   │           │   ├── pr46909-2.c
│   │   │           │   ├── pr47148.c
│   │   │           │   ├── pr47155.c
│   │   │           │   ├── pr47237.c
│   │   │           │   ├── pr47299.c
│   │   │           │   ├── pr47337.c
│   │   │           │   ├── pr47538.c
│   │   │           │   ├── pr47925.c
│   │   │           │   ├── pr48197.c
│   │   │           │   ├── pr48571-1.c
│   │   │           │   ├── pr48717.c
│   │   │           │   ├── pr48809.c
│   │   │           │   ├── pr48814-1.c
│   │   │           │   ├── pr48814-2.c
│   │   │           │   ├── pr48973-1.c
│   │   │           │   ├── pr48973-2.c
│   │   │           │   ├── pr49039.c
│   │   │           │   ├── pr49073.c
│   │   │           │   ├── pr49123.c
│   │   │           │   ├── pr49161.c
│   │   │           │   ├── pr49186.c
│   │   │           │   ├── pr49218.c
│   │   │           │   ├── pr49279.c
│   │   │           │   ├── pr49281.c
│   │   │           │   ├── pr49390.c
│   │   │           │   ├── pr49419.c
│   │   │           │   ├── pr49644.c
│   │   │           │   ├── pr49712.c
│   │   │           │   ├── pr49768.c
│   │   │           │   ├── pr49886.c
│   │   │           │   ├── pr50865.c
│   │   │           │   ├── pr51023.c
│   │   │           │   ├── pr51323.c
│   │   │           │   ├── pr51447.c
│   │   │           │   ├── pr51466.c
│   │   │           │   ├── pr51581-1.c
│   │   │           │   ├── pr51581-2.c
│   │   │           │   ├── pr51877.c
│   │   │           │   ├── pr51933.c
│   │   │           │   ├── pr52129.c
│   │   │           │   ├── pr52209.c
│   │   │           │   ├── pr52286.c
│   │   │           │   ├── pr52760.c
│   │   │           │   ├── pr52979-1.c
│   │   │           │   ├── pr52979-2.c
│   │   │           │   ├── pr53084.c
│   │   │           │   ├── pr53160.c
│   │   │           │   ├── pr53465.c
│   │   │           │   ├── pr53645-2.c
│   │   │           │   ├── pr53645.c
│   │   │           │   ├── pr53688.c
│   │   │           │   ├── pr54471.c
│   │   │           │   ├── pr54937.c
│   │   │           │   ├── pr54985.c
│   │   │           │   ├── pr55137.c
│   │   │           │   ├── pr55750.c
│   │   │           │   ├── pr55875.c
│   │   │           │   ├── pr56051.c
│   │   │           │   ├── pr56205.c
│   │   │           │   ├── pr56250.c
│   │   │           │   ├── pr56799.c
│   │   │           │   ├── pr56837.c
│   │   │           │   ├── pr56866.c
│   │   │           │   ├── pr56899.c
│   │   │           │   ├── pr56962.c
│   │   │           │   ├── pr56982.c
│   │   │           │   ├── pr57124.c
│   │   │           │   ├── pr57130.c
│   │   │           │   ├── pr57131.c
│   │   │           │   ├── pr57144.c
│   │   │           │   ├── pr57281.c
│   │   │           │   ├── pr57321.c
│   │   │           │   ├── pr57344-1.c
│   │   │           │   ├── pr57344-2.c
│   │   │           │   ├── pr57344-3.c
│   │   │           │   ├── pr57344-4.c
│   │   │           │   ├── pr57568.c
│   │   │           │   ├── pr57829.c
│   │   │           │   ├── pr57860.c
│   │   │           │   ├── pr57861.c
│   │   │           │   ├── pr57875.c
│   │   │           │   ├── pr57876.c
│   │   │           │   ├── pr57877.c
│   │   │           │   ├── pr58209.c
│   │   │           │   ├── pr58277-1.c
│   │   │           │   ├── pr58277-2.c
│   │   │           │   ├── pr58364.c
│   │   │           │   ├── pr58365.c
│   │   │           │   ├── pr58385.c
│   │   │           │   ├── pr58387.c
│   │   │           │   ├── pr58419.c
│   │   │           │   ├── pr58431.c
│   │   │           │   ├── pr58564.c
│   │   │           │   ├── pr58570.c
│   │   │           │   ├── pr58574.c
│   │   │           │   ├── pr58640-2.c
│   │   │           │   ├── pr58640.c
│   │   │           │   ├── pr58662.c
│   │   │           │   ├── pr58726.c
│   │   │           │   ├── pr58831.c
│   │   │           │   ├── pr58943.c
│   │   │           │   ├── pr58984.c
│   │   │           │   ├── pr59014-2.c
│   │   │           │   ├── pr59014.c
│   │   │           │   ├── pr59101.c
│   │   │           │   ├── pr59221.c
│   │   │           │   ├── pr59229.c
│   │   │           │   ├── pr59358.c
│   │   │           │   ├── pr59387.c
│   │   │           │   ├── pr59388.c
│   │   │           │   ├── pr59413.c
│   │   │           │   ├── pr59643.c
│   │   │           │   ├── pr59747.c
│   │   │           │   ├── pr60003.c
│   │   │           │   ├── pr60017.c
│   │   │           │   ├── pr60062.c
│   │   │           │   ├── pr60072.c
│   │   │           │   ├── pr60454.c
│   │   │           │   ├── pr60822.c
│   │   │           │   ├── pr60960.c
│   │   │           │   ├── pr61306-1.c
│   │   │           │   ├── pr61306-2.c
│   │   │           │   ├── pr61306-3.c
│   │   │           │   ├── pr61375.c
│   │   │           │   ├── pr61517.c
│   │   │           │   ├── pr61673.c
│   │   │           │   ├── pr61682.c
│   │   │           │   ├── pr61725.c
│   │   │           │   ├── pr62151.c
│   │   │           │   ├── pr63209.c
│   │   │           │   ├── pr63302.c
│   │   │           │   ├── pr63641.c
│   │   │           │   ├── pr63659.c
│   │   │           │   ├── pr63843.c
│   │   │           │   ├── pr64006.c
│   │   │           │   ├── pr64255.c
│   │   │           │   ├── pr64260.c
│   │   │           │   ├── pr64682.c
│   │   │           │   ├── pr64718.c
│   │   │           │   ├── pr64756.c
│   │   │           │   ├── pr64957.c
│   │   │           │   ├── pr64979.c
│   │   │           │   ├── pr65053-1.c
│   │   │           │   ├── pr65053-2.c
│   │   │           │   ├── pr65170.c
│   │   │           │   ├── pr65215-1.c
│   │   │           │   ├── pr65215-2.c
│   │   │           │   ├── pr65215-3.c
│   │   │           │   ├── pr65215-4.c
│   │   │           │   ├── pr65215-5.c
│   │   │           │   ├── pr65216.c
│   │   │           │   ├── pr65369.c
│   │   │           │   ├── pr65401.c
│   │   │           │   ├── pr65418-1.c
│   │   │           │   ├── pr65418-2.c
│   │   │           │   ├── pr65427.c
│   │   │           │   ├── pr65648.c
│   │   │           │   ├── pr65956.c
│   │   │           │   ├── pr66187.c
│   │   │           │   ├── pr66233.c
│   │   │           │   ├── pr66556.c
│   │   │           │   ├── pr66757.c
│   │   │           │   ├── pr67037.c
│   │   │           │   ├── pr67226.c
│   │   │           │   ├── pr67714.c
│   │   │           │   ├── pr67781.c
│   │   │           │   ├── pr67929_1.c
│   │   │           │   ├── pr68143_1.c
│   │   │           │   ├── pr68185.c
│   │   │           │   ├── pr68249.c
│   │   │           │   ├── pr68250.c
│   │   │           │   ├── pr68321.c
│   │   │           │   ├── pr68328.c
│   │   │           │   ├── pr68376-1.c
│   │   │           │   ├── pr68376-2.c
│   │   │           │   ├── pr68381.c
│   │   │           │   ├── pr68390.c
│   │   │           │   ├── pr68506.c
│   │   │           │   ├── pr68532.c
│   │   │           │   ├── pr68624.c
│   │   │           │   ├── pr68648.c
│   │   │           │   ├── pr68841.c
│   │   │           │   ├── pr68911.c
│   │   │           │   ├── pr69097-1.c
│   │   │           │   ├── pr69097-2.c
│   │   │           │   ├── pr69320-1.c
│   │   │           │   ├── pr69320-2.c
│   │   │           │   ├── pr69320-3.c
│   │   │           │   ├── pr69320-4.c
│   │   │           │   ├── pr69403.c
│   │   │           │   ├── pr69447.c
│   │   │           │   ├── pr69691.c
│   │   │           │   ├── pr70005.c
│   │   │           │   ├── pr70127.c
│   │   │           │   ├── pr70222-1.c
│   │   │           │   ├── pr70222-2.c
│   │   │           │   ├── pr70429.c
│   │   │           │   ├── pr70460.c
│   │   │           │   ├── pr70566.c
│   │   │           │   ├── pr70586.c
│   │   │           │   ├── pr70602.c
│   │   │           │   ├── pr71083.c
│   │   │           │   ├── pr71494.c
│   │   │           │   ├── pr71554.c
│   │   │           │   ├── pr71626-1.c
│   │   │           │   ├── pr71626-2.c
│   │   │           │   ├── pr71700.c
│   │   │           │   ├── pr7284-1.c
│   │   │           │   ├── pr78378.c
│   │   │           │   ├── printf-1.c
│   │   │           │   ├── printf-chk-1.c
│   │   │           │   ├── pta-field-1.c
│   │   │           │   ├── pta-field-2.c
│   │   │           │   ├── ptr-arith-1.c
│   │   │           │   ├── pure-1.c
│   │   │           │   ├── pushpop_macro.c
│   │   │           │   ├── regstack-1.c
│   │   │           │   ├── restrict-1.c
│   │   │           │   ├── scal-to-vec1.c
│   │   │           │   ├── scal-to-vec2.c
│   │   │           │   ├── scal-to-vec3.c
│   │   │           │   ├── scope-1.c
│   │   │           │   ├── shiftdi.c
│   │   │           │   ├── shiftopt-1.c
│   │   │           │   ├── simd-1.c
│   │   │           │   ├── simd-2.c
│   │   │           │   ├── simd-4.c
│   │   │           │   ├── simd-5.c
│   │   │           │   ├── simd-6.c
│   │   │           │   ├── stdarg-1.c
│   │   │           │   ├── stdarg-2.c
│   │   │           │   ├── stdarg-3.c
│   │   │           │   ├── stdarg-4.c
│   │   │           │   ├── stkalign.c
│   │   │           │   ├── strcmp-1.c
│   │   │           │   ├── strcpy-1.c
│   │   │           │   ├── strcpy-2.c
│   │   │           │   ├── strct-pack-1.c
│   │   │           │   ├── strct-pack-2.c
│   │   │           │   ├── strct-pack-3.c
│   │   │           │   ├── strct-pack-4.c
│   │   │           │   ├── strct-stdarg-1.c
│   │   │           │   ├── strct-varg-1.c
│   │   │           │   ├── string-opt-17.c
│   │   │           │   ├── string-opt-18.c
│   │   │           │   ├── string-opt-5.c
│   │   │           │   ├── strlen-1.c
│   │   │           │   ├── strncmp-1.c
│   │   │           │   ├── struct-aliasing-1.c
│   │   │           │   ├── struct-cpy-1.c
│   │   │           │   ├── struct-ini-1.c
│   │   │           │   ├── struct-ini-2.c
│   │   │           │   ├── struct-ini-3.c
│   │   │           │   ├── struct-ini-4.c
│   │   │           │   ├── struct-ret-1.c
│   │   │           │   ├── struct-ret-2.c
│   │   │           │   ├── switch-1.c
│   │   │           │   ├── tstdi-1.c
│   │   │           │   ├── unroll-1.c
│   │   │           │   ├── usmul.c
│   │   │           │   ├── va-arg-1.c
│   │   │           │   ├── va-arg-10.c
│   │   │           │   ├── va-arg-11.c
│   │   │           │   ├── va-arg-12.c
│   │   │           │   ├── va-arg-13.c
│   │   │           │   ├── va-arg-14.c
│   │   │           │   ├── va-arg-15.c
│   │   │           │   ├── va-arg-16.c
│   │   │           │   ├── va-arg-17.c
│   │   │           │   ├── va-arg-18.c
│   │   │           │   ├── va-arg-19.c
│   │   │           │   ├── va-arg-2.c
│   │   │           │   ├── va-arg-20.c
│   │   │           │   ├── va-arg-21.c
│   │   │           │   ├── va-arg-22.c
│   │   │           │   ├── va-arg-23.c
│   │   │           │   ├── va-arg-24.c
│   │   │           │   ├── va-arg-26.c
│   │   │           │   ├── va-arg-4.c
│   │   │           │   ├── va-arg-5.c
│   │   │           │   ├── va-arg-6.c
│   │   │           │   ├── va-arg-7.c
│   │   │           │   ├── va-arg-8.c
│   │   │           │   ├── va-arg-9.c
│   │   │           │   ├── va-arg-pack-1.c
│   │   │           │   ├── va-arg-trap-1.c
│   │   │           │   ├── vfprintf-1.c
│   │   │           │   ├── vfprintf-chk-1.c
│   │   │           │   ├── vla-dealloc-1.c
│   │   │           │   ├── vprintf-1.c
│   │   │           │   ├── vprintf-chk-1.c
│   │   │           │   ├── vrp-1.c
│   │   │           │   ├── vrp-2.c
│   │   │           │   ├── vrp-3.c
│   │   │           │   ├── vrp-4.c
│   │   │           │   ├── vrp-5.c
│   │   │           │   ├── vrp-6.c
│   │   │           │   ├── vrp-7.c
│   │   │           │   ├── wchar_t-1.c
│   │   │           │   ├── widechar-1.c
│   │   │           │   ├── widechar-2.c
│   │   │           │   ├── zero-struct-1.c
│   │   │           │   ├── zero-struct-2.c
│   │   │           │   ├── zerolen-1.c
│   │   │           │   └── zerolen-2.c
│   │   │           └── unsorted/
│   │   │               ├── dump-noaddr.c
│   │   │               ├── dump-noaddr.x
│   │   │               └── unsorted.exp
│   │   └── source-url
│   ├── issue3.h
│   ├── issue4.c
│   ├── issue50.h
│   ├── issue57.c
│   ├── issue62.c
│   ├── issue64.c
│   ├── issue65.c
│   ├── issue66.c
│   ├── issue67.c
│   ├── issue68.h
│   ├── issue69.h
│   ├── issue72.h
│   ├── issue74.h
│   ├── issue77.c
│   ├── issue78.c
│   ├── issue8.h
│   ├── issue80.c
│   ├── issue81.c
│   ├── issue82.c
│   ├── issue84.c
│   ├── issue85.c
│   ├── issue86.c
│   ├── issue87.c
│   ├── issue88.c
│   ├── issue89.c
│   ├── issue9.c
│   ├── issue90.c
│   ├── issue92.c
│   ├── issue93.c
│   ├── issue93.h
│   ├── issue9b.c
│   ├── paste.c
│   ├── paste2.c
│   ├── redecl.c
│   ├── tcc-0.9.26/
│   │   ├── COPYING
│   │   ├── source-url
│   │   └── tests/
│   │       └── tests2/
│   │           ├── 00_assignment.c
│   │           ├── 00_assignment.expect
│   │           ├── 01_comment.c
│   │           ├── 01_comment.expect
│   │           ├── 02_printf.c
│   │           ├── 02_printf.expect
│   │           ├── 03_struct.c
│   │           ├── 03_struct.expect
│   │           ├── 04_for.c
│   │           ├── 04_for.expect
│   │           ├── 05_array.c
│   │           ├── 05_array.expect
│   │           ├── 06_case.c
│   │           ├── 06_case.expect
│   │           ├── 07_function.c
│   │           ├── 07_function.expect
│   │           ├── 08_while.c
│   │           ├── 08_while.expect
│   │           ├── 09_do_while.c
│   │           ├── 09_do_while.expect
│   │           ├── 10_pointer.c
│   │           ├── 10_pointer.expect
│   │           ├── 11_precedence.c
│   │           ├── 11_precedence.expect
│   │           ├── 12_hashdefine.c
│   │           ├── 12_hashdefine.expect
│   │           ├── 13_integer_literals.c
│   │           ├── 13_integer_literals.expect
│   │           ├── 14_if.c
│   │           ├── 14_if.expect
│   │           ├── 15_recursion.c
│   │           ├── 15_recursion.expect
│   │           ├── 16_nesting.c
│   │           ├── 16_nesting.expect
│   │           ├── 17_enum.c
│   │           ├── 17_enum.expect
│   │           ├── 18_include.c
│   │           ├── 18_include.expect
│   │           ├── 18_include.h
│   │           ├── 19_pointer_arithmetic.c
│   │           ├── 19_pointer_arithmetic.expect
│   │           ├── 20_pointer_comparison.c
│   │           ├── 20_pointer_comparison.expect
│   │           ├── 21_char_array.c
│   │           ├── 21_char_array.expect
│   │           ├── 22_floating_point.c
│   │           ├── 22_floating_point.expect
│   │           ├── 23_type_coercion.c
│   │           ├── 23_type_coercion.expect
│   │           ├── 24_math_library.c
│   │           ├── 24_math_library.expect
│   │           ├── 25_quicksort.c
│   │           ├── 25_quicksort.expect
│   │           ├── 26_character_constants.c
│   │           ├── 26_character_constants.expect
│   │           ├── 27_sizeof.c
│   │           ├── 27_sizeof.expect
│   │           ├── 28_strings.c
│   │           ├── 28_strings.expect
│   │           ├── 29_array_address.c
│   │           ├── 29_array_address.expect
│   │           ├── 30_hanoi.c
│   │           ├── 30_hanoi.expect
│   │           ├── 31_args.c
│   │           ├── 31_args.expect
│   │           ├── 32_led.c
│   │           ├── 32_led.expect
│   │           ├── 33_ternary_op.c
│   │           ├── 33_ternary_op.expect
│   │           ├── 34_array_assignment.c
│   │           ├── 34_array_assignment.expect
│   │           ├── 35_sizeof.c
│   │           ├── 35_sizeof.expect
│   │           ├── 36_array_initialisers.c
│   │           ├── 36_array_initialisers.expect
│   │           ├── 37_sprintf.c
│   │           ├── 37_sprintf.expect
│   │           ├── 38_multiple_array_index.c
│   │           ├── 38_multiple_array_index.expect
│   │           ├── 39_typedef.c
│   │           ├── 39_typedef.expect
│   │           ├── 40_stdio.c
│   │           ├── 40_stdio.expect
│   │           ├── 41_hashif.c
│   │           ├── 41_hashif.expect
│   │           ├── 42_function_pointer.c
│   │           ├── 42_function_pointer.expect
│   │           ├── 43_void_param.c
│   │           ├── 43_void_param.expect
│   │           ├── 44_scoped_declarations.c
│   │           ├── 44_scoped_declarations.expect
│   │           ├── 45_empty_for.c
│   │           ├── 45_empty_for.expect
│   │           ├── 46_grep.c
│   │           ├── 47_switch_return.c
│   │           ├── 47_switch_return.expect
│   │           ├── 48_nested_break.c
│   │           ├── 48_nested_break.expect
│   │           ├── 49_bracket_evaluation.c
│   │           ├── 49_bracket_evaluation.expect
│   │           ├── 50_logical_second_arg.c
│   │           ├── 50_logical_second_arg.expect
│   │           ├── 51_static.c
│   │           ├── 51_static.expect
│   │           ├── 52_unnamed_enum.c
│   │           ├── 52_unnamed_enum.expect
│   │           ├── 54_goto.c
│   │           ├── 54_goto.expect
│   │           ├── 55_lshift_type.c
│   │           ├── 55_lshift_type.expect
│   │           ├── LICENSE
│   │           └── Makefile
│   └── vers2.h
├── trigraphs.go
├── trigraphs.l
├── ucn32.go
├── ucn64.go
├── v2/
│   ├── AUTHORS
│   ├── CONTRIBUTORS
│   ├── LICENSE
│   ├── Makefile
│   ├── README.md
│   ├── all_test.go
│   ├── ast.go
│   ├── ast2.go
│   ├── ast_test.go
│   ├── cc.go
│   ├── cpp.go
│   ├── encoding.go
│   ├── enum.go
│   ├── etc.go
│   ├── headers/
│   │   ├── LICENSE-GCC-RTE-V3.1
│   │   ├── LICENSE-GPL-V3.txt
│   │   ├── Makefile
│   │   ├── all_test.go
│   │   ├── features.c
│   │   ├── generator.go
│   │   ├── linux_386/
│   │   │   ├── builtin.h
│   │   │   ├── paths
│   │   │   ├── predefined.h
│   │   │   └── usr/
│   │   │       ├── include/
│   │   │       │   ├── alloca.h
│   │   │       │   ├── arpa/
│   │   │       │   │   └── inet.h
│   │   │       │   ├── asm-generic/
│   │   │       │   │   ├── errno-base.h
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── ioctls.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   └── sockios.h
│   │   │       │   ├── assert.h
│   │   │       │   ├── ctype.h
│   │   │       │   ├── dirent.h
│   │   │       │   ├── dlfcn.h
│   │   │       │   ├── endian.h
│   │   │       │   ├── errno.h
│   │   │       │   ├── execinfo.h
│   │   │       │   ├── fcntl.h
│   │   │       │   ├── features.h
│   │   │       │   ├── fts.h
│   │   │       │   ├── getopt.h
│   │   │       │   ├── grp.h
│   │   │       │   ├── i386-linux-gnu/
│   │   │       │   │   ├── asm/
│   │   │       │   │   │   ├── errno.h
│   │   │       │   │   │   ├── ioctl.h
│   │   │       │   │   │   ├── ioctls.h
│   │   │       │   │   │   ├── param.h
│   │   │       │   │   │   ├── socket.h
│   │   │       │   │   │   └── sockios.h
│   │   │       │   │   ├── bits/
│   │   │       │   │   │   ├── _G_config.h
│   │   │       │   │   │   ├── byteswap-16.h
│   │   │       │   │   │   ├── byteswap.h
│   │   │       │   │   │   ├── confname.h
│   │   │       │   │   │   ├── cpu-set.h
│   │   │       │   │   │   ├── dirent.h
│   │   │       │   │   │   ├── dlfcn.h
│   │   │       │   │   │   ├── endian.h
│   │   │       │   │   │   ├── environments.h
│   │   │       │   │   │   ├── errno.h
│   │   │       │   │   │   ├── fcntl-linux.h
│   │   │       │   │   │   ├── fcntl.h
│   │   │       │   │   │   ├── floatn-common.h
│   │   │       │   │   │   ├── floatn.h
│   │   │       │   │   │   ├── flt-eval-method.h
│   │   │       │   │   │   ├── fp-fast.h
│   │   │       │   │   │   ├── fp-logb.h
│   │   │       │   │   │   ├── getopt_core.h
│   │   │       │   │   │   ├── getopt_ext.h
│   │   │       │   │   │   ├── getopt_posix.h
│   │   │       │   │   │   ├── in.h
│   │   │       │   │   │   ├── ioctl-types.h
│   │   │       │   │   │   ├── ioctls.h
│   │   │       │   │   │   ├── libc-header-start.h
│   │   │       │   │   │   ├── libio.h
│   │   │       │   │   │   ├── libm-simd-decl-stubs.h
│   │   │       │   │   │   ├── local_lim.h
│   │   │       │   │   │   ├── locale.h
│   │   │       │   │   │   ├── long-double.h
│   │   │       │   │   │   ├── math-vector.h
│   │   │       │   │   │   ├── mathcalls-helper-functions.h
│   │   │       │   │   │   ├── mathcalls.h
│   │   │       │   │   │   ├── mman-linux.h
│   │   │       │   │   │   ├── mman-shared.h
│   │   │       │   │   │   ├── mman.h
│   │   │       │   │   │   ├── netdb.h
│   │   │       │   │   │   ├── param.h
│   │   │       │   │   │   ├── posix1_lim.h
│   │   │       │   │   │   ├── posix2_lim.h
│   │   │       │   │   │   ├── posix_opt.h
│   │   │       │   │   │   ├── pthreadtypes-arch.h
│   │   │       │   │   │   ├── pthreadtypes.h
│   │   │       │   │   │   ├── resource.h
│   │   │       │   │   │   ├── sched.h
│   │   │       │   │   │   ├── select.h
│   │   │       │   │   │   ├── setjmp.h
│   │   │       │   │   │   ├── sigaction.h
│   │   │       │   │   │   ├── sigcontext.h
│   │   │       │   │   │   ├── sigevent-consts.h
│   │   │       │   │   │   ├── siginfo-arch.h
│   │   │       │   │   │   ├── siginfo-consts.h
│   │   │       │   │   │   ├── signum-generic.h
│   │   │       │   │   │   ├── signum.h
│   │   │       │   │   │   ├── sigstack.h
│   │   │       │   │   │   ├── sigthread.h
│   │   │       │   │   │   ├── sockaddr.h
│   │   │       │   │   │   ├── socket.h
│   │   │       │   │   │   ├── socket_type.h
│   │   │       │   │   │   ├── ss_flags.h
│   │   │       │   │   │   ├── stat.h
│   │   │       │   │   │   ├── statfs.h
│   │   │       │   │   │   ├── stdint-intn.h
│   │   │       │   │   │   ├── stdint-uintn.h
│   │   │       │   │   │   ├── stdio_lim.h
│   │   │       │   │   │   ├── stdlib-float.h
│   │   │       │   │   │   ├── sys_errlist.h
│   │   │       │   │   │   ├── sysmacros.h
│   │   │       │   │   │   ├── termios.h
│   │   │       │   │   │   ├── thread-shared-types.h
│   │   │       │   │   │   ├── time.h
│   │   │       │   │   │   ├── types/
│   │   │       │   │   │   │   ├── FILE.h
│   │   │       │   │   │   │   ├── __FILE.h
│   │   │       │   │   │   │   ├── __locale_t.h
│   │   │       │   │   │   │   ├── __mbstate_t.h
│   │   │       │   │   │   │   ├── __sigset_t.h
│   │   │       │   │   │   │   ├── __sigval_t.h
│   │   │       │   │   │   │   ├── clock_t.h
│   │   │       │   │   │   │   ├── clockid_t.h
│   │   │       │   │   │   │   ├── locale_t.h
│   │   │       │   │   │   │   ├── mbstate_t.h
│   │   │       │   │   │   │   ├── sig_atomic_t.h
│   │   │       │   │   │   │   ├── sigevent_t.h
│   │   │       │   │   │   │   ├── siginfo_t.h
│   │   │       │   │   │   │   ├── sigset_t.h
│   │   │       │   │   │   │   ├── sigval_t.h
│   │   │       │   │   │   │   ├── stack_t.h
│   │   │       │   │   │   │   ├── struct_iovec.h
│   │   │       │   │   │   │   ├── struct_itimerspec.h
│   │   │       │   │   │   │   ├── struct_osockaddr.h
│   │   │       │   │   │   │   ├── struct_rusage.h
│   │   │       │   │   │   │   ├── struct_sigstack.h
│   │   │       │   │   │   │   ├── struct_timespec.h
│   │   │       │   │   │   │   ├── struct_timeval.h
│   │   │       │   │   │   │   ├── struct_tm.h
│   │   │       │   │   │   │   ├── time_t.h
│   │   │       │   │   │   │   ├── timer_t.h
│   │   │       │   │   │   │   └── wint_t.h
│   │   │       │   │   │   ├── types.h
│   │   │       │   │   │   ├── typesizes.h
│   │   │       │   │   │   ├── uintn-identity.h
│   │   │       │   │   │   ├── uio_lim.h
│   │   │       │   │   │   ├── utsname.h
│   │   │       │   │   │   ├── waitflags.h
│   │   │       │   │   │   ├── waitstatus.h
│   │   │       │   │   │   ├── wchar.h
│   │   │       │   │   │   ├── wordsize.h
│   │   │       │   │   │   └── xopen_lim.h
│   │   │       │   │   ├── gnu/
│   │   │       │   │   │   ├── stubs-32.h
│   │   │       │   │   │   └── stubs.h
│   │   │       │   │   └── sys/
│   │   │       │   │       ├── cdefs.h
│   │   │       │   │       ├── file.h
│   │   │       │   │       ├── ioctl.h
│   │   │       │   │       ├── mman.h
│   │   │       │   │       ├── param.h
│   │   │       │   │       ├── resource.h
│   │   │       │   │       ├── select.h
│   │   │       │   │       ├── socket.h
│   │   │       │   │       ├── stat.h
│   │   │       │   │       ├── statfs.h
│   │   │       │   │       ├── sysmacros.h
│   │   │       │   │       ├── time.h
│   │   │       │   │       ├── ttydefaults.h
│   │   │       │   │       ├── types.h
│   │   │       │   │       ├── ucontext.h
│   │   │       │   │       ├── uio.h
│   │   │       │   │       ├── un.h
│   │   │       │   │       ├── utsname.h
│   │   │       │   │       └── wait.h
│   │   │       │   ├── inttypes.h
│   │   │       │   ├── limits.h
│   │   │       │   ├── linux/
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── limits.h
│   │   │       │   │   └── param.h
│   │   │       │   ├── locale.h
│   │   │       │   ├── malloc.h
│   │   │       │   ├── math.h
│   │   │       │   ├── memory.h
│   │   │       │   ├── netdb.h
│   │   │       │   ├── netinet/
│   │   │       │   │   └── in.h
│   │   │       │   ├── pthread.h
│   │   │       │   ├── pwd.h
│   │   │       │   ├── rpc/
│   │   │       │   │   └── netdb.h
│   │   │       │   ├── sched.h
│   │   │       │   ├── setjmp.h
│   │   │       │   ├── signal.h
│   │   │       │   ├── stdc-predef.h
│   │   │       │   ├── stdint.h
│   │   │       │   ├── stdio.h
│   │   │       │   ├── stdlib.h
│   │   │       │   ├── string.h
│   │   │       │   ├── strings.h
│   │   │       │   ├── termios.h
│   │   │       │   ├── time.h
│   │   │       │   ├── unistd.h
│   │   │       │   ├── utime.h
│   │   │       │   ├── wchar.h
│   │   │       │   ├── zconf.h
│   │   │       │   └── zlib.h
│   │   │       └── lib/
│   │   │           └── gcc/
│   │   │               └── i686-linux-gnu/
│   │   │                   └── 7/
│   │   │                       ├── include/
│   │   │                       │   ├── float.h
│   │   │                       │   ├── stdarg.h
│   │   │                       │   ├── stdbool.h
│   │   │                       │   ├── stddef.h
│   │   │                       │   └── stdint.h
│   │   │                       └── include-fixed/
│   │   │                           ├── limits.h
│   │   │                           └── syslimits.h
│   │   ├── linux_amd64/
│   │   │   ├── builtin.h
│   │   │   ├── paths
│   │   │   ├── predefined.h
│   │   │   └── usr/
│   │   │       ├── include/
│   │   │       │   ├── _G_config.h
│   │   │       │   ├── alloca.h
│   │   │       │   ├── arpa/
│   │   │       │   │   └── inet.h
│   │   │       │   ├── asm/
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── ioctls.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   └── sockios.h
│   │   │       │   ├── asm-generic/
│   │   │       │   │   ├── errno-base.h
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── ioctls.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   └── sockios.h
│   │   │       │   ├── assert.h
│   │   │       │   ├── bits/
│   │   │       │   │   ├── byteswap-16.h
│   │   │       │   │   ├── byteswap.h
│   │   │       │   │   ├── confname.h
│   │   │       │   │   ├── dirent.h
│   │   │       │   │   ├── dlfcn.h
│   │   │       │   │   ├── endian.h
│   │   │       │   │   ├── environments.h
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── fcntl-linux.h
│   │   │       │   │   ├── fcntl.h
│   │   │       │   │   ├── huge_val.h
│   │   │       │   │   ├── huge_valf.h
│   │   │       │   │   ├── huge_vall.h
│   │   │       │   │   ├── in.h
│   │   │       │   │   ├── inf.h
│   │   │       │   │   ├── ioctl-types.h
│   │   │       │   │   ├── ioctls.h
│   │   │       │   │   ├── libm-simd-decl-stubs.h
│   │   │       │   │   ├── local_lim.h
│   │   │       │   │   ├── locale.h
│   │   │       │   │   ├── math-vector.h
│   │   │       │   │   ├── mathcalls.h
│   │   │       │   │   ├── mathdef.h
│   │   │       │   │   ├── mman-linux.h
│   │   │       │   │   ├── mman.h
│   │   │       │   │   ├── nan.h
│   │   │       │   │   ├── netdb.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── posix1_lim.h
│   │   │       │   │   ├── posix2_lim.h
│   │   │       │   │   ├── posix_opt.h
│   │   │       │   │   ├── pthreadtypes.h
│   │   │       │   │   ├── resource.h
│   │   │       │   │   ├── sched.h
│   │   │       │   │   ├── select.h
│   │   │       │   │   ├── setjmp.h
│   │   │       │   │   ├── sigaction.h
│   │   │       │   │   ├── sigcontext.h
│   │   │       │   │   ├── siginfo.h
│   │   │       │   │   ├── signum.h
│   │   │       │   │   ├── sigset.h
│   │   │       │   │   ├── sigstack.h
│   │   │       │   │   ├── sigthread.h
│   │   │       │   │   ├── sockaddr.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   ├── socket_type.h
│   │   │       │   │   ├── stat.h
│   │   │       │   │   ├── statfs.h
│   │   │       │   │   ├── stdio_lim.h
│   │   │       │   │   ├── stdlib-float.h
│   │   │       │   │   ├── sys_errlist.h
│   │   │       │   │   ├── termios.h
│   │   │       │   │   ├── time.h
│   │   │       │   │   ├── types.h
│   │   │       │   │   ├── typesizes.h
│   │   │       │   │   ├── uio.h
│   │   │       │   │   ├── utsname.h
│   │   │       │   │   ├── waitflags.h
│   │   │       │   │   ├── waitstatus.h
│   │   │       │   │   ├── wchar.h
│   │   │       │   │   ├── wordsize.h
│   │   │       │   │   └── xopen_lim.h
│   │   │       │   ├── ctype.h
│   │   │       │   ├── dirent.h
│   │   │       │   ├── dlfcn.h
│   │   │       │   ├── endian.h
│   │   │       │   ├── errno.h
│   │   │       │   ├── execinfo.h
│   │   │       │   ├── fcntl.h
│   │   │       │   ├── features.h
│   │   │       │   ├── fts.h
│   │   │       │   ├── getopt.h
│   │   │       │   ├── gnu/
│   │   │       │   │   ├── stubs-64.h
│   │   │       │   │   └── stubs.h
│   │   │       │   ├── grp.h
│   │   │       │   ├── inttypes.h
│   │   │       │   ├── libio.h
│   │   │       │   ├── limits.h
│   │   │       │   ├── linux/
│   │   │       │   │   ├── errno.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── limits.h
│   │   │       │   │   └── param.h
│   │   │       │   ├── locale.h
│   │   │       │   ├── malloc.h
│   │   │       │   ├── math.h
│   │   │       │   ├── memory.h
│   │   │       │   ├── netdb.h
│   │   │       │   ├── netinet/
│   │   │       │   │   └── in.h
│   │   │       │   ├── pthread.h
│   │   │       │   ├── pwd.h
│   │   │       │   ├── rpc/
│   │   │       │   │   └── netdb.h
│   │   │       │   ├── sched.h
│   │   │       │   ├── setjmp.h
│   │   │       │   ├── signal.h
│   │   │       │   ├── stdc-predef.h
│   │   │       │   ├── stdint.h
│   │   │       │   ├── stdio.h
│   │   │       │   ├── stdlib.h
│   │   │       │   ├── string.h
│   │   │       │   ├── strings.h
│   │   │       │   ├── sys/
│   │   │       │   │   ├── cdefs.h
│   │   │       │   │   ├── file.h
│   │   │       │   │   ├── ioctl.h
│   │   │       │   │   ├── mman.h
│   │   │       │   │   ├── param.h
│   │   │       │   │   ├── resource.h
│   │   │       │   │   ├── select.h
│   │   │       │   │   ├── socket.h
│   │   │       │   │   ├── stat.h
│   │   │       │   │   ├── statfs.h
│   │   │       │   │   ├── sysmacros.h
│   │   │       │   │   ├── time.h
│   │   │       │   │   ├── times.h
│   │   │       │   │   ├── ttydefaults.h
│   │   │       │   │   ├── types.h
│   │   │       │   │   ├── ucontext.h
│   │   │       │   │   ├── uio.h
│   │   │       │   │   ├── un.h
│   │   │       │   │   ├── utsname.h
│   │   │       │   │   └── wait.h
│   │   │       │   ├── termios.h
│   │   │       │   ├── time.h
│   │   │       │   ├── unistd.h
│   │   │       │   ├── utime.h
│   │   │       │   ├── wchar.h
│   │   │       │   ├── wctype.h
│   │   │       │   ├── xlocale.h
│   │   │       │   ├── zconf.h
│   │   │       │   └── zlib.h
│   │   │       └── lib64/
│   │   │           └── gcc/
│   │   │               └── x86_64-suse-linux/
│   │   │                   └── 4.8/
│   │   │                       ├── include/
│   │   │                       │   ├── float.h
│   │   │                       │   ├── stdarg.h
│   │   │                       │   ├── stdbool.h
│   │   │                       │   ├── stddef.h
│   │   │                       │   └── stdint.h
│   │   │                       └── include-fixed/
│   │   │                           ├── limits.h
│   │   │                           └── syslimits.h
│   │   └── linux_arm/
│   │       ├── builtin.h
│   │       ├── paths
│   │       ├── predefined.h
│   │       └── usr/
│   │           ├── include/
│   │           │   ├── _G_config.h
│   │           │   ├── alloca.h
│   │           │   ├── arm-linux-gnueabihf/
│   │           │   │   ├── asm/
│   │           │   │   │   ├── errno.h
│   │           │   │   │   ├── ioctl.h
│   │           │   │   │   ├── ioctls.h
│   │           │   │   │   ├── param.h
│   │           │   │   │   ├── sigcontext.h
│   │           │   │   │   ├── socket.h
│   │           │   │   │   └── sockios.h
│   │           │   │   ├── bits/
│   │           │   │   │   ├── byteswap-16.h
│   │           │   │   │   ├── byteswap.h
│   │           │   │   │   ├── confname.h
│   │           │   │   │   ├── dirent.h
│   │           │   │   │   ├── dlfcn.h
│   │           │   │   │   ├── endian.h
│   │           │   │   │   ├── environments.h
│   │           │   │   │   ├── errno.h
│   │           │   │   │   ├── fcntl-linux.h
│   │           │   │   │   ├── fcntl.h
│   │           │   │   │   ├── huge_val.h
│   │           │   │   │   ├── huge_valf.h
│   │           │   │   │   ├── huge_vall.h
│   │           │   │   │   ├── in.h
│   │           │   │   │   ├── inf.h
│   │           │   │   │   ├── ioctl-types.h
│   │           │   │   │   ├── ioctls.h
│   │           │   │   │   ├── libm-simd-decl-stubs.h
│   │           │   │   │   ├── local_lim.h
│   │           │   │   │   ├── locale.h
│   │           │   │   │   ├── math-vector.h
│   │           │   │   │   ├── mathcalls.h
│   │           │   │   │   ├── mathdef.h
│   │           │   │   │   ├── mman-linux.h
│   │           │   │   │   ├── mman.h
│   │           │   │   │   ├── nan.h
│   │           │   │   │   ├── netdb.h
│   │           │   │   │   ├── param.h
│   │           │   │   │   ├── posix1_lim.h
│   │           │   │   │   ├── posix2_lim.h
│   │           │   │   │   ├── posix_opt.h
│   │           │   │   │   ├── pthreadtypes.h
│   │           │   │   │   ├── resource.h
│   │           │   │   │   ├── sched.h
│   │           │   │   │   ├── select.h
│   │           │   │   │   ├── setjmp.h
│   │           │   │   │   ├── sigaction.h
│   │           │   │   │   ├── sigcontext.h
│   │           │   │   │   ├── siginfo.h
│   │           │   │   │   ├── signum.h
│   │           │   │   │   ├── sigset.h
│   │           │   │   │   ├── sigstack.h
│   │           │   │   │   ├── sigthread.h
│   │           │   │   │   ├── sockaddr.h
│   │           │   │   │   ├── socket.h
│   │           │   │   │   ├── socket_type.h
│   │           │   │   │   ├── stat.h
│   │           │   │   │   ├── statfs.h
│   │           │   │   │   ├── stdio_lim.h
│   │           │   │   │   ├── stdlib-float.h
│   │           │   │   │   ├── sys_errlist.h
│   │           │   │   │   ├── termios.h
│   │           │   │   │   ├── time.h
│   │           │   │   │   ├── types.h
│   │           │   │   │   ├── typesizes.h
│   │           │   │   │   ├── uio.h
│   │           │   │   │   ├── utsname.h
│   │           │   │   │   ├── waitflags.h
│   │           │   │   │   ├── waitstatus.h
│   │           │   │   │   ├── wchar.h
│   │           │   │   │   └── wordsize.h
│   │           │   │   ├── gnu/
│   │           │   │   │   ├── stubs-hard.h
│   │           │   │   │   └── stubs.h
│   │           │   │   └── sys/
│   │           │   │       ├── cdefs.h
│   │           │   │       ├── file.h
│   │           │   │       ├── ioctl.h
│   │           │   │       ├── mman.h
│   │           │   │       ├── param.h
│   │           │   │       ├── resource.h
│   │           │   │       ├── select.h
│   │           │   │       ├── socket.h
│   │           │   │       ├── stat.h
│   │           │   │       ├── statfs.h
│   │           │   │       ├── sysmacros.h
│   │           │   │       ├── time.h
│   │           │   │       ├── ttydefaults.h
│   │           │   │       ├── types.h
│   │           │   │       ├── ucontext.h
│   │           │   │       ├── uio.h
│   │           │   │       ├── un.h
│   │           │   │       ├── utsname.h
│   │           │   │       └── wait.h
│   │           │   ├── arpa/
│   │           │   │   └── inet.h
│   │           │   ├── asm-generic/
│   │           │   │   ├── errno-base.h
│   │           │   │   ├── errno.h
│   │           │   │   ├── ioctl.h
│   │           │   │   ├── ioctls.h
│   │           │   │   ├── param.h
│   │           │   │   ├── socket.h
│   │           │   │   └── sockios.h
│   │           │   ├── assert.h
│   │           │   ├── ctype.h
│   │           │   ├── dirent.h
│   │           │   ├── dlfcn.h
│   │           │   ├── endian.h
│   │           │   ├── errno.h
│   │           │   ├── execinfo.h
│   │           │   ├── fcntl.h
│   │           │   ├── features.h
│   │           │   ├── fts.h
│   │           │   ├── getopt.h
│   │           │   ├── grp.h
│   │           │   ├── inttypes.h
│   │           │   ├── libio.h
│   │           │   ├── limits.h
│   │           │   ├── linux/
│   │           │   │   ├── errno.h
│   │           │   │   ├── ioctl.h
│   │           │   │   ├── limits.h
│   │           │   │   └── param.h
│   │           │   ├── locale.h
│   │           │   ├── malloc.h
│   │           │   ├── math.h
│   │           │   ├── memory.h
│   │           │   ├── netdb.h
│   │           │   ├── netinet/
│   │           │   │   └── in.h
│   │           │   ├── pthread.h
│   │           │   ├── pwd.h
│   │           │   ├── rpc/
│   │           │   │   └── netdb.h
│   │           │   ├── sched.h
│   │           │   ├── setjmp.h
│   │           │   ├── signal.h
│   │           │   ├── stdc-predef.h
│   │           │   ├── stdint.h
│   │           │   ├── stdio.h
│   │           │   ├── stdlib.h
│   │           │   ├── string.h
│   │           │   ├── strings.h
│   │           │   ├── termios.h
│   │           │   ├── time.h
│   │           │   ├── unistd.h
│   │           │   ├── utime.h
│   │           │   ├── wchar.h
│   │           │   ├── xlocale.h
│   │           │   ├── zconf.h
│   │           │   └── zlib.h
│   │           └── lib/
│   │               └── gcc/
│   │                   └── arm-linux-gnueabihf/
│   │                       └── 6/
│   │                           ├── include/
│   │                           │   ├── float.h
│   │                           │   ├── stdarg.h
│   │                           │   ├── stdbool.h
│   │                           │   ├── stddef.h
│   │                           │   └── stdint.h
│   │                           └── include-fixed/
│   │                               ├── limits.h
│   │                               └── syslimits.h
│   ├── lexer.go
│   ├── model.go
│   ├── operand.go
│   ├── parser.go
│   ├── parser.yy
│   ├── scanner.go
│   ├── scanner.l
│   ├── stringer.go
│   ├── testdata/
│   │   ├── _sqlite/
│   │   │   ├── LICENSE
│   │   │   ├── ext/
│   │   │   │   ├── README.md
│   │   │   │   ├── async/
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── sqlite3async.c
│   │   │   │   │   └── sqlite3async.h
│   │   │   │   ├── fts1/
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── ft_hash.c
│   │   │   │   │   ├── ft_hash.h
│   │   │   │   │   ├── fts1.c
│   │   │   │   │   ├── fts1.h
│   │   │   │   │   ├── fts1_hash.c
│   │   │   │   │   ├── fts1_hash.h
│   │   │   │   │   ├── fts1_porter.c
│   │   │   │   │   ├── fts1_tokenizer.h
│   │   │   │   │   ├── fts1_tokenizer1.c
│   │   │   │   │   ├── fulltext.c
│   │   │   │   │   ├── fulltext.h
│   │   │   │   │   ├── simple_tokenizer.c
│   │   │   │   │   └── tokenizer.h
│   │   │   │   ├── fts2/
│   │   │   │   │   ├── README.tokenizers
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── fts2.c
│   │   │   │   │   ├── fts2.h
│   │   │   │   │   ├── fts2_hash.c
│   │   │   │   │   ├── fts2_hash.h
│   │   │   │   │   ├── fts2_icu.c
│   │   │   │   │   ├── fts2_porter.c
│   │   │   │   │   ├── fts2_tokenizer.c
│   │   │   │   │   ├── fts2_tokenizer.h
│   │   │   │   │   ├── fts2_tokenizer1.c
│   │   │   │   │   └── mkfts2amal.tcl
│   │   │   │   ├── fts3/
│   │   │   │   │   ├── README.content
│   │   │   │   │   ├── README.syntax
│   │   │   │   │   ├── README.tokenizers
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── fts3.c
│   │   │   │   │   ├── fts3.h
│   │   │   │   │   ├── fts3Int.h
│   │   │   │   │   ├── fts3_aux.c
│   │   │   │   │   ├── fts3_expr.c
│   │   │   │   │   ├── fts3_hash.c
│   │   │   │   │   ├── fts3_hash.h
│   │   │   │   │   ├── fts3_icu.c
│   │   │   │   │   ├── fts3_porter.c
│   │   │   │   │   ├── fts3_snippet.c
│   │   │   │   │   ├── fts3_term.c
│   │   │   │   │   ├── fts3_test.c
│   │   │   │   │   ├── fts3_tokenize_vtab.c
│   │   │   │   │   ├── fts3_tokenizer.c
│   │   │   │   │   ├── fts3_tokenizer.h
│   │   │   │   │   ├── fts3_tokenizer1.c
│   │   │   │   │   ├── fts3_unicode.c
│   │   │   │   │   ├── fts3_unicode2.c
│   │   │   │   │   ├── fts3_write.c
│   │   │   │   │   ├── fts3speed.tcl
│   │   │   │   │   ├── mkfts3amal.tcl
│   │   │   │   │   ├── tool/
│   │   │   │   │   │   ├── fts3cov.sh
│   │   │   │   │   │   └── fts3view.c
│   │   │   │   │   └── unicode/
│   │   │   │   │       ├── CaseFolding.txt
│   │   │   │   │       ├── UnicodeData.txt
│   │   │   │   │       ├── mkunicode.tcl
│   │   │   │   │       └── parseunicode.tcl
│   │   │   │   ├── fts5/
│   │   │   │   │   ├── extract_api_docs.tcl
│   │   │   │   │   ├── fts5.h
│   │   │   │   │   ├── fts5Int.h
│   │   │   │   │   ├── fts5_aux.c
│   │   │   │   │   ├── fts5_buffer.c
│   │   │   │   │   ├── fts5_config.c
│   │   │   │   │   ├── fts5_expr.c
│   │   │   │   │   ├── fts5_hash.c
│   │   │   │   │   ├── fts5_index.c
│   │   │   │   │   ├── fts5_main.c
│   │   │   │   │   ├── fts5_storage.c
│   │   │   │   │   ├── fts5_tcl.c
│   │   │   │   │   ├── fts5_test_mi.c
│   │   │   │   │   ├── fts5_test_tok.c
│   │   │   │   │   ├── fts5_tokenize.c
│   │   │   │   │   ├── fts5_unicode2.c
│   │   │   │   │   ├── fts5_varint.c
│   │   │   │   │   ├── fts5_vocab.c
│   │   │   │   │   ├── fts5parse.y
│   │   │   │   │   ├── mkportersteps.tcl
│   │   │   │   │   ├── test/
│   │   │   │   │   │   ├── fts5_common.tcl
│   │   │   │   │   │   ├── fts5aa.test
│   │   │   │   │   │   ├── fts5ab.test
│   │   │   │   │   │   ├── fts5ac.test
│   │   │   │   │   │   ├── fts5ad.test
│   │   │   │   │   │   ├── fts5ae.test
│   │   │   │   │   │   ├── fts5af.test
│   │   │   │   │   │   ├── fts5ag.test
│   │   │   │   │   │   ├── fts5ah.test
│   │   │   │   │   │   ├── fts5ai.test
│   │   │   │   │   │   ├── fts5aj.test
│   │   │   │   │   │   ├── fts5ak.test
│   │   │   │   │   │   ├── fts5al.test
│   │   │   │   │   │   ├── fts5alter.test
│   │   │   │   │   │   ├── fts5auto.test
│   │   │   │   │   │   ├── fts5aux.test
│   │   │   │   │   │   ├── fts5auxdata.test
│   │   │   │   │   │   ├── fts5bigpl.test
│   │   │   │   │   │   ├── fts5bigtok.test
│   │   │   │   │   │   ├── fts5colset.test
│   │   │   │   │   │   ├── fts5columnsize.test
│   │   │   │   │   │   ├── fts5config.test
│   │   │   │   │   │   ├── fts5conflict.test
│   │   │   │   │   │   ├── fts5connect.test
│   │   │   │   │   │   ├── fts5content.test
│   │   │   │   │   │   ├── fts5corrupt.test
│   │   │   │   │   │   ├── fts5corrupt2.test
│   │   │   │   │   │   ├── fts5corrupt3.test
│   │   │   │   │   │   ├── fts5delete.test
│   │   │   │   │   │   ├── fts5detail.test
│   │   │   │   │   │   ├── fts5determin.test
│   │   │   │   │   │   ├── fts5dlidx.test
│   │   │   │   │   │   ├── fts5doclist.test
│   │   │   │   │   │   ├── fts5ea.test
│   │   │   │   │   │   ├── fts5eb.test
│   │   │   │   │   │   ├── fts5fault1.test
│   │   │   │   │   │   ├── fts5fault2.test
│   │   │   │   │   │   ├── fts5fault3.test
│   │   │   │   │   │   ├── fts5fault4.test
│   │   │   │   │   │   ├── fts5fault5.test
│   │   │   │   │   │   ├── fts5fault6.test
│   │   │   │   │   │   ├── fts5fault7.test
│   │   │   │   │   │   ├── fts5fault8.test
│   │   │   │   │   │   ├── fts5fault9.test
│   │   │   │   │   │   ├── fts5faultA.test
│   │   │   │   │   │   ├── fts5faultB.test
│   │   │   │   │   │   ├── fts5faultD.test
│   │   │   │   │   │   ├── fts5full.test
│   │   │   │   │   │   ├── fts5fuzz1.test
│   │   │   │   │   │   ├── fts5hash.test
│   │   │   │   │   │   ├── fts5integrity.test
│   │   │   │   │   │   ├── fts5lastrowid.test
│   │   │   │   │   │   ├── fts5leftjoin.test
│   │   │   │   │   │   ├── fts5matchinfo.test
│   │   │   │   │   │   ├── fts5merge.test
│   │   │   │   │   │   ├── fts5merge2.test
│   │   │   │   │   │   ├── fts5multiclient.test
│   │   │   │   │   │   ├── fts5near.test
│   │   │   │   │   │   ├── fts5onepass.test
│   │   │   │   │   │   ├── fts5optimize.test
│   │   │   │   │   │   ├── fts5phrase.test
│   │   │   │   │   │   ├── fts5plan.test
│   │   │   │   │   │   ├── fts5porter.test
│   │   │   │   │   │   ├── fts5porter2.test
│   │   │   │   │   │   ├── fts5prefix.test
│   │   │   │   │   │   ├── fts5query.test
│   │   │   │   │   │   ├── fts5rank.test
│   │   │   │   │   │   ├── fts5rebuild.test
│   │   │   │   │   │   ├── fts5restart.test
│   │   │   │   │   │   ├── fts5rowid.test
│   │   │   │   │   │   ├── fts5simple.test
│   │   │   │   │   │   ├── fts5simple2.test
│   │   │   │   │   │   ├── fts5simple3.test
│   │   │   │   │   │   ├── fts5synonym.test
│   │   │   │   │   │   ├── fts5synonym2.test
│   │   │   │   │   │   ├── fts5tok1.test
│   │   │   │   │   │   ├── fts5tok2.test
│   │   │   │   │   │   ├── fts5tokenizer.test
│   │   │   │   │   │   ├── fts5unicode.test
│   │   │   │   │   │   ├── fts5unicode2.test
│   │   │   │   │   │   ├── fts5unicode3.test
│   │   │   │   │   │   ├── fts5unindexed.test
│   │   │   │   │   │   ├── fts5update.test
│   │   │   │   │   │   ├── fts5version.test
│   │   │   │   │   │   ├── fts5vocab.test
│   │   │   │   │   │   └── fts5vocab2.test
│   │   │   │   │   └── tool/
│   │   │   │   │       ├── fts5speed.tcl
│   │   │   │   │       ├── fts5txt2db.tcl
│   │   │   │   │       ├── loadfts5.tcl
│   │   │   │   │       ├── mkfts5c.tcl
│   │   │   │   │       └── showfts5.tcl
│   │   │   │   ├── icu/
│   │   │   │   │   ├── README.txt
│   │   │   │   │   ├── icu.c
│   │   │   │   │   └── sqliteicu.h
│   │   │   │   ├── lsm1/
│   │   │   │   │   ├── Makefile
│   │   │   │   │   ├── Makefile.msc
│   │   │   │   │   ├── lsm-test/
│   │   │   │   │   │   ├── README
│   │   │   │   │   │   ├── lsmtest.h
│   │   │   │   │   │   ├── lsmtest1.c
│   │   │   │   │   │   ├── lsmtest2.c
│   │   │   │   │   │   ├── lsmtest3.c
│   │   │   │   │   │   ├── lsmtest4.c
│   │   │   │   │   │   ├── lsmtest5.c
│   │   │   │   │   │   ├── lsmtest6.c
│   │   │   │   │   │   ├── lsmtest7.c
│   │   │   │   │   │   ├── lsmtest8.c
│   │   │   │   │   │   ├── lsmtest9.c
│   │   │   │   │   │   ├── lsmtest_bt.c
│   │   │   │   │   │   ├── lsmtest_datasource.c
│   │   │   │   │   │   ├── lsmtest_func.c
│   │   │   │   │   │   ├── lsmtest_io.c
│   │   │   │   │   │   ├── lsmtest_main.c
│   │   │   │   │   │   ├── lsmtest_mem.c
│   │   │   │   │   │   ├── lsmtest_tdb.c
│   │   │   │   │   │   ├── lsmtest_tdb.h
│   │   │   │   │   │   ├── lsmtest_tdb2.cc
│   │   │   │   │   │   ├── lsmtest_tdb3.c
│   │   │   │   │   │   ├── lsmtest_tdb4.c
│   │   │   │   │   │   ├── lsmtest_util.c
│   │   │   │   │   │   └── lsmtest_win32.c
│   │   │   │   │   ├── lsm.h
│   │   │   │   │   ├── lsmInt.h
│   │   │   │   │   ├── lsm_ckpt.c
│   │   │   │   │   ├── lsm_file.c
│   │   │   │   │   ├── lsm_log.c
│   │   │   │   │   ├── lsm_main.c
│   │   │   │   │   ├── lsm_mem.c
│   │   │   │   │   ├── lsm_mutex.c
│   │   │   │   │   ├── lsm_shared.c
│   │   │   │   │   ├── lsm_sorted.c
│   │   │   │   │   ├── lsm_str.c
│   │   │   │   │   ├── lsm_tree.c
│   │   │   │   │   ├── lsm_unix.c
│   │   │   │   │   ├── lsm_varint.c
│   │   │   │   │   ├── lsm_vtab.c
│   │   │   │   │   ├── lsm_win32.c
│   │   │   │   │   └── test/
│   │   │   │   │       ├── lsm1_common.tcl
│   │   │   │   │       └── lsm1_simple.test
│   │   │   │   ├── misc/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── amatch.c
│   │   │   │   │   ├── anycollseq.c
│   │   │   │   │   ├── carray.c
│   │   │   │   │   ├── closure.c
│   │   │   │   │   ├── completion.c
│   │   │   │   │   ├── compress.c
│   │   │   │   │   ├── csv.c
│   │   │   │   │   ├── dbdump.c
│   │   │   │   │   ├── eval.c
│   │   │   │   │   ├── fileio.c
│   │   │   │   │   ├── fuzzer.c
│   │   │   │   │   ├── ieee754.c
│   │   │   │   │   ├── json1.c
│   │   │   │   │   ├── memvfs.c
│   │   │   │   │   ├── mmapwarm.c
│   │   │   │   │   ├── nextchar.c
│   │   │   │   │   ├── percentile.c
│   │   │   │   │   ├── regexp.c
│   │   │   │   │   ├── remember.c
│   │   │   │   │   ├── rot13.c
│   │   │   │   │   ├── scrub.c
│   │   │   │   │   ├── series.c
│   │   │   │   │   ├── sha1.c
│   │   │   │   │   ├── shathree.c
│   │   │   │   │   ├── showauth.c
│   │   │   │   │   ├── spellfix.c
│   │   │   │   │   ├── stmt.c
│   │   │   │   │   ├── totype.c
│   │   │   │   │   ├── unionvtab.c
│   │   │   │   │   ├── vfslog.c
│   │   │   │   │   ├── vfsstat.c
│   │   │   │   │   ├── vtablog.c
│   │   │   │   │   ├── vtshim.c
│   │   │   │   │   └── wholenumber.c
│   │   │   │   ├── rbu/
│   │   │   │   │   ├── rbu.c
│   │   │   │   │   ├── rbu1.test
│   │   │   │   │   ├── rbu10.test
│   │   │   │   │   ├── rbu11.test
│   │   │   │   │   ├── rbu12.test
│   │   │   │   │   ├── rbu13.test
│   │   │   │   │   ├── rbu14.test
│   │   │   │   │   ├── rbu3.test
│   │   │   │   │   ├── rbu5.test
│   │   │   │   │   ├── rbu6.test
│   │   │   │   │   ├── rbu7.test
│   │   │   │   │   ├── rbu8.test
│   │   │   │   │   ├── rbu9.test
│   │   │   │   │   ├── rbuA.test
│   │   │   │   │   ├── rbuB.test
│   │   │   │   │   ├── rbuC.test
│   │   │   │   │   ├── rbu_common.tcl
│   │   │   │   │   ├── rbucrash.test
│   │   │   │   │   ├── rbucrash2.test
│   │   │   │   │   ├── rbudiff.test
│   │   │   │   │   ├── rbudor.test
│   │   │   │   │   ├── rbufault.test
│   │   │   │   │   ├── rbufault2.test
│   │   │   │   │   ├── rbufault3.test
│   │   │   │   │   ├── rbufault4.test
│   │   │   │   │   ├── rbufts.test
│   │   │   │   │   ├── rbuprogress.test
│   │   │   │   │   ├── rburesume.test
│   │   │   │   │   ├── rbusave.test
│   │   │   │   │   ├── rbutemplimit.test
│   │   │   │   │   ├── rbuvacuum.test
│   │   │   │   │   ├── rbuvacuum2.test
│   │   │   │   │   ├── sqlite3rbu.c
│   │   │   │   │   ├── sqlite3rbu.h
│   │   │   │   │   └── test_rbu.c
│   │   │   │   ├── repair/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── checkfreelist.c
│   │   │   │   ├── rtree/
│   │   │   │   │   ├── README
│   │   │   │   │   ├── rtree.c
│   │   │   │   │   ├── rtree.h
│   │   │   │   │   ├── rtree1.test
│   │   │   │   │   ├── rtree2.test
│   │   │   │   │   ├── rtree3.test
│   │   │   │   │   ├── rtree4.test
│   │   │   │   │   ├── rtree5.test
│   │   │   │   │   ├── rtree6.test
│   │   │   │   │   ├── rtree7.test
│   │   │   │   │   ├── rtree8.test
│   │   │   │   │   ├── rtree9.test
│   │   │   │   │   ├── rtreeA.test
│   │   │   │   │   ├── rtreeB.test
│   │   │   │   │   ├── rtreeC.test
│   │   │   │   │   ├── rtreeD.test
│   │   │   │   │   ├── rtreeE.test
│   │   │   │   │   ├── rtreeF.test
│   │   │   │   │   ├── rtreeG.test
│   │   │   │   │   ├── rtree_perf.tcl
│   │   │   │   │   ├── rtree_util.tcl
│   │   │   │   │   ├── rtreeconnect.test
│   │   │   │   │   ├── sqlite3rtree.h
│   │   │   │   │   ├── tkt3363.test
│   │   │   │   │   └── viewrtree.tcl
│   │   │   │   ├── session/
│   │   │   │   │   ├── changeset.c
│   │   │   │   │   ├── session1.test
│   │   │   │   │   ├── session2.test
│   │   │   │   │   ├── session3.test
│   │   │   │   │   ├── session4.test
│   │   │   │   │   ├── session5.test
│   │   │   │   │   ├── session6.test
│   │   │   │   │   ├── session8.test
│   │   │   │   │   ├── session9.test
│   │   │   │   │   ├── sessionA.test
│   │   │   │   │   ├── sessionB.test
│   │   │   │   │   ├── sessionC.test
│   │   │   │   │   ├── sessionD.test
│   │   │   │   │   ├── sessionE.test
│   │   │   │   │   ├── sessionF.test
│   │   │   │   │   ├── sessionG.test
│   │   │   │   │   ├── session_common.tcl
│   │   │   │   │   ├── session_speed_test.c
│   │   │   │   │   ├── sessionat.test
│   │   │   │   │   ├── sessiondiff.test
│   │   │   │   │   ├── sessionfault.test
│   │   │   │   │   ├── sessionfault2.test
│   │   │   │   │   ├── sessionwor.test
│   │   │   │   │   ├── sqlite3session.c
│   │   │   │   │   ├── sqlite3session.h
│   │   │   │   │   └── test_session.c
│   │   │   │   └── userauth/
│   │   │   │       ├── sqlite3userauth.h
│   │   │   │       ├── user-auth.txt
│   │   │   │       └── userauth.c
│   │   │   ├── sqlite-amalgamation-3210000/
│   │   │   │   ├── shell.c
│   │   │   │   ├── sqlite3.c
│   │   │   │   ├── sqlite3.h
│   │   │   │   └── sqlite3ext.h
│   │   │   ├── src/
│   │   │   │   ├── alter.c
│   │   │   │   ├── analyze.c
│   │   │   │   ├── attach.c
│   │   │   │   ├── auth.c
│   │   │   │   ├── backup.c
│   │   │   │   ├── bitvec.c
│   │   │   │   ├── btmutex.c
│   │   │   │   ├── btree.c
│   │   │   │   ├── btree.h
│   │   │   │   ├── btreeInt.h
│   │   │   │   ├── build.c
│   │   │   │   ├── callback.c
│   │   │   │   ├── complete.c
│   │   │   │   ├── ctime.c
│   │   │   │   ├── date.c
│   │   │   │   ├── dbpage.c
│   │   │   │   ├── dbstat.c
│   │   │   │   ├── delete.c
│   │   │   │   ├── expr.c
│   │   │   │   ├── fault.c
│   │   │   │   ├── fkey.c
│   │   │   │   ├── func.c
│   │   │   │   ├── global.c
│   │   │   │   ├── hash.c
│   │   │   │   ├── hash.h
│   │   │   │   ├── hwtime.h
│   │   │   │   ├── in-operator.md
│   │   │   │   ├── insert.c
│   │   │   │   ├── legacy.c
│   │   │   │   ├── loadext.c
│   │   │   │   ├── main.c
│   │   │   │   ├── malloc.c
│   │   │   │   ├── mem0.c
│   │   │   │   ├── mem1.c
│   │   │   │   ├── mem2.c
│   │   │   │   ├── mem3.c
│   │   │   │   ├── mem5.c
│   │   │   │   ├── memjournal.c
│   │   │   │   ├── msvc.h
│   │   │   │   ├── mutex.c
│   │   │   │   ├── mutex.h
│   │   │   │   ├── mutex_noop.c
│   │   │   │   ├── mutex_unix.c
│   │   │   │   ├── mutex_w32.c
│   │   │   │   ├── notify.c
│   │   │   │   ├── opcodes.h
│   │   │   │   ├── os.c
│   │   │   │   ├── os.h
│   │   │   │   ├── os_common.h
│   │   │   │   ├── os_setup.h
│   │   │   │   ├── os_unix.c
│   │   │   │   ├── os_win.c
│   │   │   │   ├── os_win.h
│   │   │   │   ├── pager.c
│   │   │   │   ├── pager.h
│   │   │   │   ├── parse.h
│   │   │   │   ├── parse.y
│   │   │   │   ├── pcache.c
│   │   │   │   ├── pcache.h
│   │   │   │   ├── pcache1.c
│   │   │   │   ├── pragma.c
│   │   │   │   ├── pragma.h
│   │   │   │   ├── prepare.c
│   │   │   │   ├── printf.c
│   │   │   │   ├── random.c
│   │   │   │   ├── resolve.c
│   │   │   │   ├── rowset.c
│   │   │   │   ├── select.c
│   │   │   │   ├── shell.c.in
│   │   │   │   ├── sqlite.h.in
│   │   │   │   ├── sqlite3.rc
│   │   │   │   ├── sqlite3ext.h
│   │   │   │   ├── sqliteInt.h
│   │   │   │   ├── sqliteLimit.h
│   │   │   │   ├── status.c
│   │   │   │   ├── table.c
│   │   │   │   ├── tclsqlite.c
│   │   │   │   ├── test1.c
│   │   │   │   ├── test2.c
│   │   │   │   ├── test3.c
│   │   │   │   ├── test4.c
│   │   │   │   ├── test5.c
│   │   │   │   ├── test6.c
│   │   │   │   ├── test7.c
│   │   │   │   ├── test8.c
│   │   │   │   ├── test9.c
│   │   │   │   ├── test_async.c
│   │   │   │   ├── test_autoext.c
│   │   │   │   ├── test_backup.c
│   │   │   │   ├── test_bestindex.c
│   │   │   │   ├── test_blob.c
│   │   │   │   ├── test_btree.c
│   │   │   │   ├── test_config.c
│   │   │   │   ├── test_delete.c
│   │   │   │   ├── test_demovfs.c
│   │   │   │   ├── test_devsym.c
│   │   │   │   ├── test_fs.c
│   │   │   │   ├── test_func.c
│   │   │   │   ├── test_hexio.c
│   │   │   │   ├── test_init.c
│   │   │   │   ├── test_intarray.c
│   │   │   │   ├── test_intarray.h
│   │   │   │   ├── test_journal.c
│   │   │   │   ├── test_loadext.c
│   │   │   │   ├── test_malloc.c
│   │   │   │   ├── test_md5.c
│   │   │   │   ├── test_multiplex.c
│   │   │   │   ├── test_multiplex.h
│   │   │   │   ├── test_mutex.c
│   │   │   │   ├── test_onefile.c
│   │   │   │   ├── test_osinst.c
│   │   │   │   ├── test_pcache.c
│   │   │   │   ├── test_quota.c
│   │   │   │   ├── test_quota.h
│   │   │   │   ├── test_rtree.c
│   │   │   │   ├── test_schema.c
│   │   │   │   ├── test_server.c
│   │   │   │   ├── test_sqllog.c
│   │   │   │   ├── test_superlock.c
│   │   │   │   ├── test_syscall.c
│   │   │   │   ├── test_tclsh.c
│   │   │   │   ├── test_tclvar.c
│   │   │   │   ├── test_thread.c
│   │   │   │   ├── test_vfs.c
│   │   │   │   ├── test_vfstrace.c
│   │   │   │   ├── test_windirent.c
│   │   │   │   ├── test_windirent.h
│   │   │   │   ├── test_wsd.c
│   │   │   │   ├── threads.c
│   │   │   │   ├── tokenize.c
│   │   │   │   ├── treeview.c
│   │   │   │   ├── trigger.c
│   │   │   │   ├── update.c
│   │   │   │   ├── utf.c
│   │   │   │   ├── util.c
│   │   │   │   ├── vacuum.c
│   │   │   │   ├── vdbe.c
│   │   │   │   ├── vdbe.h
│   │   │   │   ├── vdbeInt.h
│   │   │   │   ├── vdbeapi.c
│   │   │   │   ├── vdbeaux.c
│   │   │   │   ├── vdbeblob.c
│   │   │   │   ├── vdbemem.c
│   │   │   │   ├── vdbesort.c
│   │   │   │   ├── vdbetrace.c
│   │   │   │   ├── vtab.c
│   │   │   │   ├── vxworks.h
│   │   │   │   ├── wal.c
│   │   │   │   ├── wal.h
│   │   │   │   ├── walker.c
│   │   │   │   ├── where.c
│   │   │   │   ├── whereInt.h
│   │   │   │   ├── wherecode.c
│   │   │   │   └── whereexpr.c
│   │   │   └── test/
│   │   │       ├── 8_3_names.test
│   │   │       ├── affinity2.test
│   │   │       ├── affinity3.test
│   │   │       ├── aggerror.test
│   │   │       ├── aggnested.test
│   │   │       ├── alias.test
│   │   │       ├── all.test
│   │   │       ├── alter.test
│   │   │       ├── alter2.test
│   │   │       ├── alter3.test
│   │   │       ├── alter4.test
│   │   │       ├── altermalloc.test
│   │   │       ├── amatch1.test
│   │   │       ├── analyze.test
│   │   │       ├── analyze3.test
│   │   │       ├── analyze4.test
│   │   │       ├── analyze5.test
│   │   │       ├── analyze6.test
│   │   │       ├── analyze7.test
│   │   │       ├── analyze8.test
│   │   │       ├── analyze9.test
│   │   │       ├── analyzeA.test
│   │   │       ├── analyzeB.test
│   │   │       ├── analyzeC.test
│   │   │       ├── analyzeD.test
│   │   │       ├── analyzeE.test
│   │   │       ├── analyzeF.test
│   │   │       ├── analyzer1.test
│   │   │       ├── async.test
│   │   │       ├── async2.test
│   │   │       ├── async3.test
│   │   │       ├── async4.test
│   │   │       ├── async5.test
│   │   │       ├── atof1.test
│   │   │       ├── atomic.test
│   │   │       ├── attach.test
│   │   │       ├── attach2.test
│   │   │       ├── attach3.test
│   │   │       ├── attach4.test
│   │   │       ├── attachmalloc.test
│   │   │       ├── auth.test
│   │   │       ├── auth2.test
│   │   │       ├── auth3.test
│   │   │       ├── autoanalyze1.test
│   │   │       ├── autoinc.test
│   │   │       ├── autoindex1.test
│   │   │       ├── autoindex2.test
│   │   │       ├── autoindex3.test
│   │   │       ├── autoindex4.test
│   │   │       ├── autoindex5.test
│   │   │       ├── autovacuum.test
│   │   │       ├── autovacuum_ioerr2.test
│   │   │       ├── avtrans.test
│   │   │       ├── backcompat.test
│   │   │       ├── backup.test
│   │   │       ├── backup2.test
│   │   │       ├── backup4.test
│   │   │       ├── backup5.test
│   │   │       ├── backup_ioerr.test
│   │   │       ├── backup_malloc.test
│   │   │       ├── badutf.test
│   │   │       ├── badutf2.test
│   │   │       ├── bc_common.tcl
│   │   │       ├── bestindex1.test
│   │   │       ├── bestindex2.test
│   │   │       ├── bestindex3.test
│   │   │       ├── bestindex4.test
│   │   │       ├── bestindex5.test
│   │   │       ├── between.test
│   │   │       ├── bigfile.test
│   │   │       ├── bigfile2.test
│   │   │       ├── bigmmap.test
│   │   │       ├── bigrow.test
│   │   │       ├── bigsort.test
│   │   │       ├── bind.test
│   │   │       ├── bindxfer.test
│   │   │       ├── bitvec.test
│   │   │       ├── blob.test
│   │   │       ├── boundary1.tcl
│   │   │       ├── boundary1.test
│   │   │       ├── boundary2.tcl
│   │   │       ├── boundary2.test
│   │   │       ├── boundary3.tcl
│   │   │       ├── boundary3.test
│   │   │       ├── boundary4.tcl
│   │   │       ├── boundary4.test
│   │   │       ├── btree01.test
│   │   │       ├── btree02.test
│   │   │       ├── btreefault.test
│   │   │       ├── busy.test
│   │   │       ├── cache.test
│   │   │       ├── cacheflush.test
│   │   │       ├── cachespill.test
│   │   │       ├── capi2.test
│   │   │       ├── capi3.test
│   │   │       ├── capi3b.test
│   │   │       ├── capi3c.test
│   │   │       ├── capi3d.test
│   │   │       ├── capi3e.test
│   │   │       ├── cast.test
│   │   │       ├── cffault.test
│   │   │       ├── check.test
│   │   │       ├── checkfreelist.test
│   │   │       ├── close.test
│   │   │       ├── closure01.test
│   │   │       ├── coalesce.test
│   │   │       ├── collate1.test
│   │   │       ├── collate2.test
│   │   │       ├── collate3.test
│   │   │       ├── collate4.test
│   │   │       ├── collate5.test
│   │   │       ├── collate6.test
│   │   │       ├── collate7.test
│   │   │       ├── collate8.test
│   │   │       ├── collate9.test
│   │   │       ├── collateA.test
│   │   │       ├── collateB.test
│   │   │       ├── colmeta.test
│   │   │       ├── colname.test
│   │   │       ├── conflict.test
│   │   │       ├── conflict2.test
│   │   │       ├── conflict3.test
│   │   │       ├── contrib01.test
│   │   │       ├── corrupt.test
│   │   │       ├── corrupt2.test
│   │   │       ├── corrupt3.test
│   │   │       ├── corrupt4.test
│   │   │       ├── corrupt5.test
│   │   │       ├── corrupt6.test
│   │   │       ├── corrupt7.test
│   │   │       ├── corrupt8.test
│   │   │       ├── corrupt9.test
│   │   │       ├── corruptA.test
│   │   │       ├── corruptB.test
│   │   │       ├── corruptC.test
│   │   │       ├── corruptD.test
│   │   │       ├── corruptE.test
│   │   │       ├── corruptF.test
│   │   │       ├── corruptG.test
│   │   │       ├── corruptH.test
│   │   │       ├── corruptI.test
│   │   │       ├── corruptJ.test
│   │   │       ├── corruptK.test
│   │   │       ├── cost.test
│   │   │       ├── count.test
│   │   │       ├── coveridxscan.test
│   │   │       ├── crash.test
│   │   │       ├── crash2.test
│   │   │       ├── crash3.test
│   │   │       ├── crash4.test
│   │   │       ├── crash5.test
│   │   │       ├── crash6.test
│   │   │       ├── crash7.test
│   │   │       ├── crash8.test
│   │   │       ├── crashM.test
│   │   │       ├── crashtest1.c
│   │   │       ├── createtab.test
│   │   │       ├── cse.test
│   │   │       ├── csv01.test
│   │   │       ├── ctime.test
│   │   │       ├── cursorhint.test
│   │   │       ├── cursorhint2.test
│   │   │       ├── date.test
│   │   │       ├── date2.test
│   │   │       ├── dbfuzz.c
│   │   │       ├── dbpage.test
│   │   │       ├── dbstatus.test
│   │   │       ├── dbstatus2.test
│   │   │       ├── default.test
│   │   │       ├── delete.test
│   │   │       ├── delete2.test
│   │   │       ├── delete3.test
│   │   │       ├── delete4.test
│   │   │       ├── delete_db.test
│   │   │       ├── descidx1.test
│   │   │       ├── descidx2.test
│   │   │       ├── descidx3.test
│   │   │       ├── diskfull.test
│   │   │       ├── distinct.test
│   │   │       ├── distinct2.test
│   │   │       ├── distinctagg.test
│   │   │       ├── e_blobbytes.test
│   │   │       ├── e_blobclose.test
│   │   │       ├── e_blobopen.test
│   │   │       ├── e_blobwrite.test
│   │   │       ├── e_changes.test
│   │   │       ├── e_createtable.test
│   │   │       ├── e_delete.test
│   │   │       ├── e_droptrigger.test
│   │   │       ├── e_dropview.test
│   │   │       ├── e_expr.test
│   │   │       ├── e_fkey.test
│   │   │       ├── e_fts3.test
│   │   │       ├── e_insert.test
│   │   │       ├── e_reindex.test
│   │   │       ├── e_resolve.test
│   │   │       ├── e_select.test
│   │   │       ├── e_select2.test
│   │   │       ├── e_totalchanges.test
│   │   │       ├── e_update.test
│   │   │       ├── e_uri.test
│   │   │       ├── e_vacuum.test
│   │   │       ├── e_wal.test
│   │   │       ├── e_walauto.test
│   │   │       ├── e_walckpt.test
│   │   │       ├── e_walhook.test
│   │   │       ├── emptytable.test
│   │   │       ├── enc.test
│   │   │       ├── enc2.test
│   │   │       ├── enc3.test
│   │   │       ├── enc4.test
│   │   │       ├── eqp.test
│   │   │       ├── errmsg.test
│   │   │       ├── eval.test
│   │   │       ├── exclusive.test
│   │   │       ├── exclusive2.test
│   │   │       ├── exec.test
│   │   │       ├── exists.test
│   │   │       ├── expr.test
│   │   │       ├── extension01.test
│   │   │       ├── extraquick.test
│   │   │       ├── fallocate.test
│   │   │       ├── filectrl.test
│   │   │       ├── filefmt.test
│   │   │       ├── fkey1.test
│   │   │       ├── fkey2.test
│   │   │       ├── fkey3.test
│   │   │       ├── fkey4.test
│   │   │       ├── fkey5.test
│   │   │       ├── fkey6.test
│   │   │       ├── fkey7.test
│   │   │       ├── fkey8.test
│   │   │       ├── fkey_malloc.test
│   │   │       ├── fordelete.test
│   │   │       ├── format4.test
│   │   │       ├── fts-9fd058691.test
│   │   │       ├── fts1a.test
│   │   │       ├── fts1b.test
│   │   │       ├── fts1c.test
│   │   │       ├── fts1d.test
│   │   │       ├── fts1e.test
│   │   │       ├── fts1f.test
│   │   │       ├── fts1i.test
│   │   │       ├── fts1j.test
│   │   │       ├── fts1k.test
│   │   │       ├── fts1l.test
│   │   │       ├── fts1m.test
│   │   │       ├── fts1n.test
│   │   │       ├── fts1o.test
│   │   │       ├── fts1porter.test
│   │   │       ├── fts2.test
│   │   │       ├── fts2a.test
│   │   │       ├── fts2b.test
│   │   │       ├── fts2c.test
│   │   │       ├── fts2d.test
│   │   │       ├── fts2e.test
│   │   │       ├── fts2f.test
│   │   │       ├── fts2g.test
│   │   │       ├── fts2h.test
│   │   │       ├── fts2i.test
│   │   │       ├── fts2j.test
│   │   │       ├── fts2k.test
│   │   │       ├── fts2l.test
│   │   │       ├── fts2m.test
│   │   │       ├── fts2n.test
│   │   │       ├── fts2o.test
│   │   │       ├── fts2p.test
│   │   │       ├── fts2q.test
│   │   │       ├── fts2r.test
│   │   │       ├── fts2token.test
│   │   │       ├── fts3.test
│   │   │       ├── fts3_common.tcl
│   │   │       ├── fts3aa.test
│   │   │       ├── fts3ab.test
│   │   │       ├── fts3ac.test
│   │   │       ├── fts3ad.test
│   │   │       ├── fts3ae.test
│   │   │       ├── fts3af.test
│   │   │       ├── fts3ag.test
│   │   │       ├── fts3ah.test
│   │   │       ├── fts3ai.test
│   │   │       ├── fts3aj.test
│   │   │       ├── fts3ak.test
│   │   │       ├── fts3al.test
│   │   │       ├── fts3am.test
│   │   │       ├── fts3an.test
│   │   │       ├── fts3ao.test
│   │   │       ├── fts3atoken.test
│   │   │       ├── fts3auto.test
│   │   │       ├── fts3aux1.test
│   │   │       ├── fts3aux2.test
│   │   │       ├── fts3b.test
│   │   │       ├── fts3c.test
│   │   │       ├── fts3comp1.test
│   │   │       ├── fts3conf.test
│   │   │       ├── fts3corrupt.test
│   │   │       ├── fts3corrupt2.test
│   │   │       ├── fts3corrupt3.test
│   │   │       ├── fts3cov.test
│   │   │       ├── fts3d.test
│   │   │       ├── fts3defer.test
│   │   │       ├── fts3defer2.test
│   │   │       ├── fts3defer3.test
│   │   │       ├── fts3drop.test
│   │   │       ├── fts3e.test
│   │   │       ├── fts3expr.test
│   │   │       ├── fts3expr2.test
│   │   │       ├── fts3expr3.test
│   │   │       ├── fts3expr4.test
│   │   │       ├── fts3expr5.test
│   │   │       ├── fts3fault.test
│   │   │       ├── fts3fault2.test
│   │   │       ├── fts3first.test
│   │   │       ├── fts3join.test
│   │   │       ├── fts3malloc.test
│   │   │       ├── fts3matchinfo.test
│   │   │       ├── fts3misc.test
│   │   │       ├── fts3near.test
│   │   │       ├── fts3offsets.test
│   │   │       ├── fts3prefix.test
│   │   │       ├── fts3prefix2.test
│   │   │       ├── fts3query.test
│   │   │       ├── fts3rank.test
│   │   │       ├── fts3rnd.test
│   │   │       ├── fts3shared.test
│   │   │       ├── fts3snippet.test
│   │   │       ├── fts3sort.test
│   │   │       ├── fts3tok1.test
│   │   │       ├── fts3tok_err.test
│   │   │       ├── fts3varint.test
│   │   │       ├── fts4aa.test
│   │   │       ├── fts4check.test
│   │   │       ├── fts4content.test
│   │   │       ├── fts4docid.test
│   │   │       ├── fts4growth.test
│   │   │       ├── fts4growth2.test
│   │   │       ├── fts4incr.test
│   │   │       ├── fts4langid.test
│   │   │       ├── fts4lastrowid.test
│   │   │       ├── fts4merge.test
│   │   │       ├── fts4merge2.test
│   │   │       ├── fts4merge3.test
│   │   │       ├── fts4merge4.test
│   │   │       ├── fts4noti.test
│   │   │       ├── fts4onepass.test
│   │   │       ├── fts4opt.test
│   │   │       ├── fts4unicode.test
│   │   │       ├── full.test
│   │   │       ├── func.test
│   │   │       ├── func2.test
│   │   │       ├── func3.test
│   │   │       ├── func4.test
│   │   │       ├── func5.test
│   │   │       ├── fuzz-oss1.test
│   │   │       ├── fuzz.test
│   │   │       ├── fuzz2.test
│   │   │       ├── fuzz3.test
│   │   │       ├── fuzz_common.tcl
│   │   │       ├── fuzz_malloc.test
│   │   │       ├── fuzzcheck.c
│   │   │       ├── fuzzer1.test
│   │   │       ├── fuzzer2.test
│   │   │       ├── fuzzerfault.test
│   │   │       ├── gcfault.test
│   │   │       ├── genesis.tcl
│   │   │       ├── having.test
│   │   │       ├── hexlit.test
│   │   │       ├── hidden.test
│   │   │       ├── hook.test
│   │   │       ├── hook2.test
│   │   │       ├── icu.test
│   │   │       ├── ieee754.test
│   │   │       ├── imposter1.test
│   │   │       ├── in.test
│   │   │       ├── in2.test
│   │   │       ├── in3.test
│   │   │       ├── in4.test
│   │   │       ├── in5.test
│   │   │       ├── incrblob.test
│   │   │       ├── incrblob2.test
│   │   │       ├── incrblob3.test
│   │   │       ├── incrblob4.test
│   │   │       ├── incrblob_err.test
│   │   │       ├── incrblobfault.test
│   │   │       ├── incrcorrupt.test
│   │   │       ├── incrvacuum.test
│   │   │       ├── incrvacuum2.test
│   │   │       ├── incrvacuum3.test
│   │   │       ├── incrvacuum_ioerr.test
│   │   │       ├── index.test
│   │   │       ├── index2.test
│   │   │       ├── index3.test
│   │   │       ├── index4.test
│   │   │       ├── index5.test
│   │   │       ├── index6.test
│   │   │       ├── index7.test
│   │   │       ├── index8.test
│   │   │       ├── index9.test
│   │   │       ├── indexedby.test
│   │   │       ├── indexexpr1.test
│   │   │       ├── indexexpr2.test
│   │   │       ├── indexfault.test
│   │   │       ├── init.test
│   │   │       ├── insert.test
│   │   │       ├── insert2.test
│   │   │       ├── insert3.test
│   │   │       ├── insert4.test
│   │   │       ├── insert5.test
│   │   │       ├── instr.test
│   │   │       ├── instrfault.test
│   │   │       ├── intarray.test
│   │   │       ├── interrupt.test
│   │   │       ├── interrupt2.test
│   │   │       ├── intpkey.test
│   │   │       ├── io.test
│   │   │       ├── ioerr.test
│   │   │       ├── ioerr2.test
│   │   │       ├── ioerr3.test
│   │   │       ├── ioerr4.test
│   │   │       ├── ioerr5.test
│   │   │       ├── ioerr6.test
│   │   │       ├── join.test
│   │   │       ├── join2.test
│   │   │       ├── join3.test
│   │   │       ├── join4.test
│   │   │       ├── join5.test
│   │   │       ├── join6.test
│   │   │       ├── journal1.test
│   │   │       ├── journal2.test
│   │   │       ├── journal3.test
│   │   │       ├── jrnlmode.test
│   │   │       ├── jrnlmode2.test
│   │   │       ├── jrnlmode3.test
│   │   │       ├── json101.test
│   │   │       ├── json102.test
│   │   │       ├── json103.test
│   │   │       ├── json104.test
│   │   │       ├── keyword1.test
│   │   │       ├── kvtest.c
│   │   │       ├── lastinsert.test
│   │   │       ├── laststmtchanges.test
│   │   │       ├── like.test
│   │   │       ├── like2.test
│   │   │       ├── like3.test
│   │   │       ├── limit.test
│   │   │       ├── limit2.test
│   │   │       ├── loadext.test
│   │   │       ├── loadext2.test
│   │   │       ├── lock.test
│   │   │       ├── lock2.test
│   │   │       ├── lock3.test
│   │   │       ├── lock4.test
│   │   │       ├── lock5.test
│   │   │       ├── lock6.test
│   │   │       ├── lock7.test
│   │   │       ├── lock_common.tcl
│   │   │       ├── lookaside.test
│   │   │       ├── main.test
│   │   │       ├── make-where7.tcl
│   │   │       ├── malloc.test
│   │   │       ├── malloc3.test
│   │   │       ├── malloc4.test
│   │   │       ├── malloc5.test
│   │   │       ├── malloc6.test
│   │   │       ├── malloc7.test
│   │   │       ├── malloc8.test
│   │   │       ├── malloc9.test
│   │   │       ├── mallocA.test
│   │   │       ├── mallocAll.test
│   │   │       ├── mallocB.test
│   │   │       ├── mallocC.test
│   │   │       ├── mallocD.test
│   │   │       ├── mallocE.test
│   │   │       ├── mallocF.test
│   │   │       ├── mallocG.test
│   │   │       ├── mallocH.test
│   │   │       ├── mallocI.test
│   │   │       ├── mallocJ.test
│   │   │       ├── mallocK.test
│   │   │       ├── mallocL.test
│   │   │       ├── mallocM.test
│   │   │       ├── malloc_common.tcl
│   │   │       ├── manydb.test
│   │   │       ├── mem5.test
│   │   │       ├── memdb.test
│   │   │       ├── memleak.test
│   │   │       ├── memsubsys1.test
│   │   │       ├── memsubsys2.test
│   │   │       ├── minmax.test
│   │   │       ├── minmax2.test
│   │   │       ├── minmax3.test
│   │   │       ├── minmax4.test
│   │   │       ├── misc1.test
│   │   │       ├── misc2.test
│   │   │       ├── misc3.test
│   │   │       ├── misc4.test
│   │   │       ├── misc5.test
│   │   │       ├── misc6.test
│   │   │       ├── misc7.test
│   │   │       ├── misc8.test
│   │   │       ├── misuse.test
│   │   │       ├── mjournal.test
│   │   │       ├── mmap1.test
│   │   │       ├── mmap2.test
│   │   │       ├── mmap3.test
│   │   │       ├── mmap4.test
│   │   │       ├── mmapfault.test
│   │   │       ├── mmapwarm.test
│   │   │       ├── multiplex.test
│   │   │       ├── multiplex2.test
│   │   │       ├── multiplex3.test
│   │   │       ├── multiplex4.test
│   │   │       ├── mutex1.test
│   │   │       ├── mutex2.test
│   │   │       ├── nan.test
│   │   │       ├── nockpt.test
│   │   │       ├── nolock.test
│   │   │       ├── notify1.test
│   │   │       ├── notify2.test
│   │   │       ├── notify3.test
│   │   │       ├── notnull.test
│   │   │       ├── null.test
│   │   │       ├── numcast.test
│   │   │       ├── numindex1.test
│   │   │       ├── offset1.test
│   │   │       ├── openv2.test
│   │   │       ├── orderby1.test
│   │   │       ├── orderby2.test
│   │   │       ├── orderby3.test
│   │   │       ├── orderby4.test
│   │   │       ├── orderby5.test
│   │   │       ├── orderby6.test
│   │   │       ├── orderby7.test
│   │   │       ├── orderby8.test
│   │   │       ├── orderby9.test
│   │   │       ├── oserror.test
│   │   │       ├── ossfuzz.c
│   │   │       ├── ossshell.c
│   │   │       ├── ovfl.test
│   │   │       ├── pager1.test
│   │   │       ├── pager2.test
│   │   │       ├── pager3.test
│   │   │       ├── pager4.test
│   │   │       ├── pagerfault.test
│   │   │       ├── pagerfault2.test
│   │   │       ├── pagerfault3.test
│   │   │       ├── pageropt.test
│   │   │       ├── pagesize.test
│   │   │       ├── parser1.test
│   │   │       ├── pcache.test
│   │   │       ├── pcache2.test
│   │   │       ├── percentile.test
│   │   │       ├── permutations.test
│   │   │       ├── pragma.test
│   │   │       ├── pragma2.test
│   │   │       ├── pragma3.test
│   │   │       ├── pragma4.test
│   │   │       ├── pragma5.test
│   │   │       ├── pragmafault.test
│   │   │       ├── printf.test
│   │   │       ├── printf2.test
│   │   │       ├── progress.test
│   │   │       ├── ptrchng.test
│   │   │       ├── pushdown.test
│   │   │       ├── queryonly.test
│   │   │       ├── quick.test
│   │   │       ├── quota-glob.test
│   │   │       ├── quota.test
│   │   │       ├── quota2.test
│   │   │       ├── quote.test
│   │   │       ├── randexpr1.tcl
│   │   │       ├── randexpr1.test
│   │   │       ├── rbu.test
│   │   │       ├── rdonly.test
│   │   │       ├── regexp1.test
│   │   │       ├── regexp2.test
│   │   │       ├── reindex.test
│   │   │       ├── releasetest.tcl
│   │   │       ├── resolver01.test
│   │   │       ├── rollback.test
│   │   │       ├── rollback2.test
│   │   │       ├── rollbackfault.test
│   │   │       ├── rowallock.test
│   │   │       ├── rowhash.test
│   │   │       ├── rowid.test
│   │   │       ├── rowvalue.test
│   │   │       ├── rowvalue2.test
│   │   │       ├── rowvalue3.test
│   │   │       ├── rowvalue4.test
│   │   │       ├── rowvalue5.test
│   │   │       ├── rowvalue6.test
│   │   │       ├── rowvalue7.test
│   │   │       ├── rowvalue8.test
│   │   │       ├── rowvalue9.test
│   │   │       ├── rowvaluefault.test
│   │   │       ├── rtree.test
│   │   │       ├── run-wordcount.sh
│   │   │       ├── savepoint.test
│   │   │       ├── savepoint2.test
│   │   │       ├── savepoint4.test
│   │   │       ├── savepoint5.test
│   │   │       ├── savepoint6.test
│   │   │       ├── savepoint7.test
│   │   │       ├── savepointfault.test
│   │   │       ├── scanstatus.test
│   │   │       ├── schema.test
│   │   │       ├── schema2.test
│   │   │       ├── schema3.test
│   │   │       ├── schema4.test
│   │   │       ├── schema5.test
│   │   │       ├── schema6.test
│   │   │       ├── securedel.test
│   │   │       ├── securedel2.test
│   │   │       ├── select1.test
│   │   │       ├── select2.test
│   │   │       ├── select3.test
│   │   │       ├── select4.test
│   │   │       ├── select5.test
│   │   │       ├── select6.test
│   │   │       ├── select7.test
│   │   │       ├── select8.test
│   │   │       ├── select9.test
│   │   │       ├── selectA.test
│   │   │       ├── selectB.test
│   │   │       ├── selectC.test
│   │   │       ├── selectD.test
│   │   │       ├── selectE.test
│   │   │       ├── selectF.test
│   │   │       ├── selectG.test
│   │   │       ├── server1.test
│   │   │       ├── session.test
│   │   │       ├── shared.test
│   │   │       ├── shared2.test
│   │   │       ├── shared3.test
│   │   │       ├── shared4.test
│   │   │       ├── shared6.test
│   │   │       ├── shared7.test
│   │   │       ├── shared8.test
│   │   │       ├── shared9.test
│   │   │       ├── sharedA.test
│   │   │       ├── sharedB.test
│   │   │       ├── shared_err.test
│   │   │       ├── sharedlock.test
│   │   │       ├── shell1.test
│   │   │       ├── shell2.test
│   │   │       ├── shell3.test
│   │   │       ├── shell4.test
│   │   │       ├── shell5.test
│   │   │       ├── shell6.test
│   │   │       ├── shell7.test
│   │   │       ├── shortread1.test
│   │   │       ├── show_speedtest1_rtree.tcl
│   │   │       ├── shri
Download .txt
Showing preview only (2,419K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (30861 symbols across 4773 files)

FILE: all_test.go
  function printStack (line 35) | func printStack() { debug.PrintStack() }
  function caller (line 37) | func caller(s string, va ...interface{}) {
  function dbg (line 51) | func dbg(s string, va ...interface{}) {
  function TODO (line 62) | func TODO(...interface{}) string {
  function use (line 67) | func use(...interface{}) int { return 42 }
  function newTestReport (line 102) | func newTestReport() *xc.Report {
  function init (line 111) | func init() {
  function newTestModel (line 121) | func newTestModel() *Model {
  function printError (line 149) | func printError(w io.Writer, pref string, err error) {
  function errString (line 164) | func errString(err error) string {
  function testUCNTable (line 170) | func testUCNTable(t *testing.T, tab []rune, fOk, fOther func(rune) bool,...
  function TestUCNDigitsTable (line 195) | func TestUCNDigitsTable(t *testing.T) {
  function TestUCNNonDigitsTable (line 204) | func TestUCNNonDigitsTable(t *testing.T) {
  function charStr (line 264) | func charStr(c rune) string {
  function charsStr (line 268) | func charsStr(chars []lex.Char, delta token.Pos) (a []string) {
  type x (line 275) | type x
  type lexerTests (line 280) | type lexerTests
  function testLexer (line 285) | func testLexer(t *testing.T, newLexer func(i int, src string, report *xc...
  function TestLexer (line 337) | func TestLexer(t *testing.T) {
  function TestLexer2 (line 412) | func TestLexer2(t *testing.T) {
  function testPreprocessor (line 489) | func testPreprocessor(t *testing.T, fname string) string {
  function TestStdExample6_10_3_3_4 (line 511) | func TestStdExample6_10_3_3_4(t *testing.T) {
  function TestStdExample6_10_3_5_3 (line 517) | func TestStdExample6_10_3_5_3(t *testing.T) {
  function TestStdExample6_10_3_5_4 (line 528) | func TestStdExample6_10_3_5_4(t *testing.T) {
  function TestStdExample6_10_3_5_5 (line 540) | func TestStdExample6_10_3_5_5(t *testing.T) {
  function TestStdExample6_10_3_5_6 (line 548) | func TestStdExample6_10_3_5_6(t *testing.T) {
  function TestStdExample6_10_3_5_7 (line 555) | func TestStdExample6_10_3_5_7(t *testing.T) {
  type cppCmpError (line 565) | type cppCmpError struct
  function testDev1 (line 569) | func testDev1(ppPredefine, cppPredefine, parsePredefine string, cppOpts ...
  function testDev (line 751) | func testDev(t *testing.T, ppPredefine, cppPredefine, parsePredefine str...
  function dirExists (line 786) | func dirExists(t *testing.T, dir string) bool {
  function TestPreprocessor (line 804) | func TestPreprocessor(t *testing.T) {
  function TestDevSDL (line 810) | func TestDevSDL(t *testing.T) {
  function TestDevSqlite (line 853) | func TestDevSqlite(t *testing.T) {
  function TestDevVim (line 901) | func TestDevVim(t *testing.T) {
  function TestDevBash (line 1018) | func TestDevBash(t *testing.T) {
  function TestDevMake (line 1439) | func TestDevMake(t *testing.T) {
  function TestDevBc (line 1530) | func TestDevBc(t *testing.T) {
  function TestDevEmacs (line 1655) | func TestDevEmacs(t *testing.T) {
  function TestDevM4 (line 1981) | func TestDevM4(t *testing.T) {
  function TestDevStbVorbis (line 2116) | func TestDevStbVorbis(t *testing.T) {
  function TestDevGMP (line 2161) | func TestDevGMP(t *testing.T) {
  function TestPPParse1 (line 2202) | func TestPPParse1(t *testing.T) {
  function TestFinalInjection (line 2220) | func TestFinalInjection(t *testing.T) {
  function TestRedecl (line 2235) | func TestRedecl(t *testing.T) {
  function TestParse1 (line 2239) | func TestParse1(t *testing.T) {
  function testParse (line 2248) | func testParse(t *testing.T, paths []string, ignoreError string, opts .....
  function ddsStr (line 2297) | func ddsStr(dds []*DirectDeclarator) string {
  method str (line 2328) | func (n *ctype) str() string {
  method str0 (line 2332) | func (n *ctype) str0() string {
  function TestIssue3 (line 2336) | func TestIssue3(t *testing.T) {
  function TestIssue8 (line 2342) | func TestIssue8(t *testing.T) {
  function TestIssue4 (line 2348) | func TestIssue4(t *testing.T) {
  function unpackType (line 2372) | func unpackType(typ Type) Type {
  function TestIssue9 (line 2383) | func TestIssue9(t *testing.T) {
  function TestEnumConstToks (line 2451) | func TestEnumConstToks(t *testing.T) {
  function TestPaste (line 2511) | func TestPaste(t *testing.T) {
  function TestPaste2 (line 2515) | func TestPaste2(t *testing.T) {
  function TestFunc (line 2519) | func TestFunc(t *testing.T) {
  function TestEmptyMacroArg (line 2523) | func TestEmptyMacroArg(t *testing.T) {
  function TestFuncFuncParams (line 2527) | func TestFuncFuncParams(t *testing.T) {
  function TestAnonStructField (line 2531) | func TestAnonStructField(t *testing.T) {
  function tokStr (line 2540) | func tokStr(toks []xc.Token) string {
  function tokStr2 (line 2554) | func tokStr2(toks [][]xc.Token) string {
  function TestIssue50 (line 2562) | func TestIssue50(t *testing.T) {
  function TestIssue57 (line 2569) | func TestIssue57(t *testing.T) {
  function TestIssue62 (line 2608) | func TestIssue62(t *testing.T) {
  function TestIssue64 (line 2632) | func TestIssue64(t *testing.T) {
  function TestIssue65 (line 2641) | func TestIssue65(t *testing.T) {
  function TestIssue66 (line 2686) | func TestIssue66(t *testing.T) {
  function TestIssue67 (line 2708) | func TestIssue67(t *testing.T) {
  function TestIssue68 (line 2732) | func TestIssue68(t *testing.T) {
  function TestIssue69 (line 2743) | func TestIssue69(t *testing.T) {
  function TestIssue72 (line 2750) | func TestIssue72(t *testing.T) {
  function TestIssue74EnableWideBitFieldTypes (line 2760) | func TestIssue74EnableWideBitFieldTypes(t *testing.T) {
  function TestIssue77 (line 2770) | func TestIssue77(t *testing.T) {
  function TestIssue78 (line 2779) | func TestIssue78(t *testing.T) {
  function TestIssue80 (line 2813) | func TestIssue80(t *testing.T) {
  function TestIssue81 (line 2889) | func TestIssue81(t *testing.T) {
  function TestIssue82 (line 2915) | func TestIssue82(t *testing.T) {
  function TestIssue84 (line 2924) | func TestIssue84(t *testing.T) {
  function testDir (line 2935) | func testDir(t *testing.T, dir string) {
  function TestTCCTests (line 3082) | func TestTCCTests(t *testing.T) {
  function TestGCCTests (line 3091) | func TestGCCTests(t *testing.T) {
  function TestIssue85 (line 3103) | func TestIssue85(t *testing.T) {
  function TestIssue86 (line 3141) | func TestIssue86(t *testing.T) {
  function TestArray (line 3156) | func TestArray(t *testing.T) {
  function TestIssue87 (line 3179) | func TestIssue87(t *testing.T) {
  function TestIssue88 (line 3194) | func TestIssue88(t *testing.T) {
  function TestIssue89 (line 3212) | func TestIssue89(t *testing.T) {
  function TestIssue90 (line 3234) | func TestIssue90(t *testing.T) {
  function TestIssue92 (line 3258) | func TestIssue92(t *testing.T) {
  function TestIssue93 (line 3273) | func TestIssue93(t *testing.T) {

FILE: ast.go
  type AbstractDeclarator (line 20) | type AbstractDeclarator struct
    method fragment (line 28) | func (n *AbstractDeclarator) fragment() interface{} { return n }
    method String (line 31) | func (n *AbstractDeclarator) String() string {
    method Pos (line 36) | func (n *AbstractDeclarator) Pos() token.Pos {
  type AbstractDeclaratorOpt (line 60) | type AbstractDeclaratorOpt struct
    method fragment (line 64) | func (n *AbstractDeclaratorOpt) fragment() interface{} { return n }
    method String (line 67) | func (n *AbstractDeclaratorOpt) String() string {
    method Pos (line 72) | func (n *AbstractDeclaratorOpt) Pos() token.Pos {
  type ArgumentExpressionList (line 85) | type ArgumentExpressionList struct
    method reverse (line 92) | func (n *ArgumentExpressionList) reverse() *ArgumentExpressionList {
    method fragment (line 109) | func (n *ArgumentExpressionList) fragment() interface{} { return n.rev...
    method String (line 112) | func (n *ArgumentExpressionList) String() string {
    method Pos (line 117) | func (n *ArgumentExpressionList) Pos() token.Pos {
  type ArgumentExpressionListOpt (line 137) | type ArgumentExpressionListOpt struct
    method fragment (line 141) | func (n *ArgumentExpressionListOpt) fragment() interface{} { return n }
    method String (line 144) | func (n *ArgumentExpressionListOpt) String() string {
    method Pos (line 149) | func (n *ArgumentExpressionListOpt) Pos() token.Pos {
  type AssemblerInstructions (line 162) | type AssemblerInstructions struct
    method reverse (line 168) | func (n *AssemblerInstructions) reverse() *AssemblerInstructions {
    method fragment (line 185) | func (n *AssemblerInstructions) fragment() interface{} { return n.reve...
    method String (line 188) | func (n *AssemblerInstructions) String() string {
    method Pos (line 193) | func (n *AssemblerInstructions) Pos() token.Pos {
  type AssemblerOperand (line 212) | type AssemblerOperand struct
    method fragment (line 220) | func (n *AssemblerOperand) fragment() interface{} { return n }
    method String (line 223) | func (n *AssemblerOperand) String() string {
    method Pos (line 228) | func (n *AssemblerOperand) Pos() token.Pos {
  type AssemblerOperands (line 245) | type AssemblerOperands struct
    method reverse (line 252) | func (n *AssemblerOperands) reverse() *AssemblerOperands {
    method fragment (line 269) | func (n *AssemblerOperands) fragment() interface{} { return n.reverse() }
    method String (line 272) | func (n *AssemblerOperands) String() string {
    method Pos (line 277) | func (n *AssemblerOperands) Pos() token.Pos {
  type AssemblerStatement (line 302) | type AssemblerStatement struct
    method fragment (line 321) | func (n *AssemblerStatement) fragment() interface{} { return n }
    method String (line 324) | func (n *AssemblerStatement) String() string {
    method Pos (line 329) | func (n *AssemblerStatement) Pos() token.Pos {
  type AssemblerSymbolicNameOpt (line 349) | type AssemblerSymbolicNameOpt struct
    method fragment (line 355) | func (n *AssemblerSymbolicNameOpt) fragment() interface{} { return n }
    method String (line 358) | func (n *AssemblerSymbolicNameOpt) String() string {
    method Pos (line 363) | func (n *AssemblerSymbolicNameOpt) Pos() token.Pos {
  type BasicAssemblerStatement (line 375) | type BasicAssemblerStatement struct
    method fragment (line 383) | func (n *BasicAssemblerStatement) fragment() interface{} { return n }
    method String (line 386) | func (n *BasicAssemblerStatement) String() string {
    method Pos (line 391) | func (n *BasicAssemblerStatement) Pos() token.Pos {
  type BlockItem (line 404) | type BlockItem struct
    method fragment (line 410) | func (n *BlockItem) fragment() interface{} { return n }
    method String (line 413) | func (n *BlockItem) String() string {
    method Pos (line 418) | func (n *BlockItem) Pos() token.Pos {
  type BlockItemList (line 438) | type BlockItemList struct
    method reverse (line 444) | func (n *BlockItemList) reverse() *BlockItemList {
    method fragment (line 461) | func (n *BlockItemList) fragment() interface{} { return n.reverse() }
    method String (line 464) | func (n *BlockItemList) String() string {
    method Pos (line 469) | func (n *BlockItemList) Pos() token.Pos {
  type BlockItemListOpt (line 489) | type BlockItemListOpt struct
    method fragment (line 493) | func (n *BlockItemListOpt) fragment() interface{} { return n }
    method String (line 496) | func (n *BlockItemListOpt) String() string {
    method Pos (line 501) | func (n *BlockItemListOpt) Pos() token.Pos {
  type Clobbers (line 514) | type Clobbers struct
    method reverse (line 521) | func (n *Clobbers) reverse() *Clobbers {
    method fragment (line 538) | func (n *Clobbers) fragment() interface{} { return n.reverse() }
    method String (line 541) | func (n *Clobbers) String() string {
    method Pos (line 546) | func (n *Clobbers) Pos() token.Pos {
  type CommaOpt (line 566) | type CommaOpt struct
    method fragment (line 570) | func (n *CommaOpt) fragment() interface{} { return n }
    method String (line 573) | func (n *CommaOpt) String() string {
    method Pos (line 578) | func (n *CommaOpt) Pos() token.Pos {
  type CompoundStatement (line 590) | type CompoundStatement struct
    method fragment (line 597) | func (n *CompoundStatement) fragment() interface{} { return n }
    method String (line 600) | func (n *CompoundStatement) String() string {
    method Pos (line 605) | func (n *CompoundStatement) Pos() token.Pos {
  type ConstantExpression (line 617) | type ConstantExpression struct
    method fragment (line 624) | func (n *ConstantExpression) fragment() interface{} { return n }
    method String (line 627) | func (n *ConstantExpression) String() string {
    method Pos (line 632) | func (n *ConstantExpression) Pos() token.Pos {
  type ControlLine (line 657) | type ControlLine struct
    method fragment (line 671) | func (n *ControlLine) fragment() interface{} { return n }
    method String (line 674) | func (n *ControlLine) String() string {
    method Pos (line 679) | func (n *ControlLine) Pos() token.Pos {
  type Declaration (line 692) | type Declaration struct
    method fragment (line 701) | func (n *Declaration) fragment() interface{} { return n }
    method String (line 704) | func (n *Declaration) String() string {
    method Pos (line 709) | func (n *Declaration) Pos() token.Pos {
  type DeclarationList (line 729) | type DeclarationList struct
    method reverse (line 735) | func (n *DeclarationList) reverse() *DeclarationList {
    method fragment (line 752) | func (n *DeclarationList) fragment() interface{} { return n.reverse() }
    method String (line 755) | func (n *DeclarationList) String() string {
    method Pos (line 760) | func (n *DeclarationList) Pos() token.Pos {
  type DeclarationListOpt (line 780) | type DeclarationListOpt struct
    method fragment (line 785) | func (n *DeclarationListOpt) fragment() interface{} { return n }
    method String (line 788) | func (n *DeclarationListOpt) String() string {
    method Pos (line 793) | func (n *DeclarationListOpt) Pos() token.Pos {
  type DeclarationSpecifiers (line 808) | type DeclarationSpecifiers struct
    method fragment (line 819) | func (n *DeclarationSpecifiers) fragment() interface{} { return n }
    method String (line 822) | func (n *DeclarationSpecifiers) String() string {
    method Pos (line 827) | func (n *DeclarationSpecifiers) Pos() token.Pos {
  type DeclarationSpecifiersOpt (line 851) | type DeclarationSpecifiersOpt struct
    method fragment (line 857) | func (n *DeclarationSpecifiersOpt) fragment() interface{} { return n }
    method String (line 860) | func (n *DeclarationSpecifiersOpt) String() string {
    method Pos (line 865) | func (n *DeclarationSpecifiersOpt) Pos() token.Pos {
  type Declarator (line 877) | type Declarator struct
    method fragment (line 891) | func (n *Declarator) fragment() interface{} { return n }
    method String (line 894) | func (n *Declarator) String() string {
    method Pos (line 899) | func (n *Declarator) Pos() token.Pos {
  type DeclaratorOpt (line 916) | type DeclaratorOpt struct
    method fragment (line 920) | func (n *DeclaratorOpt) fragment() interface{} { return n }
    method String (line 923) | func (n *DeclaratorOpt) String() string {
    method Pos (line 928) | func (n *DeclaratorOpt) Pos() token.Pos {
  type Designation (line 940) | type Designation struct
    method fragment (line 945) | func (n *Designation) fragment() interface{} { return n }
    method String (line 948) | func (n *Designation) String() string {
    method Pos (line 953) | func (n *Designation) Pos() token.Pos {
  type DesignationOpt (line 966) | type DesignationOpt struct
    method fragment (line 970) | func (n *DesignationOpt) fragment() interface{} { return n }
    method String (line 973) | func (n *DesignationOpt) String() string {
    method Pos (line 978) | func (n *DesignationOpt) Pos() token.Pos {
  type Designator (line 991) | type Designator struct
    method fragment (line 998) | func (n *Designator) fragment() interface{} { return n }
    method String (line 1001) | func (n *Designator) String() string {
    method Pos (line 1006) | func (n *Designator) Pos() token.Pos {
  type DesignatorList (line 1019) | type DesignatorList struct
    method reverse (line 1025) | func (n *DesignatorList) reverse() *DesignatorList {
    method fragment (line 1042) | func (n *DesignatorList) fragment() interface{} { return n.reverse() }
    method String (line 1045) | func (n *DesignatorList) String() string {
    method Pos (line 1050) | func (n *DesignatorList) Pos() token.Pos {
  type DirectAbstractDeclarator (line 1076) | type DirectAbstractDeclarator struct
    method fragment (line 1093) | func (n *DirectAbstractDeclarator) fragment() interface{} { return n }
    method String (line 1096) | func (n *DirectAbstractDeclarator) String() string {
    method Pos (line 1101) | func (n *DirectAbstractDeclarator) Pos() token.Pos {
  type DirectAbstractDeclaratorOpt (line 1127) | type DirectAbstractDeclaratorOpt struct
    method fragment (line 1131) | func (n *DirectAbstractDeclaratorOpt) fragment() interface{} { return n }
    method String (line 1134) | func (n *DirectAbstractDeclaratorOpt) String() string {
    method Pos (line 1139) | func (n *DirectAbstractDeclaratorOpt) Pos() token.Pos {
  type DirectDeclarator (line 1158) | type DirectDeclarator struct
    method fragment (line 1182) | func (n *DirectDeclarator) fragment() interface{} { return n }
    method String (line 1185) | func (n *DirectDeclarator) String() string {
    method Pos (line 1190) | func (n *DirectDeclarator) Pos() token.Pos {
  type ElifGroup (line 1209) | type ElifGroup struct
    method fragment (line 1216) | func (n *ElifGroup) fragment() interface{} { return n }
    method String (line 1219) | func (n *ElifGroup) String() string {
    method Pos (line 1224) | func (n *ElifGroup) Pos() token.Pos {
  type ElifGroupList (line 1237) | type ElifGroupList struct
    method reverse (line 1243) | func (n *ElifGroupList) reverse() *ElifGroupList {
    method fragment (line 1260) | func (n *ElifGroupList) fragment() interface{} { return n.reverse() }
    method String (line 1263) | func (n *ElifGroupList) String() string {
    method Pos (line 1268) | func (n *ElifGroupList) Pos() token.Pos {
  type ElifGroupListOpt (line 1288) | type ElifGroupListOpt struct
    method fragment (line 1292) | func (n *ElifGroupListOpt) fragment() interface{} { return n }
    method String (line 1295) | func (n *ElifGroupListOpt) String() string {
    method Pos (line 1300) | func (n *ElifGroupListOpt) Pos() token.Pos {
  type ElseGroup (line 1312) | type ElseGroup struct
    method fragment (line 1318) | func (n *ElseGroup) fragment() interface{} { return n }
    method String (line 1321) | func (n *ElseGroup) String() string {
    method Pos (line 1326) | func (n *ElseGroup) Pos() token.Pos {
  type ElseGroupOpt (line 1339) | type ElseGroupOpt struct
    method fragment (line 1343) | func (n *ElseGroupOpt) fragment() interface{} { return n }
    method String (line 1346) | func (n *ElseGroupOpt) String() string {
    method Pos (line 1351) | func (n *ElseGroupOpt) Pos() token.Pos {
  type EndifLine (line 1363) | type EndifLine struct
    method fragment (line 1367) | func (n *EndifLine) fragment() interface{} { return n }
    method String (line 1370) | func (n *EndifLine) String() string {
    method Pos (line 1375) | func (n *EndifLine) Pos() token.Pos {
  type EnumSpecifier (line 1388) | type EnumSpecifier struct
    method fragment (line 1399) | func (n *EnumSpecifier) fragment() interface{} { return n }
    method String (line 1402) | func (n *EnumSpecifier) String() string {
    method Pos (line 1407) | func (n *EnumSpecifier) Pos() token.Pos {
  type EnumerationConstant (line 1419) | type EnumerationConstant struct
    method fragment (line 1423) | func (n *EnumerationConstant) fragment() interface{} { return n }
    method String (line 1426) | func (n *EnumerationConstant) String() string {
    method Pos (line 1431) | func (n *EnumerationConstant) Pos() token.Pos {
  type Enumerator (line 1444) | type Enumerator struct
    method fragment (line 1452) | func (n *Enumerator) fragment() interface{} { return n }
    method String (line 1455) | func (n *Enumerator) String() string {
    method Pos (line 1460) | func (n *Enumerator) Pos() token.Pos {
  type EnumeratorList (line 1473) | type EnumeratorList struct
    method reverse (line 1480) | func (n *EnumeratorList) reverse() *EnumeratorList {
    method fragment (line 1497) | func (n *EnumeratorList) fragment() interface{} { return n.reverse() }
    method String (line 1500) | func (n *EnumeratorList) String() string {
    method Pos (line 1505) | func (n *EnumeratorList) Pos() token.Pos {
  type Expression (line 1583) | type Expression struct
    method fragment (line 1603) | func (n *Expression) fragment() interface{} { return n }
    method String (line 1606) | func (n *Expression) String() string {
    method Pos (line 1611) | func (n *Expression) Pos() token.Pos {
  type ExpressionList (line 1631) | type ExpressionList struct
    method reverse (line 1640) | func (n *ExpressionList) reverse() *ExpressionList {
    method fragment (line 1657) | func (n *ExpressionList) fragment() interface{} { return n.reverse() }
    method String (line 1660) | func (n *ExpressionList) String() string {
    method Pos (line 1665) | func (n *ExpressionList) Pos() token.Pos {
  type ExpressionListOpt (line 1685) | type ExpressionListOpt struct
    method fragment (line 1689) | func (n *ExpressionListOpt) fragment() interface{} { return n }
    method String (line 1692) | func (n *ExpressionListOpt) String() string {
    method Pos (line 1697) | func (n *ExpressionListOpt) Pos() token.Pos {
  type ExpressionOpt (line 1710) | type ExpressionOpt struct
    method fragment (line 1714) | func (n *ExpressionOpt) fragment() interface{} { return n }
    method String (line 1717) | func (n *ExpressionOpt) String() string {
    method Pos (line 1722) | func (n *ExpressionOpt) Pos() token.Pos {
  type ExpressionStatement (line 1734) | type ExpressionStatement struct
    method fragment (line 1739) | func (n *ExpressionStatement) fragment() interface{} { return n }
    method String (line 1742) | func (n *ExpressionStatement) String() string {
    method Pos (line 1747) | func (n *ExpressionStatement) Pos() token.Pos {
  type ExternalDeclaration (line 1766) | type ExternalDeclaration struct
    method fragment (line 1774) | func (n *ExternalDeclaration) fragment() interface{} { return n }
    method String (line 1777) | func (n *ExternalDeclaration) String() string {
    method Pos (line 1782) | func (n *ExternalDeclaration) Pos() token.Pos {
  type FunctionBody (line 1806) | type FunctionBody struct
    method fragment (line 1814) | func (n *FunctionBody) fragment() interface{} { return n }
    method String (line 1817) | func (n *FunctionBody) String() string {
    method Pos (line 1822) | func (n *FunctionBody) Pos() token.Pos {
  type FunctionDefinition (line 1842) | type FunctionDefinition struct
    method fragment (line 1850) | func (n *FunctionDefinition) fragment() interface{} { return n }
    method String (line 1853) | func (n *FunctionDefinition) String() string {
    method Pos (line 1858) | func (n *FunctionDefinition) Pos() token.Pos {
  type FunctionSpecifier (line 1878) | type FunctionSpecifier struct
    method fragment (line 1884) | func (n *FunctionSpecifier) fragment() interface{} { return n }
    method String (line 1887) | func (n *FunctionSpecifier) String() string {
    method Pos (line 1892) | func (n *FunctionSpecifier) Pos() token.Pos {
  type GroupList (line 1905) | type GroupList struct
    method reverse (line 1911) | func (n *GroupList) reverse() *GroupList {
    method fragment (line 1928) | func (n *GroupList) fragment() interface{} { return n.reverse() }
    method String (line 1931) | func (n *GroupList) String() string {
    method Pos (line 1936) | func (n *GroupList) Pos() token.Pos {
  type GroupListOpt (line 1956) | type GroupListOpt struct
    method fragment (line 1960) | func (n *GroupListOpt) fragment() interface{} { return n }
    method String (line 1963) | func (n *GroupListOpt) String() string {
    method Pos (line 1968) | func (n *GroupListOpt) Pos() token.Pos {
  type IdentifierList (line 1981) | type IdentifierList struct
    method reverse (line 1988) | func (n *IdentifierList) reverse() *IdentifierList {
    method fragment (line 2005) | func (n *IdentifierList) fragment() interface{} { return n.reverse() }
    method String (line 2008) | func (n *IdentifierList) String() string {
    method Pos (line 2013) | func (n *IdentifierList) Pos() token.Pos {
  type IdentifierListOpt (line 2033) | type IdentifierListOpt struct
    method fragment (line 2038) | func (n *IdentifierListOpt) fragment() interface{} { return n }
    method String (line 2041) | func (n *IdentifierListOpt) String() string {
    method Pos (line 2046) | func (n *IdentifierListOpt) Pos() token.Pos {
  type IdentifierOpt (line 2059) | type IdentifierOpt struct
    method fragment (line 2063) | func (n *IdentifierOpt) fragment() interface{} { return n }
    method String (line 2066) | func (n *IdentifierOpt) String() string {
    method Pos (line 2071) | func (n *IdentifierOpt) Pos() token.Pos {
  type IfGroup (line 2085) | type IfGroup struct
    method fragment (line 2094) | func (n *IfGroup) fragment() interface{} { return n }
    method String (line 2097) | func (n *IfGroup) String() string {
    method Pos (line 2102) | func (n *IfGroup) Pos() token.Pos {
  type IfSection (line 2114) | type IfSection struct
    method fragment (line 2121) | func (n *IfSection) fragment() interface{} { return n }
    method String (line 2124) | func (n *IfSection) String() string {
    method Pos (line 2129) | func (n *IfSection) Pos() token.Pos {
  type InitDeclarator (line 2142) | type InitDeclarator struct
    method fragment (line 2149) | func (n *InitDeclarator) fragment() interface{} { return n }
    method String (line 2152) | func (n *InitDeclarator) String() string {
    method Pos (line 2157) | func (n *InitDeclarator) Pos() token.Pos {
  type InitDeclaratorList (line 2170) | type InitDeclaratorList struct
    method reverse (line 2177) | func (n *InitDeclaratorList) reverse() *InitDeclaratorList {
    method fragment (line 2194) | func (n *InitDeclaratorList) fragment() interface{} { return n.reverse...
    method String (line 2197) | func (n *InitDeclaratorList) String() string {
    method Pos (line 2202) | func (n *InitDeclaratorList) Pos() token.Pos {
  type InitDeclaratorListOpt (line 2222) | type InitDeclaratorListOpt struct
    method fragment (line 2226) | func (n *InitDeclaratorListOpt) fragment() interface{} { return n }
    method String (line 2229) | func (n *InitDeclaratorListOpt) String() string {
    method Pos (line 2234) | func (n *InitDeclaratorListOpt) Pos() token.Pos {
  type Initializer (line 2248) | type Initializer struct
    method fragment (line 2258) | func (n *Initializer) fragment() interface{} { return n }
    method String (line 2261) | func (n *Initializer) String() string {
    method Pos (line 2266) | func (n *Initializer) Pos() token.Pos {
  type InitializerList (line 2287) | type InitializerList struct
    method reverse (line 2295) | func (n *InitializerList) reverse() *InitializerList {
    method fragment (line 2312) | func (n *InitializerList) fragment() interface{} { return n.reverse() }
    method String (line 2315) | func (n *InitializerList) String() string {
    method Pos (line 2320) | func (n *InitializerList) Pos() token.Pos {
  type IterationStatement (line 2352) | type IterationStatement struct
    method fragment (line 2367) | func (n *IterationStatement) fragment() interface{} { return n }
    method String (line 2370) | func (n *IterationStatement) String() string {
    method Pos (line 2375) | func (n *IterationStatement) Pos() token.Pos {
  type JumpStatement (line 2391) | type JumpStatement struct
    method fragment (line 2400) | func (n *JumpStatement) fragment() interface{} { return n }
    method String (line 2403) | func (n *JumpStatement) String() string {
    method Pos (line 2408) | func (n *JumpStatement) Pos() token.Pos {
  type LabeledStatement (line 2422) | type LabeledStatement struct
    method fragment (line 2430) | func (n *LabeledStatement) fragment() interface{} { return n }
    method String (line 2433) | func (n *LabeledStatement) String() string {
    method Pos (line 2438) | func (n *LabeledStatement) Pos() token.Pos {
  type ParameterDeclaration (line 2451) | type ParameterDeclaration struct
    method fragment (line 2459) | func (n *ParameterDeclaration) fragment() interface{} { return n }
    method String (line 2462) | func (n *ParameterDeclaration) String() string {
    method Pos (line 2467) | func (n *ParameterDeclaration) Pos() token.Pos {
  type ParameterList (line 2480) | type ParameterList struct
    method reverse (line 2487) | func (n *ParameterList) reverse() *ParameterList {
    method fragment (line 2504) | func (n *ParameterList) fragment() interface{} { return n.reverse() }
    method String (line 2507) | func (n *ParameterList) String() string {
    method Pos (line 2512) | func (n *ParameterList) Pos() token.Pos {
  type ParameterTypeList (line 2532) | type ParameterTypeList struct
    method fragment (line 2540) | func (n *ParameterTypeList) fragment() interface{} { return n }
    method String (line 2543) | func (n *ParameterTypeList) String() string {
    method Pos (line 2548) | func (n *ParameterTypeList) Pos() token.Pos {
  type ParameterTypeListOpt (line 2561) | type ParameterTypeListOpt struct
    method fragment (line 2565) | func (n *ParameterTypeListOpt) fragment() interface{} { return n }
    method String (line 2568) | func (n *ParameterTypeListOpt) String() string {
    method Pos (line 2573) | func (n *ParameterTypeListOpt) Pos() token.Pos {
  type Pointer (line 2586) | type Pointer struct
    method fragment (line 2593) | func (n *Pointer) fragment() interface{} { return n }
    method String (line 2596) | func (n *Pointer) String() string {
    method Pos (line 2601) | func (n *Pointer) Pos() token.Pos {
  type PointerOpt (line 2614) | type PointerOpt struct
    method fragment (line 2618) | func (n *PointerOpt) fragment() interface{} { return n }
    method String (line 2621) | func (n *PointerOpt) String() string {
    method Pos (line 2626) | func (n *PointerOpt) Pos() token.Pos {
  type PreprocessingFile (line 2638) | type PreprocessingFile struct
    method fragment (line 2643) | func (n *PreprocessingFile) fragment() interface{} { return n }
    method String (line 2646) | func (n *PreprocessingFile) String() string {
    method Pos (line 2651) | func (n *PreprocessingFile) Pos() token.Pos {
  type SelectionStatement (line 2665) | type SelectionStatement struct
    method fragment (line 2676) | func (n *SelectionStatement) fragment() interface{} { return n }
    method String (line 2679) | func (n *SelectionStatement) String() string {
    method Pos (line 2684) | func (n *SelectionStatement) Pos() token.Pos {
  type SpecifierQualifierList (line 2697) | type SpecifierQualifierList struct
    method fragment (line 2706) | func (n *SpecifierQualifierList) fragment() interface{} { return n }
    method String (line 2709) | func (n *SpecifierQualifierList) String() string {
    method Pos (line 2714) | func (n *SpecifierQualifierList) Pos() token.Pos {
  type SpecifierQualifierListOpt (line 2734) | type SpecifierQualifierListOpt struct
    method fragment (line 2740) | func (n *SpecifierQualifierListOpt) fragment() interface{} { return n }
    method String (line 2743) | func (n *SpecifierQualifierListOpt) String() string {
    method Pos (line 2748) | func (n *SpecifierQualifierListOpt) Pos() token.Pos {
  type Statement (line 2766) | type Statement struct
    method fragment (line 2777) | func (n *Statement) fragment() interface{} { return n }
    method String (line 2780) | func (n *Statement) String() string {
    method Pos (line 2785) | func (n *Statement) Pos() token.Pos {
  type StaticAssertDeclaration (line 2814) | type StaticAssertDeclaration struct
    method fragment (line 2824) | func (n *StaticAssertDeclaration) fragment() interface{} { return n }
    method String (line 2827) | func (n *StaticAssertDeclaration) String() string {
    method Pos (line 2832) | func (n *StaticAssertDeclaration) Pos() token.Pos {
  type StorageClassSpecifier (line 2848) | type StorageClassSpecifier struct
    method fragment (line 2854) | func (n *StorageClassSpecifier) fragment() interface{} { return n }
    method String (line 2857) | func (n *StorageClassSpecifier) String() string {
    method Pos (line 2862) | func (n *StorageClassSpecifier) Pos() token.Pos {
  type StructDeclaration (line 2876) | type StructDeclaration struct
    method fragment (line 2884) | func (n *StructDeclaration) fragment() interface{} { return n }
    method String (line 2887) | func (n *StructDeclaration) String() string {
    method Pos (line 2892) | func (n *StructDeclaration) Pos() token.Pos {
  type StructDeclarationList (line 2912) | type StructDeclarationList struct
    method reverse (line 2918) | func (n *StructDeclarationList) reverse() *StructDeclarationList {
    method fragment (line 2935) | func (n *StructDeclarationList) fragment() interface{} { return n.reve...
    method String (line 2938) | func (n *StructDeclarationList) String() string {
    method Pos (line 2943) | func (n *StructDeclarationList) Pos() token.Pos {
  type StructDeclarator (line 2963) | type StructDeclarator struct
    method fragment (line 2971) | func (n *StructDeclarator) fragment() interface{} { return n }
    method String (line 2974) | func (n *StructDeclarator) String() string {
    method Pos (line 2979) | func (n *StructDeclarator) Pos() token.Pos {
  type StructDeclaratorList (line 3003) | type StructDeclaratorList struct
    method reverse (line 3010) | func (n *StructDeclaratorList) reverse() *StructDeclaratorList {
    method fragment (line 3027) | func (n *StructDeclaratorList) fragment() interface{} { return n.rever...
    method String (line 3030) | func (n *StructDeclaratorList) String() string {
    method Pos (line 3035) | func (n *StructDeclaratorList) Pos() token.Pos {
  type StructOrUnion (line 3055) | type StructOrUnion struct
    method fragment (line 3060) | func (n *StructOrUnion) fragment() interface{} { return n }
    method String (line 3063) | func (n *StructOrUnion) String() string {
    method Pos (line 3068) | func (n *StructOrUnion) Pos() token.Pos {
  type StructOrUnionSpecifier (line 3082) | type StructOrUnionSpecifier struct
    method fragment (line 3095) | func (n *StructOrUnionSpecifier) fragment() interface{} { return n }
    method String (line 3098) | func (n *StructOrUnionSpecifier) String() string {
    method Pos (line 3103) | func (n *StructOrUnionSpecifier) Pos() token.Pos {
  type TranslationUnit (line 3116) | type TranslationUnit struct
    method reverse (line 3126) | func (n *TranslationUnit) reverse() *TranslationUnit {
    method fragment (line 3143) | func (n *TranslationUnit) fragment() interface{} { return n.reverse() }
    method String (line 3146) | func (n *TranslationUnit) String() string {
    method Pos (line 3151) | func (n *TranslationUnit) Pos() token.Pos {
  type TypeName (line 3170) | type TypeName struct
    method fragment (line 3178) | func (n *TypeName) fragment() interface{} { return n }
    method String (line 3181) | func (n *TypeName) String() string {
    method Pos (line 3186) | func (n *TypeName) Pos() token.Pos {
  type TypeQualifier (line 3200) | type TypeQualifier struct
    method fragment (line 3206) | func (n *TypeQualifier) fragment() interface{} { return n }
    method String (line 3209) | func (n *TypeQualifier) String() string {
    method Pos (line 3214) | func (n *TypeQualifier) Pos() token.Pos {
  type TypeQualifierList (line 3227) | type TypeQualifierList struct
    method reverse (line 3234) | func (n *TypeQualifierList) reverse() *TypeQualifierList {
    method fragment (line 3251) | func (n *TypeQualifierList) fragment() interface{} { return n.reverse() }
    method String (line 3254) | func (n *TypeQualifierList) String() string {
    method Pos (line 3259) | func (n *TypeQualifierList) Pos() token.Pos {
  type TypeQualifierListOpt (line 3279) | type TypeQualifierListOpt struct
    method fragment (line 3283) | func (n *TypeQualifierListOpt) fragment() interface{} { return n }
    method String (line 3286) | func (n *TypeQualifierListOpt) String() string {
    method Pos (line 3291) | func (n *TypeQualifierListOpt) Pos() token.Pos {
  type TypeSpecifier (line 3318) | type TypeSpecifier struct
    method fragment (line 3332) | func (n *TypeSpecifier) fragment() interface{} { return n }
    method String (line 3335) | func (n *TypeSpecifier) String() string {
    method Pos (line 3340) | func (n *TypeSpecifier) Pos() token.Pos {
  type VolatileOpt (line 3362) | type VolatileOpt struct
    method fragment (line 3366) | func (n *VolatileOpt) fragment() interface{} { return n }
    method String (line 3369) | func (n *VolatileOpt) String() string {
    method Pos (line 3374) | func (n *VolatileOpt) Pos() token.Pos {

FILE: ast2.go
  type operand (line 18) | type operand interface
  type Node (line 24) | type Node interface
  method Scope (line 31) | func (n *CompoundStatement) Scope() *Bindings { return n.scope }
  method Declarator (line 37) | func (n *Declaration) Declarator() *Declarator { return n.declarator }
  method IsInline (line 42) | func (n *DeclarationSpecifiers) IsInline() bool {
  method IsTypedef (line 47) | func (n *DeclarationSpecifiers) IsTypedef() bool {
  method IsExtern (line 52) | func (n *DeclarationSpecifiers) IsExtern() bool {
  method IsStatic (line 57) | func (n *DeclarationSpecifiers) IsStatic() bool {
  method IsAuto (line 62) | func (n *DeclarationSpecifiers) IsAuto() bool {
  method IsRegister (line 67) | func (n *DeclarationSpecifiers) IsRegister() bool {
  method IsConst (line 72) | func (n *DeclarationSpecifiers) IsConst() bool {
  method IsRestrict (line 77) | func (n *DeclarationSpecifiers) IsRestrict() bool {
  method IsVolatile (line 82) | func (n *DeclarationSpecifiers) IsVolatile() bool {
  method kind (line 87) | func (n *DeclarationSpecifiers) kind() Kind { return tsValid[n.typeSpeci...
  method typeSpecifiers (line 90) | func (n *DeclarationSpecifiers) typeSpecifiers() int {
  method firstTypeSpecifier (line 95) | func (n *DeclarationSpecifiers) firstTypeSpecifier() *TypeSpecifier {
  method attrs (line 108) | func (n *DeclarationSpecifiers) attrs() int { return n.attr }
  method member (line 111) | func (n *DeclarationSpecifiers) member(nm int) (*Member, error) {
  method str (line 116) | func (n *DeclarationSpecifiers) str() string {
  method TypedefName (line 121) | func (n *DeclarationSpecifiers) TypedefName() int {
  method Identifier (line 132) | func (n *Declarator) Identifier() (int, *Bindings) {
  method RawSpecifier (line 143) | func (n *Declarator) RawSpecifier() Specifier { return n.specifier }
  method clone (line 145) | func (n *Declarator) clone() *Declarator {
  method stars (line 150) | func (n *Declarator) stars() int { return n.PointerOpt.stars() }
  method isCompatible (line 152) | func (n *Declarator) isCompatible(m *Declarator) (r bool) {
  method unsigednEnum (line 156) | func (n *Declarator) unsigednEnum(lx *lexer, s Specifier) bool {
  method setFull (line 185) | func (n *Declarator) setFull(lx *lexer) Type {
  method isCompatible (line 546) | func (n *DeclaratorOpt) isCompatible(m *DeclaratorOpt) bool {
  method DeclarationScope (line 555) | func (n *DirectDeclarator) DeclarationScope() *Bindings {
  method TopDeclarator (line 560) | func (n *DirectDeclarator) TopDeclarator() *Declarator {
  method top (line 564) | func (n *DirectDeclarator) top() *DirectDeclarator {
  method bottom (line 571) | func (n *DirectDeclarator) bottom() *DirectDeclarator {
  method clone (line 578) | func (n *DirectDeclarator) clone() *DirectDeclarator {
  method isCompatible (line 583) | func (n *DirectDeclarator) isCompatible(m *DirectDeclarator) (r bool) {
  method directDeclarator (line 655) | func (n *DirectDeclarator) directDeclarator() *DirectDeclarator {
  method isArray (line 674) | func (n *DirectDeclarator) isArray() bool {
  method isVLA (line 693) | func (n *DirectDeclarator) isVLA() *Expression {
  method isUnsigned (line 729) | func (n *EnumSpecifier) isUnsigned(lx *lexer) bool {
  method cond (line 747) | func (n *Expression) cond(lx *lexer, op operand) {
  method eval (line 864) | func (n *Expression) eval(lx *lexer) (interface{}, Type) {
  method IdentResolutionScope (line 2699) | func (n *Expression) IdentResolutionScope() *Bindings {
  method eval (line 2709) | func (n *ExpressionList) eval(lx *lexer) (interface{}, Type) {
  method Len (line 2723) | func (n *ExpressionList) Len() (r int) {
  method post (line 2732) | func (*FunctionDefinition) post(lx *lexer, d *Declarator, dlo *Declarati...
  method post (line 2788) | func (n *IdentifierListOpt) post(lx *lexer, dlo *DeclarationListOpt) {
  method typeCheck (line 2854) | func (n *Initializer) typeCheck(pt *Type, dt Type, static bool, lx *lexe...
  method Len (line 2979) | func (n *InitializerList) Len() (r int) {
  method typeCheck (line 2986) | func (n *InitializerList) typeCheck(pt *Type, dt Type, static bool, lx *...
  method post (line 3153) | func (n *ParameterTypeList) post() {
  method stars (line 3172) | func (n *Pointer) stars() (r int) {
  method stars (line 3181) | func (n *PointerOpt) stars() int {
  method isCompatible (line 3191) | func (n *SpecifierQualifierList) isCompatible(m *SpecifierQualifierList)...
  method IsInline (line 3205) | func (n *SpecifierQualifierList) IsInline() bool {
  method IsTypedef (line 3210) | func (n *SpecifierQualifierList) IsTypedef() bool {
  method IsExtern (line 3215) | func (n *SpecifierQualifierList) IsExtern() bool {
  method IsStatic (line 3220) | func (n *SpecifierQualifierList) IsStatic() bool {
  method IsAuto (line 3225) | func (n *SpecifierQualifierList) IsAuto() bool {
  method IsRegister (line 3230) | func (n *SpecifierQualifierList) IsRegister() bool {
  method IsConst (line 3235) | func (n *SpecifierQualifierList) IsConst() bool {
  method IsRestrict (line 3240) | func (n *SpecifierQualifierList) IsRestrict() bool {
  method IsVolatile (line 3245) | func (n *SpecifierQualifierList) IsVolatile() bool {
  method kind (line 3250) | func (n *SpecifierQualifierList) kind() Kind { return tsValid[n.typeSpec...
  method typeSpecifiers (line 3253) | func (n *SpecifierQualifierList) typeSpecifiers() int {
  method firstTypeSpecifier (line 3258) | func (n *SpecifierQualifierList) firstTypeSpecifier() *TypeSpecifier {
  method attrs (line 3271) | func (n *SpecifierQualifierList) attrs() int { return n.attr }
  method member (line 3274) | func (n *SpecifierQualifierList) member(nm int) (*Member, error) {
  method str (line 3279) | func (n *SpecifierQualifierList) str() string {
  method TypedefName (line 3284) | func (n *SpecifierQualifierList) TypedefName() int {
  method post (line 3293) | func (n *StructDeclarator) post(lx *lexer) {
  method isCompatible (line 3391) | func (n *StructDeclarator) isCompatible(m *StructDeclarator) bool {
  method isCompatible (line 3410) | func (n *StructDeclaratorList) isCompatible(m *StructDeclaratorList) bool {
  method typeSpecifiers (line 3431) | func (n *StructOrUnion) typeSpecifiers() int {
  method isCompatible (line 3442) | func (n *StructOrUnion) isCompatible(m *StructOrUnion) (r bool) {
  method str (line 3446) | func (n *StructOrUnion) str() string {
  method Declarator (line 3461) | func (n *StructOrUnionSpecifier) Declarator() *Declarator { return n.dec...
  method typeSpecifiers (line 3463) | func (n *StructOrUnionSpecifier) typeSpecifiers() int { return n.StructO...
  method isCompatible (line 3465) | func (n *StructOrUnionSpecifier) isCompatible(m *StructOrUnionSpecifier)...
  method member (line 3538) | func (n *StructOrUnionSpecifier) member(nm int) (*Member, error) {
  method member (line 3573) | func (n *TypeSpecifier) member(nm int) (*Member, error) {

FILE: ast_test.go
  function ExampleAbstractDeclarator (line 13) | func ExampleAbstractDeclarator() {
  function ExampleAbstractDeclarator_case1 (line 23) | func ExampleAbstractDeclarator_case1() {
  function ExampleAbstractDeclaratorOpt (line 36) | func ExampleAbstractDeclaratorOpt() {
  function ExampleAbstractDeclaratorOpt_case1 (line 42) | func ExampleAbstractDeclaratorOpt_case1() {
  function ExampleArgumentExpressionList (line 54) | func ExampleArgumentExpressionList() {
  function ExampleArgumentExpressionList_case1 (line 65) | func ExampleArgumentExpressionList_case1() {
  function ExampleArgumentExpressionListOpt (line 84) | func ExampleArgumentExpressionListOpt() {
  function ExampleArgumentExpressionListOpt_case1 (line 90) | func ExampleArgumentExpressionListOpt_case1() {
  function ExampleAssemblerInstructions (line 103) | func ExampleAssemblerInstructions() {
  function ExampleAssemblerInstructions_case1 (line 111) | func ExampleAssemblerInstructions_case1() {
  function ExampleAssemblerOperand (line 123) | func ExampleAssemblerOperand() {
  function ExampleAssemblerOperands (line 137) | func ExampleAssemblerOperands() {
  function ExampleAssemblerOperands_case1 (line 153) | func ExampleAssemblerOperands_case1() {
  function ExampleAssemblerStatement (line 182) | func ExampleAssemblerStatement() {
  function ExampleAssemblerStatement_case1 (line 197) | func ExampleAssemblerStatement_case1() {
  function ExampleAssemblerStatement_case2 (line 223) | func ExampleAssemblerStatement_case2() {
  function ExampleAssemblerStatement_case3 (line 261) | func ExampleAssemblerStatement_case3() {
  function ExampleAssemblerStatement_case4 (line 303) | func ExampleAssemblerStatement_case4() {
  function ExampleAssemblerStatement_case5 (line 339) | func ExampleAssemblerStatement_case5() {
  function ExampleAssemblerStatement_case6 (line 354) | func ExampleAssemblerStatement_case6() {
  function ExampleAssemblerSymbolicNameOpt (line 381) | func ExampleAssemblerSymbolicNameOpt() {
  function ExampleAssemblerSymbolicNameOpt_case1 (line 387) | func ExampleAssemblerSymbolicNameOpt_case1() {
  function ExampleBasicAssemblerStatement (line 397) | func ExampleBasicAssemblerStatement() {
  function ExampleBlockItem (line 410) | func ExampleBlockItem() {
  function ExampleBlockItem_case1 (line 426) | func ExampleBlockItem_case1() {
  function ExampleBlockItemList (line 440) | func ExampleBlockItemList() {
  function ExampleBlockItemList_case1 (line 456) | func ExampleBlockItemList_case1() {
  function ExampleBlockItemListOpt (line 484) | func ExampleBlockItemListOpt() {
  function ExampleBlockItemListOpt_case1 (line 490) | func ExampleBlockItemListOpt_case1() {
  function ExampleClobbers (line 508) | func ExampleClobbers() {
  function ExampleClobbers_case1 (line 516) | func ExampleClobbers_case1() {
  function ExampleCommaOpt (line 529) | func ExampleCommaOpt() {
  function ExampleCommaOpt_case1 (line 535) | func ExampleCommaOpt_case1() {
  function ExampleCompoundStatement (line 543) | func ExampleCompoundStatement() {
  function ExampleConstantExpression (line 552) | func ExampleConstantExpression() {
  function ExampleControlLine (line 567) | func ExampleControlLine() {
  function ExampleControlLine_case01 (line 579) | func ExampleControlLine_case01() {
  function ExampleControlLine_case02 (line 594) | func ExampleControlLine_case02() {
  function ExampleControlLine_case03 (line 613) | func ExampleControlLine_case03() {
  function ExampleControlLine_case04 (line 627) | func ExampleControlLine_case04() {
  function ExampleControlLine_case05 (line 639) | func ExampleControlLine_case05() {
  function ExampleControlLine_case06 (line 648) | func ExampleControlLine_case06() {
  function ExampleControlLine_case07 (line 663) | func ExampleControlLine_case07() {
  function ExampleControlLine_case08 (line 678) | func ExampleControlLine_case08() {
  function ExampleControlLine_case09 (line 690) | func ExampleControlLine_case09() {
  function ExampleControlLine_case10 (line 701) | func ExampleControlLine_case10() {
  function ExampleControlLine_case11 (line 719) | func ExampleControlLine_case11() {
  function ExampleControlLine_case12 (line 729) | func ExampleControlLine_case12() {
  function ExampleControlLine_case13 (line 745) | func ExampleControlLine_case13() {
  function ExampleDeclaration (line 760) | func ExampleDeclaration() {
  function ExampleDeclaration_case1 (line 774) | func ExampleDeclaration_case1() {
  function ExampleDeclarationList (line 800) | func ExampleDeclarationList() {
  function ExampleDeclarationList_case1 (line 816) | func ExampleDeclarationList_case1() {
  function ExampleDeclarationListOpt (line 844) | func ExampleDeclarationListOpt() {
  function ExampleDeclarationListOpt_case1 (line 850) | func ExampleDeclarationListOpt_case1() {
  function ExampleDeclarationSpecifiers (line 868) | func ExampleDeclarationSpecifiers() {
  function ExampleDeclarationSpecifiers_case1 (line 879) | func ExampleDeclarationSpecifiers_case1() {
  function ExampleDeclarationSpecifiers_case2 (line 891) | func ExampleDeclarationSpecifiers_case2() {
  function ExampleDeclarationSpecifiers_case3 (line 902) | func ExampleDeclarationSpecifiers_case3() {
  function ExampleDeclarationSpecifiersOpt (line 913) | func ExampleDeclarationSpecifiersOpt() {
  function ExampleDeclarationSpecifiersOpt_case1 (line 919) | func ExampleDeclarationSpecifiersOpt_case1() {
  function ExampleDeclarator (line 932) | func ExampleDeclarator() {
  function ExampleDeclaratorOpt (line 943) | func ExampleDeclaratorOpt() {
  function ExampleDeclaratorOpt_case1 (line 949) | func ExampleDeclaratorOpt_case1() {
  function ExampleDesignation (line 962) | func ExampleDesignation() {
  function ExampleDesignationOpt (line 977) | func ExampleDesignationOpt() {
  function ExampleDesignationOpt_case1 (line 983) | func ExampleDesignationOpt_case1() {
  function ExampleDesignator (line 1000) | func ExampleDesignator() {
  function ExampleDesignator_case1 (line 1019) | func ExampleDesignator_case1() {
  function ExampleDesignatorList (line 1029) | func ExampleDesignatorList() {
  function ExampleDesignatorList_case1 (line 1041) | func ExampleDesignatorList_case1() {
  function ExampleDirectAbstractDeclarator (line 1061) | func ExampleDirectAbstractDeclarator() {
  function ExampleDirectAbstractDeclarator_case1 (line 1075) | func ExampleDirectAbstractDeclarator_case1() {
  function ExampleDirectAbstractDeclarator_case2 (line 1085) | func ExampleDirectAbstractDeclarator_case2() {
  function ExampleDirectAbstractDeclarator_case3 (line 1100) | func ExampleDirectAbstractDeclarator_case3() {
  function ExampleDirectAbstractDeclarator_case4 (line 1117) | func ExampleDirectAbstractDeclarator_case4() {
  function ExampleDirectAbstractDeclarator_case5 (line 1139) | func ExampleDirectAbstractDeclarator_case5() {
  function ExampleDirectAbstractDeclarator_case6 (line 1150) | func ExampleDirectAbstractDeclarator_case6() {
  function ExampleDirectAbstractDeclarator_case7 (line 1160) | func ExampleDirectAbstractDeclarator_case7() {
  function ExampleDirectAbstractDeclaratorOpt (line 1175) | func ExampleDirectAbstractDeclaratorOpt() {
  function ExampleDirectAbstractDeclaratorOpt_case1 (line 1181) | func ExampleDirectAbstractDeclaratorOpt_case1() {
  function ExampleDirectDeclarator (line 1193) | func ExampleDirectDeclarator() {
  function ExampleDirectDeclarator_case1 (line 1201) | func ExampleDirectDeclarator_case1() {
  function ExampleDirectDeclarator_case2 (line 1217) | func ExampleDirectDeclarator_case2() {
  function ExampleDirectDeclarator_case3 (line 1230) | func ExampleDirectDeclarator_case3() {
  function ExampleDirectDeclarator_case4 (line 1250) | func ExampleDirectDeclarator_case4() {
  function ExampleDirectDeclarator_case5 (line 1275) | func ExampleDirectDeclarator_case5() {
  function ExampleDirectDeclarator_case6 (line 1289) | func ExampleDirectDeclarator_case6() {
  function ExampleDirectDeclarator_case7 (line 1315) | func ExampleDirectDeclarator_case7() {
  function ExampleElifGroup (line 1328) | func ExampleElifGroup() {
  function ExampleElifGroupList (line 1343) | func ExampleElifGroupList() {
  function ExampleElifGroupList_case1 (line 1360) | func ExampleElifGroupList_case1() {
  function ExampleElifGroupListOpt (line 1390) | func ExampleElifGroupListOpt() {
  function ExampleElifGroupListOpt_case1 (line 1396) | func ExampleElifGroupListOpt_case1() {
  function ExampleElseGroup (line 1415) | func ExampleElseGroup() {
  function ExampleElseGroupOpt (line 1424) | func ExampleElseGroupOpt() {
  function ExampleElseGroupOpt_case1 (line 1430) | func ExampleElseGroupOpt_case1() {
  function ExampleEndifLine (line 1441) | func ExampleEndifLine() {
  function ExampleEnumSpecifier (line 1449) | func ExampleEnumSpecifier() {
  function ExampleEnumSpecifier_case1 (line 1466) | func ExampleEnumSpecifier_case1() {
  function ExampleEnumerationConstant (line 1476) | func ExampleEnumerationConstant() {
  function ExampleEnumerator (line 1484) | func ExampleEnumerator() {
  function ExampleEnumerator_case1 (line 1494) | func ExampleEnumerator_case1() {
  function ExampleEnumeratorList (line 1517) | func ExampleEnumeratorList() {
  function ExampleEnumeratorList_case1 (line 1529) | func ExampleEnumeratorList_case1() {
  function ExampleExpression (line 1551) | func ExampleExpression() {
  function ExampleExpression_case01 (line 1559) | func ExampleExpression_case01() {
  function ExampleExpression_case02 (line 1568) | func ExampleExpression_case02() {
  function ExampleExpression_case03 (line 1577) | func ExampleExpression_case03() {
  function ExampleExpression_case04 (line 1586) | func ExampleExpression_case04() {
  function ExampleExpression_case05 (line 1595) | func ExampleExpression_case05() {
  function ExampleExpression_case06 (line 1604) | func ExampleExpression_case06() {
  function ExampleExpression_case07 (line 1613) | func ExampleExpression_case07() {
  function ExampleExpression_case08 (line 1629) | func ExampleExpression_case08() {
  function ExampleExpression_case09 (line 1649) | func ExampleExpression_case09() {
  function ExampleExpression_case10 (line 1663) | func ExampleExpression_case10() {
  function ExampleExpression_case11 (line 1677) | func ExampleExpression_case11() {
  function ExampleExpression_case12 (line 1691) | func ExampleExpression_case12() {
  function ExampleExpression_case13 (line 1704) | func ExampleExpression_case13() {
  function ExampleExpression_case14 (line 1717) | func ExampleExpression_case14() {
  function ExampleExpression_case15 (line 1738) | func ExampleExpression_case15() {
  function ExampleExpression_case16 (line 1751) | func ExampleExpression_case16() {
  function ExampleExpression_case17 (line 1764) | func ExampleExpression_case17() {
  function ExampleExpression_case18 (line 1777) | func ExampleExpression_case18() {
  function ExampleExpression_case19 (line 1790) | func ExampleExpression_case19() {
  function ExampleExpression_case20 (line 1803) | func ExampleExpression_case20() {
  function ExampleExpression_case21 (line 1816) | func ExampleExpression_case21() {
  function ExampleExpression_case22 (line 1829) | func ExampleExpression_case22() {
  function ExampleExpression_case23 (line 1842) | func ExampleExpression_case23() {
  function ExampleExpression_case24 (line 1855) | func ExampleExpression_case24() {
  function ExampleExpression_case25 (line 1875) | func ExampleExpression_case25() {
  function ExampleExpression_case26 (line 1898) | func ExampleExpression_case26() {
  function ExampleExpression_case27 (line 1915) | func ExampleExpression_case27() {
  function ExampleExpression_case28 (line 1932) | func ExampleExpression_case28() {
  function ExampleExpression_case29 (line 1949) | func ExampleExpression_case29() {
  function ExampleExpression_case30 (line 1966) | func ExampleExpression_case30() {
  function ExampleExpression_case31 (line 1983) | func ExampleExpression_case31() {
  function ExampleExpression_case32 (line 2000) | func ExampleExpression_case32() {
  function ExampleExpression_case33 (line 2017) | func ExampleExpression_case33() {
  function ExampleExpression_case34 (line 2034) | func ExampleExpression_case34() {
  function ExampleExpression_case35 (line 2051) | func ExampleExpression_case35() {
  function ExampleExpression_case36 (line 2068) | func ExampleExpression_case36() {
  function ExampleExpression_case37 (line 2085) | func ExampleExpression_case37() {
  function ExampleExpression_case38 (line 2102) | func ExampleExpression_case38() {
  function ExampleExpression_case39 (line 2119) | func ExampleExpression_case39() {
  function ExampleExpression_case40 (line 2136) | func ExampleExpression_case40() {
  function ExampleExpression_case41 (line 2153) | func ExampleExpression_case41() {
  function ExampleExpression_case42 (line 2170) | func ExampleExpression_case42() {
  function ExampleExpression_case43 (line 2187) | func ExampleExpression_case43() {
  function ExampleExpression_case44 (line 2204) | func ExampleExpression_case44() {
  function ExampleExpression_case45 (line 2228) | func ExampleExpression_case45() {
  function ExampleExpression_case46 (line 2245) | func ExampleExpression_case46() {
  function ExampleExpression_case47 (line 2262) | func ExampleExpression_case47() {
  function ExampleExpression_case48 (line 2279) | func ExampleExpression_case48() {
  function ExampleExpression_case49 (line 2296) | func ExampleExpression_case49() {
  function ExampleExpression_case50 (line 2313) | func ExampleExpression_case50() {
  function ExampleExpression_case51 (line 2330) | func ExampleExpression_case51() {
  function ExampleExpression_case52 (line 2347) | func ExampleExpression_case52() {
  function ExampleExpression_case53 (line 2364) | func ExampleExpression_case53() {
  function ExampleExpression_case54 (line 2381) | func ExampleExpression_case54() {
  function ExampleExpression_case55 (line 2398) | func ExampleExpression_case55() {
  function ExampleExpression_case56 (line 2415) | func ExampleExpression_case56() {
  function ExampleExpression_case57 (line 2435) | func ExampleExpression_case57() {
  function ExampleExpression_case58 (line 2449) | func ExampleExpression_case58() {
  function ExampleExpression_case59 (line 2459) | func ExampleExpression_case59() {
  function ExampleExpressionList (line 2477) | func ExampleExpressionList() {
  function ExampleExpressionList_case1 (line 2488) | func ExampleExpressionList_case1() {
  function ExampleExpressionListOpt (line 2507) | func ExampleExpressionListOpt() {
  function ExampleExpressionListOpt_case1 (line 2513) | func ExampleExpressionListOpt_case1() {
  function ExampleExpressionOpt (line 2530) | func ExampleExpressionOpt() {
  function ExampleExpressionOpt_case1 (line 2536) | func ExampleExpressionOpt_case1() {
  function ExampleExpressionStatement (line 2549) | func ExampleExpressionStatement() {
  function ExampleExternalDeclaration (line 2557) | func ExampleExternalDeclaration() {
  function ExampleExternalDeclaration_case1 (line 2580) | func ExampleExternalDeclaration_case1() {
  function ExampleExternalDeclaration_case2 (line 2597) | func ExampleExternalDeclaration_case2() {
  function ExampleExternalDeclaration_case3 (line 2614) | func ExampleExternalDeclaration_case3() {
  function ExampleFunctionBody (line 2623) | func ExampleFunctionBody() {
  function ExampleFunctionBody_case1 (line 2634) | func ExampleFunctionBody_case1() {
  function ExampleFunctionDefinition (line 2653) | func ExampleFunctionDefinition() {
  function ExampleFunctionDefinition_case1 (line 2679) | func ExampleFunctionDefinition_case1() {
  function ExampleFunctionSpecifier (line 2700) | func ExampleFunctionSpecifier() {
  function ExampleFunctionSpecifier_case1 (line 2708) | func ExampleFunctionSpecifier_case1() {
  function ExampleGroupList (line 2717) | func ExampleGroupList() {
  function ExampleGroupList_case1 (line 2724) | func ExampleGroupList_case1() {
  function ExampleGroupListOpt (line 2746) | func ExampleGroupListOpt() {
  function ExampleGroupListOpt_case1 (line 2752) | func ExampleGroupListOpt_case1() {
  function ExampleIdentifierList (line 2765) | func ExampleIdentifierList() {
  function ExampleIdentifierList_case1 (line 2773) | func ExampleIdentifierList_case1() {
  function ExampleIdentifierListOpt (line 2786) | func ExampleIdentifierListOpt() {
  function ExampleIdentifierListOpt_case1 (line 2792) | func ExampleIdentifierListOpt_case1() {
  function ExampleIdentifierOpt (line 2802) | func ExampleIdentifierOpt() {
  function ExampleIdentifierOpt_case1 (line 2808) | func ExampleIdentifierOpt_case1() {
  function ExampleIfGroup (line 2816) | func ExampleIfGroup() {
  function ExampleIfGroup_case1 (line 2831) | func ExampleIfGroup_case1() {
  function ExampleIfGroup_case2 (line 2842) | func ExampleIfGroup_case2() {
  function ExampleIfSection (line 2853) | func ExampleIfSection() {
  function ExampleInitDeclarator (line 2873) | func ExampleInitDeclarator() {
  function ExampleInitDeclarator_case1 (line 2887) | func ExampleInitDeclarator_case1() {
  function ExampleInitDeclaratorList (line 2911) | func ExampleInitDeclaratorList() {
  function ExampleInitDeclaratorList_case1 (line 2927) | func ExampleInitDeclaratorList_case1() {
  function ExampleInitDeclaratorListOpt (line 2956) | func ExampleInitDeclaratorListOpt() {
  function ExampleInitDeclaratorListOpt_case1 (line 2962) | func ExampleInitDeclaratorListOpt_case1() {
  function ExampleInitializer (line 2980) | func ExampleInitializer() {
  function ExampleInitializer_case1 (line 2993) | func ExampleInitializer_case1() {
  function ExampleInitializer_case2 (line 3003) | func ExampleInitializer_case2() {
  function ExampleInitializerList (line 3021) | func ExampleInitializerList() {
  function ExampleInitializerList_case1 (line 3036) | func ExampleInitializerList_case1() {
  function ExampleInitializerList_case2 (line 3053) | func ExampleInitializerList_case2() {
  function ExampleIterationStatement (line 3059) | func ExampleIterationStatement() {
  function ExampleIterationStatement_case1 (line 3085) | func ExampleIterationStatement_case1() {
  function ExampleIterationStatement_case2 (line 3114) | func ExampleIterationStatement_case2() {
  function ExampleIterationStatement_case3 (line 3133) | func ExampleIterationStatement_case3() {
  function ExampleJumpStatement (line 3160) | func ExampleJumpStatement() {
  function ExampleJumpStatement_case1 (line 3170) | func ExampleJumpStatement_case1() {
  function ExampleJumpStatement_case2 (line 3180) | func ExampleJumpStatement_case2() {
  function ExampleJumpStatement_case3 (line 3190) | func ExampleJumpStatement_case3() {
  function ExampleJumpStatement_case4 (line 3200) | func ExampleJumpStatement_case4() {
  function ExampleLabeledStatement (line 3216) | func ExampleLabeledStatement() {
  function ExampleLabeledStatement_case1 (line 3231) | func ExampleLabeledStatement_case1() {
  function ExampleLabeledStatement_case2 (line 3257) | func ExampleLabeledStatement_case2() {
  function ExampleParameterDeclaration (line 3273) | func ExampleParameterDeclaration() {
  function ExampleParameterDeclaration_case1 (line 3293) | func ExampleParameterDeclaration_case1() {
  function ExampleParameterList (line 3307) | func ExampleParameterList() {
  function ExampleParameterList_case1 (line 3323) | func ExampleParameterList_case1() {
  function ExampleParameterTypeList (line 3352) | func ExampleParameterTypeList() {
  function ExampleParameterTypeList_case1 (line 3370) | func ExampleParameterTypeList_case1() {
  function ExampleParameterTypeListOpt (line 3391) | func ExampleParameterTypeListOpt() {
  function ExampleParameterTypeListOpt_case1 (line 3397) | func ExampleParameterTypeListOpt_case1() {
  function ExamplePointer (line 3417) | func ExamplePointer() {
  function ExamplePointer_case1 (line 3425) | func ExamplePointer_case1() {
  function ExamplePointerOpt (line 3437) | func ExamplePointerOpt() {
  function ExamplePointerOpt_case1 (line 3443) | func ExamplePointerOpt_case1() {
  function ExamplePreprocessingFile (line 3453) | func ExamplePreprocessingFile() {
  function ExampleSelectionStatement (line 3462) | func ExampleSelectionStatement() {
  function ExampleSelectionStatement_case1 (line 3488) | func ExampleSelectionStatement_case1() {
  function ExampleSelectionStatement_case2 (line 3522) | func ExampleSelectionStatement_case2() {
  function ExampleSpecifierQualifierList (line 3549) | func ExampleSpecifierQualifierList() {
  function ExampleSpecifierQualifierList_case1 (line 3560) | func ExampleSpecifierQualifierList_case1() {
  function ExampleSpecifierQualifierListOpt (line 3571) | func ExampleSpecifierQualifierListOpt() {
  function ExampleSpecifierQualifierListOpt_case1 (line 3577) | func ExampleSpecifierQualifierListOpt_case1() {
  function ExampleStatement (line 3590) | func ExampleStatement() {
  function ExampleStatement_case1 (line 3608) | func ExampleStatement_case1() {
  function ExampleStatement_case2 (line 3620) | func ExampleStatement_case2() {
  function ExampleStatement_case3 (line 3631) | func ExampleStatement_case3() {
  function ExampleStatement_case4 (line 3660) | func ExampleStatement_case4() {
  function ExampleStatement_case5 (line 3689) | func ExampleStatement_case5() {
  function ExampleStatement_case6 (line 3702) | func ExampleStatement_case6() {
  function ExampleStaticAssertDeclaration (line 3720) | func ExampleStaticAssertDeclaration() {
  function ExampleStorageClassSpecifier (line 3743) | func ExampleStorageClassSpecifier() {
  function ExampleStorageClassSpecifier_case1 (line 3751) | func ExampleStorageClassSpecifier_case1() {
  function ExampleStorageClassSpecifier_case2 (line 3760) | func ExampleStorageClassSpecifier_case2() {
  function ExampleStorageClassSpecifier_case3 (line 3769) | func ExampleStorageClassSpecifier_case3() {
  function ExampleStorageClassSpecifier_case4 (line 3778) | func ExampleStorageClassSpecifier_case4() {
  function ExampleStructDeclaration (line 3787) | func ExampleStructDeclaration() {
  function ExampleStructDeclaration_case1 (line 3812) | func ExampleStructDeclaration_case1() {
  function ExampleStructDeclaration_case2 (line 3827) | func ExampleStructDeclaration_case2() {
  function ExampleStructDeclarationList (line 3853) | func ExampleStructDeclarationList() {
  function ExampleStructDeclarationList_case1 (line 3870) | func ExampleStructDeclarationList_case1() {
  function ExampleStructDeclarator (line 3900) | func ExampleStructDeclarator() {
  function ExampleStructDeclarator_case1 (line 3914) | func ExampleStructDeclarator_case1() {
  function ExampleStructDeclaratorList (line 3933) | func ExampleStructDeclaratorList() {
  function ExampleStructDeclaratorList_case1 (line 3949) | func ExampleStructDeclaratorList_case1() {
  function ExampleStructOrUnion (line 3978) | func ExampleStructOrUnion() {
  function ExampleStructOrUnion_case1 (line 3986) | func ExampleStructOrUnion_case1() {
  function ExampleStructOrUnionSpecifier (line 3995) | func ExampleStructOrUnionSpecifier() {
  function ExampleStructOrUnionSpecifier_case1 (line 4029) | func ExampleStructOrUnionSpecifier_case1() {
  function ExampleStructOrUnionSpecifier_case2 (line 4041) | func ExampleStructOrUnionSpecifier_case2() {
  function ExampleTranslationUnit (line 4054) | func ExampleTranslationUnit() {
  function ExampleTranslationUnit_case1 (line 4065) | func ExampleTranslationUnit_case1() {
  function ExampleTypeName (line 4083) | func ExampleTypeName() {
  function ExampleTypeQualifier (line 4097) | func ExampleTypeQualifier() {
  function ExampleTypeQualifier_case1 (line 4105) | func ExampleTypeQualifier_case1() {
  function ExampleTypeQualifier_case2 (line 4114) | func ExampleTypeQualifier_case2() {
  function ExampleTypeQualifierList (line 4123) | func ExampleTypeQualifierList() {
  function ExampleTypeQualifierList_case1 (line 4133) | func ExampleTypeQualifierList_case1() {
  function ExampleTypeQualifierListOpt (line 4149) | func ExampleTypeQualifierListOpt() {
  function ExampleTypeQualifierListOpt_case1 (line 4155) | func ExampleTypeQualifierListOpt_case1() {
  function ExampleTypeSpecifier (line 4167) | func ExampleTypeSpecifier() {
  function ExampleTypeSpecifier_case01 (line 4175) | func ExampleTypeSpecifier_case01() {
  function ExampleTypeSpecifier_case02 (line 4184) | func ExampleTypeSpecifier_case02() {
  function ExampleTypeSpecifier_case03 (line 4193) | func ExampleTypeSpecifier_case03() {
  function ExampleTypeSpecifier_case04 (line 4202) | func ExampleTypeSpecifier_case04() {
  function ExampleTypeSpecifier_case05 (line 4211) | func ExampleTypeSpecifier_case05() {
  function ExampleTypeSpecifier_case06 (line 4220) | func ExampleTypeSpecifier_case06() {
  function ExampleTypeSpecifier_case07 (line 4229) | func ExampleTypeSpecifier_case07() {
  function ExampleTypeSpecifier_case08 (line 4238) | func ExampleTypeSpecifier_case08() {
  function ExampleTypeSpecifier_case09 (line 4247) | func ExampleTypeSpecifier_case09() {
  function ExampleTypeSpecifier_case10 (line 4256) | func ExampleTypeSpecifier_case10() {
  function ExampleTypeSpecifier_case11 (line 4265) | func ExampleTypeSpecifier_case11() {
  function ExampleTypeSpecifier_case12 (line 4280) | func ExampleTypeSpecifier_case12() {
  function ExampleTypeSpecifier_case13 (line 4293) | func ExampleTypeSpecifier_case13() {
  function ExampleTypeSpecifier_case14 (line 4302) | func ExampleTypeSpecifier_case14() {
  function ExampleTypeSpecifier_case15 (line 4320) | func ExampleTypeSpecifier_case15() {
  function ExampleVolatileOpt (line 4341) | func ExampleVolatileOpt() {
  function ExampleVolatileOpt_case1 (line 4347) | func ExampleVolatileOpt_case1() {

FILE: cc.go
  constant fakeTime (line 49) | fakeTime = "__TESTING_TIME__"
  constant gccPredefine (line 51) | gccPredefine = `
  function ImportPath (line 188) | func ImportPath() (string, error) { return strutil.ImportPath() }
  function HostConfig (line 192) | func HostConfig(opts ...string) (predefined string, includePaths, sysInc...
  function HostCppConfig (line 206) | func HostCppConfig(cpp string, opts ...string) (predefined string, inclu...
  type tweaks (line 259) | type tweaks struct
    method doGccEmu (line 300) | func (t *tweaks) doGccEmu() *tweaks {
  function exampleAST (line 321) | func exampleAST(rule int, src string) interface{} {
  function ppParseString (line 370) | func ppParseString(fn, src string, report *xc.Report, tweaks *tweaks) (*...
  function ppParse (line 382) | func ppParse(fn string, report *xc.Report, tweaks *tweaks) (*Preprocessi...
  type Opt (line 425) | type Opt
  function KeepComments (line 428) | func KeepComments() Opt {
  function EnableBuiltinClassifyType (line 437) | func EnableBuiltinClassifyType() Opt {
  function Mode99c (line 442) | func Mode99c() Opt {
  function EnableBuiltinConstantP (line 451) | func EnableBuiltinConstantP() Opt {
  function EnableImplicitIntType (line 464) | func EnableImplicitIntType() Opt {
  function EnableOmitConditionalOperand (line 473) | func EnableOmitConditionalOperand() Opt {
  function EnableComputedGotos (line 483) | func EnableComputedGotos() Opt {
  function EnableUnsignedEnums (line 489) | func EnableUnsignedEnums() Opt {
  function EnableLegacyDesignators (line 498) | func EnableLegacyDesignators() Opt {
  function AllowCompatibleTypedefRedefinitions (line 509) | func AllowCompatibleTypedefRedefinitions() Opt {
  function EnableParenthesizedCompoundStatemen (line 518) | func EnableParenthesizedCompoundStatemen() Opt {
  function EnableImaginarySuffix (line 527) | func EnableImaginarySuffix() Opt {
  function EnableNonConstStaticInitExpressions (line 537) | func EnableNonConstStaticInitExpressions() Opt {
  function EnableAnonymousStructFields (line 550) | func EnableAnonymousStructFields() Opt {
  function EnableOmitFuncRetType (line 557) | func EnableOmitFuncRetType() Opt {
  function EnableOmitFuncArgTypes (line 564) | func EnableOmitFuncArgTypes() Opt {
  function EnableEmptyDeclarations (line 571) | func EnableEmptyDeclarations() Opt {
  function EnableIncludeNext (line 578) | func EnableIncludeNext() Opt {
  function EnableDefineOmitCommaBeforeDDD (line 585) | func EnableDefineOmitCommaBeforeDDD() Opt {
  function EnableAlternateKeywords (line 594) | func EnableAlternateKeywords() Opt {
  function EnableDlrInIdentifiers (line 601) | func EnableDlrInIdentifiers() Opt {
  function EnableEmptyDefine (line 608) | func EnableEmptyDefine() Opt {
  function EnableImplicitFuncDef (line 617) | func EnableImplicitFuncDef() Opt {
  function EnableEmptyStructs (line 624) | func EnableEmptyStructs() Opt {
  function EnableUndefExtraTokens (line 631) | func EnableUndefExtraTokens() Opt {
  function EnableWideEnumValues (line 638) | func EnableWideEnumValues() Opt {
  function EnableWideBitFieldTypes (line 646) | func EnableWideBitFieldTypes() Opt {
  function SysIncludePaths (line 654) | func SysIncludePaths(paths []string) Opt {
  function IncludePaths (line 668) | func IncludePaths(paths []string) Opt {
  function YyDebug (line 679) | func YyDebug(n int) Opt {
  function Cpp (line 686) | func Cpp(f func([]xc.Token)) Opt {
  function ErrLimit (line 694) | func ErrLimit(n int) Opt {
  function Trigraphs (line 699) | func Trigraphs() Opt { return func(lx *lexer) { lx.tweaks.enableTrigraph...
  function EnableAsm (line 702) | func EnableAsm() Opt { return func(lx *lexer) { lx.tweaks.enableAsm = tr...
  function EnableNoreturn (line 705) | func EnableNoreturn() Opt { return func(lx *lexer) { lx.tweaks.enableNor...
  function EnableTypeOf (line 708) | func EnableTypeOf() Opt { return func(lx *lexer) { lx.tweaks.enableTypeo...
  function EnableAlignOf (line 711) | func EnableAlignOf() Opt { return func(lx *lexer) { lx.tweaks.enableAlig...
  function EnableStaticAssert (line 714) | func EnableStaticAssert() Opt { return func(lx *lexer) { lx.tweaks.enabl...
  function CrashOnError (line 717) | func CrashOnError() Opt { return func(lx *lexer) { lx.report.PanicOnErro...
  function disableWarnings (line 719) | func disableWarnings() Opt      { return func(lx *lexer) { lx.tweaks.ena...
  function gccEmu (line 720) | func gccEmu() Opt               { return func(lx *lexer) { lx.tweaks.gcc...
  function getTweaks (line 721) | func getTweaks(dst *tweaks) Opt { return func(lx *lexer) { *dst = *lx.tw...
  function nopOpt (line 722) | func nopOpt() Opt               { return func(*lexer) {} }
  function preprocessOnly (line 723) | func preprocessOnly() Opt       { return func(lx *lexer) { lx.tweaks.pre...
  function devTest (line 725) | func devTest() Opt {
  function disablePredefinedLineMacro (line 729) | func disablePredefinedLineMacro() Opt {
  function Parse (line 737) | func Parse(predefine string, paths []string, m *Model, opts ...Opt) (*Tr...

FILE: cpp.go
  constant maxIncludeLevel (line 26) | maxIncludeLevel = 100
  constant sentinel (line 27) | sentinel        = -1
  type Macro (line 46) | type Macro struct
    method ReplacementToks (line 59) | func (m *Macro) ReplacementToks() (r []xc.Token) { return decodeTokens...
    method findArg (line 61) | func (m *Macro) findArg(nm int) int {
  type macros (line 75) | type macros struct
    method macros (line 88) | func (m *macros) macros() map[int]*Macro {
  function newMacros (line 81) | func newMacros() *macros {
  type tokenReader (line 115) | type tokenReader interface
  type tokenBuf (line 122) | type tokenBuf struct
    method eof (line 127) | func (t *tokenBuf) eof(bool) bool { return len(t.toks) == 0 }
    method peek (line 130) | func (t *tokenBuf) peek() xc.Token { return t.toks[0] }
    method read (line 133) | func (t *tokenBuf) read() xc.Token { r := t.peek(); t.toks = t.toks[1:...
    method unget (line 136) | func (t *tokenBuf) unget(toks []xc.Token) { t.toks = append(toks[:len(...
  type tokenPipe (line 138) | type tokenPipe struct
    method eof (line 150) | func (t *tokenPipe) eof(more bool) bool {
    method peek (line 188) | func (t *tokenPipe) peek() xc.Token { return t.in[0] }
    method read (line 191) | func (t *tokenPipe) read() xc.Token {
    method unget (line 199) | func (t *tokenPipe) unget(toks []xc.Token) {
    method flush (line 203) | func (t *tokenPipe) flush(final bool) {
  type pp (line 272) | type pp struct
    method pp2 (line 315) | func (p *pp) pp2(ch chan []xc.Token) {
    method checkCompatibleReplacementTokenList (line 327) | func (p *pp) checkCompatibleReplacementTokenList(tok xc.Token, oldList...
    method defineMacro (line 352) | func (p *pp) defineMacro(tok xc.Token, repl PPTokenList) {
    method defineFnMacro (line 381) | func (p *pp) defineFnMacro(tok xc.Token, il *IdentifierList, repl PPTo...
    method expand (line 465) | func (p *pp) expand(r tokenReader, handleDefined bool, w func([]xc.Tok...
    method expandDefined (line 504) | func (p *pp) expandDefined(tok xc.Token, r tokenReader, w func([]xc.To...
    method expandMacro (line 570) | func (p *pp) expandMacro(tok xc.Token, r tokenReader, m *Macro, handle...
    method pragmas (line 608) | func (p *pp) pragmas(toks []xc.Token) []xc.Token {
    method sanitize (line 664) | func (p *pp) sanitize(toks []xc.Token) []xc.Token {
    method expandLineNo (line 733) | func (p *pp) expandLineNo(toks []xc.Token) []xc.Token {
    method expandFnMacro (line 774) | func (p *pp) expandFnMacro(tok xc.Token, r tokenReader, m *Macro, hand...
    method parseMacroArgs (line 938) | func (p *pp) parseMacroArgs(r tokenReader) (args [][]xc.Token) {
    method parseMacroArg (line 974) | func (p *pp) parseMacroArg(r tokenReader) (arg []xc.Token, more bool) {
    method preprocessingFile (line 1008) | func (p *pp) preprocessingFile(n *PreprocessingFile) {
    method groupList (line 1019) | func (p *pp) groupList(n *GroupList) {
    method ifSection (line 1051) | func (p *pp) ifSection(n *IfSection) {
    method ifGroup (line 1059) | func (p *pp) ifGroup(n *IfGroup) bool {
    method elifGroupListOpt (line 1080) | func (p *pp) elifGroupListOpt(n *ElifGroupListOpt) bool {
    method elifGroupList (line 1088) | func (p *pp) elifGroupList(n *ElifGroupList) bool {
    method elifGroup (line 1098) | func (p *pp) elifGroup(n *ElifGroup) bool {
    method elseGroupOpt (line 1107) | func (p *pp) elseGroupOpt(n *ElseGroupOpt) {
    method groupListOpt (line 1115) | func (p *pp) groupListOpt(n *GroupListOpt) {
    method fixInclude (line 1123) | func (p *pp) fixInclude(toks []xc.Token) []xc.Token {
    method pragma1 (line 1149) | func (p *pp) pragma1(a []xc.Token) (t xc.Token, _ bool) {
    method pragma (line 1157) | func (p *pp) pragma(a []xc.Token) {
    method controlLine (line 1196) | func (p *pp) controlLine(n *ControlLine) {
  function newPP (line 289) | func newPP(ch chan []xc.Token, includes, sysIncludes []string, macros *m...
  function trimSpace (line 589) | func trimSpace(toks []xc.Token, removeTrailingComma bool) []xc.Token {
  function pasteToks (line 683) | func pasteToks(toks []xc.Token) []xc.Token {
  function normalizeToks (line 744) | func normalizeToks(toks []xc.Token) []xc.Token {
  function stringify (line 888) | func stringify(toks []xc.Token) xc.Token {
  function whitespace (line 915) | func whitespace(toks []xc.Token) []byte {

FILE: encoding.go
  constant intBits (line 20) | intBits  = mathutil.IntBits
  constant bitShift (line 21) | bitShift = intBits>>6 + 5
  constant bitMask (line 22) | bitMask  = intBits - 1
  constant scINITIAL (line 24) | scINITIAL = 0
  constant ccEOF (line 33) | ccEOF         = iota + 0x80
  constant _ (line 34) | _
  constant ccOther (line 35) | ccOther
  constant ccUCNDigit (line 36) | ccUCNDigit
  constant ccUCNNonDigit (line 37) | ccUCNNonDigit
  constant tsVoid (line 41) | tsVoid            = iota
  constant tsChar (line 42) | tsChar
  constant tsShort (line 43) | tsShort
  constant tsInt (line 44) | tsInt
  constant tsLong (line 45) | tsLong
  constant tsFloat (line 46) | tsFloat
  constant tsDouble (line 47) | tsDouble
  constant tsSigned (line 48) | tsSigned
  constant tsUnsigned (line 49) | tsUnsigned
  constant tsBool (line 50) | tsBool
  constant tsComplex (line 51) | tsComplex
  constant tsStructSpecifier (line 52) | tsStructSpecifier
  constant tsUnionSpecifier (line 53) | tsUnionSpecifier
  constant tsEnumSpecifier (line 54) | tsEnumSpecifier
  constant tsTypedefName (line 55) | tsTypedefName
  constant tsTypeof (line 56) | tsTypeof
  constant tsUintptr (line 57) | tsUintptr
  constant tsBits (line 61) | tsBits = 5
  constant tsMask (line 62) | tsMask = 1<<tsBits - 1
  constant saInline (line 67) | saInline = 1 << iota
  constant saTypedef (line 68) | saTypedef
  constant saExtern (line 69) | saExtern
  constant saStatic (line 70) | saStatic
  constant saAuto (line 71) | saAuto
  constant saRegister (line 72) | saRegister
  constant saConst (line 73) | saConst
  constant saRestrict (line 74) | saRestrict
  constant saVolatile (line 75) | saVolatile
  constant saNoreturn (line 76) | saNoreturn
  function attrString (line 79) | func attrString(attr int) string {
  type PPTokenList (line 119) | type PPTokenList
    method Pos (line 121) | func (p PPTokenList) Pos() token.Pos {
  type Linkage (line 130) | type Linkage
  constant None (line 134) | None Linkage = iota
  constant Internal (line 135) | Internal
  constant External (line 136) | External
  constant noTypeClass (line 141) | noTypeClass = iota - 1
  constant voidTypeClass (line 142) | voidTypeClass
  constant integerTypeClass (line 143) | integerTypeClass
  constant charTypeClass (line 144) | charTypeClass
  constant enumeralTypeClass (line 145) | enumeralTypeClass
  constant booleanTypeClass (line 146) | booleanTypeClass
  constant pointerTypeClass (line 147) | pointerTypeClass
  constant referenceTypeClass (line 148) | referenceTypeClass
  constant offsetTypeClass (line 149) | offsetTypeClass
  constant realTypeClass (line 150) | realTypeClass
  constant complexTypeClass (line 151) | complexTypeClass
  constant functionTypeClass (line 152) | functionTypeClass
  constant methodTypeClass (line 153) | methodTypeClass
  constant recordTypeClass (line 154) | recordTypeClass
  constant unionTypeClass (line 155) | unionTypeClass
  constant arrayTypeClass (line 156) | arrayTypeClass
  constant stringTypeClass (line 157) | stringTypeClass
  constant langTypeClass (line 158) | langTypeClass
  type Kind (line 195) | type Kind
    method CString (line 232) | func (k Kind) CString() string {
  constant Undefined (line 199) | Undefined Kind = iota
  constant Void (line 200) | Void
  constant Ptr (line 201) | Ptr
  constant UintPtr (line 202) | UintPtr
  constant Char (line 203) | Char
  constant SChar (line 204) | SChar
  constant UChar (line 205) | UChar
  constant Short (line 206) | Short
  constant UShort (line 207) | UShort
  constant Int (line 208) | Int
  constant UInt (line 209) | UInt
  constant Long (line 210) | Long
  constant ULong (line 211) | ULong
  constant LongLong (line 212) | LongLong
  constant ULongLong (line 213) | ULongLong
  constant Float (line 214) | Float
  constant Double (line 215) | Double
  constant LongDouble (line 216) | LongDouble
  constant Bool (line 217) | Bool
  constant FloatComplex (line 218) | FloatComplex
  constant DoubleComplex (line 219) | DoubleComplex
  constant LongDoubleComplex (line 220) | LongDoubleComplex
  constant Struct (line 221) | Struct
  constant Union (line 222) | Union
  constant Enum (line 223) | Enum
  constant TypedefName (line 224) | TypedefName
  constant Function (line 225) | Function
  constant Array (line 226) | Array
  constant typeof (line 227) | typeof
  constant kindMax (line 229) | kindMax
  type Scope (line 296) | type Scope
  constant ScopeFile (line 300) | ScopeFile Scope = iota
  constant ScopeBlock (line 301) | ScopeBlock
  constant ScopeMembers (line 302) | ScopeMembers
  constant ScopeParams (line 303) | ScopeParams
  type Namespace (line 307) | type Namespace
  constant NSIdentifiers (line 311) | NSIdentifiers Namespace = iota
  constant NSTags (line 312) | NSTags
  function isUCNDigit (line 524) | func isUCNDigit(r rune) bool {
  function isUCNNonDigit (line 528) | func isUCNNonDigit(r rune) bool {
  function rune2class (line 532) | func rune2class(r rune) (c int) {
  function toC (line 547) | func toC(t xc.Token, tw *tweaks) xc.Token {
  function tsEncode (line 616) | func tsEncode(a ...int) (r int) {
  function tsDecode (line 624) | func tsDecode(n int) (r []int) {
  method encodeToken (line 637) | func (l *lexer) encodeToken(tok xc.Token) {
  function decodeToken (line 648) | func decodeToken(p *[]byte, pos *token.Pos) xc.Token {
  function decodeTokens (line 666) | func decodeTokens(id PPTokenList, r []xc.Token, withSpaces bool) []xc.To...
  function tokVal (line 681) | func tokVal(t xc.Token) int {
  function TokSrc (line 703) | func TokSrc(t xc.Token) string {
  function decodeUCN (line 716) | func decodeUCN(runes []rune) (rune, int) {
  function decodeHexQuad (line 733) | func decodeHexQuad(runes []rune) int {
  function decodeHex (line 741) | func decodeHex(r rune) int {
  function decodeEscapeSequence (line 755) | func decodeEscapeSequence(runes []rune) (rune, int) {

FILE: etc.go
  type EnumConstant (line 56) | type EnumConstant struct
  type Specifier (line 64) | type Specifier interface
  type Type (line 84) | type Type interface
  type Member (line 190) | type Member struct
  type Parameter (line 203) | type Parameter struct
  function PrettyString (line 210) | func PrettyString(v interface{}) string {
  function position (line 214) | func position(pos token.Pos) token.Position { return fset.Position(pos) }
  type Binding (line 236) | type Binding struct
  type Bindings (line 242) | type Bindings struct
    method Scope (line 272) | func (b *Bindings) Scope() Scope { return b.kind }
    method merge (line 274) | func (b *Bindings) merge(c *Bindings) {
    method boot (line 285) | func (b *Bindings) boot(ns Namespace) map[int]Binding {
    method root (line 304) | func (b *Bindings) root() *Bindings {
    method Lookup (line 313) | func (b *Bindings) Lookup(ns Namespace, id int) Binding {
    method Lookup2 (line 320) | func (b *Bindings) Lookup2(ns Namespace, id int) (Binding, *Bindings) {
    method declareIdentifier (line 336) | func (b *Bindings) declareIdentifier(tok xc.Token, d *DirectDeclarator...
    method declareEnumTag (line 347) | func (b *Bindings) declareEnumTag(tok xc.Token, report *xc.Report) {
    method defineEnumTag (line 360) | func (b *Bindings) defineEnumTag(tok xc.Token, n Node, report *xc.Repo...
    method defineEnumConst (line 378) | func (b *Bindings) defineEnumConst(lx *lexer, tok xc.Token, v interfac...
    method declareStructTag (line 399) | func (b *Bindings) declareStructTag(tok xc.Token, report *xc.Report) {
    method defineStructTag (line 412) | func (b *Bindings) defineStructTag(tok xc.Token, n Node, report *xc.Re...
    method isTypedefName (line 432) | func (b *Bindings) isTypedefName(id int) bool {
    method lexerHack (line 441) | func (b *Bindings) lexerHack(tok, prev xc.Token) xc.Token { // https:/...
  function newBindings (line 264) | func newBindings(parent *Bindings, kind Scope) *Bindings {
  function errPos (line 452) | func errPos(a ...token.Pos) token.Pos {
  function isZero (line 462) | func isZero(v interface{}) bool { return !isNonZero(v) }
  function isNonZero (line 464) | func isNonZero(v interface{}) bool {
  function fromSlashes (line 487) | func fromSlashes(a []string) []string {
  type ctype (line 494) | type ctype struct
    method SetBits (line 505) | func (n *ctype) SetBits(b int) Type {
    method Bits (line 519) | func (n *ctype) Bits() int {
    method arrayDecay (line 532) | func (n *ctype) arrayDecay() *ctype {
    method setElements (line 536) | func (n *ctype) setElements(elems int) *ctype {
    method eq (line 556) | func (n *ctype) eq(m *ctype) (r bool) {
    method isCompatible (line 577) | func (n *ctype) isCompatible(m *ctype) (r bool) {
    method index (line 656) | func (n *ctype) index(d int) int { return len(n.dds) - 1 + d }
    method top (line 658) | func (n *ctype) top(d int) *DirectDeclarator {
    method AlignOf (line 663) | func (n *ctype) AlignOf() int {
    method unionCanAssignTo (line 711) | func (n *ctype) unionCanAssignTo(dst Type) bool {
    method CanAssignTo (line 727) | func (n *ctype) CanAssignTo(dst Type) bool {
    method RawDeclarator (line 834) | func (n *ctype) RawDeclarator() *Declarator {
    method Declarator (line 843) | func (n *ctype) Declarator() *Declarator {
    method Element (line 852) | func (n *ctype) Element() Type {
    method Kind (line 923) | func (n *ctype) Kind() Kind {
    method Member (line 960) | func (n *ctype) Member(nm int) (*Member, error) {
    method enumSpecifier (line 984) | func (n *ctype) enumSpecifier() *EnumSpecifier {
    method structOrUnionSpecifier (line 988) | func (n *ctype) structOrUnionSpecifier() *StructOrUnionSpecifier {
    method members (line 1020) | func (n *ctype) members(p *[]Member, l *StructDeclarationList) {
    method Members (line 1102) | func (n *ctype) Members() (r []Member, isIncomplete bool) {
    method Parameters (line 1121) | func (n *ctype) Parameters() ([]Parameter, bool) {
    method Pointer (line 1144) | func (n *ctype) Pointer() Type {
    method Result (line 1184) | func (n *ctype) Result() Type {
    method Elements (line 1231) | func (n *ctype) Elements() int {
    method EnumeratorList (line 1263) | func (n *ctype) EnumeratorList() (r []EnumConstant) {
    method SizeOf (line 1293) | func (n *ctype) SizeOf() int {
    method sizeOf (line 1350) | func (n *ctype) sizeOf(lx *lexer) int {
    method Specifier (line 1360) | func (n *ctype) Specifier() Specifier { return &spec{n.resultAttr, n.r...
    method String (line 1363) | func (n *ctype) String() string {
    method StructAlignOf (line 1449) | func (n *ctype) StructAlignOf() int {
    method structAlignOf (line 1499) | func (n *ctype) structAlignOf(lx *lexer) int {
    method Tag (line 1509) | func (n *ctype) Tag() int {
  type spec (line 1547) | type spec struct
    method IsAuto (line 1552) | func (s *spec) IsAuto() bool                       { return s.attr&saA...
    method IsConst (line 1553) | func (s *spec) IsConst() bool                      { return s.attr&saC...
    method IsExtern (line 1554) | func (s *spec) IsExtern() bool                     { return s.attr&saE...
    method IsInline (line 1555) | func (s *spec) IsInline() bool                     { return s.attr&saI...
    method IsRegister (line 1556) | func (s *spec) IsRegister() bool                   { return s.attr&saR...
    method IsRestrict (line 1557) | func (s *spec) IsRestrict() bool                   { return s.attr&saR...
    method IsStatic (line 1558) | func (s *spec) IsStatic() bool                     { return s.attr&saS...
    method IsTypedef (line 1559) | func (s *spec) IsTypedef() bool                    { return s.attr&saT...
    method IsVolatile (line 1560) | func (s *spec) IsVolatile() bool                   { return s.attr&saV...
    method TypedefName (line 1561) | func (s *spec) TypedefName() int                   { return 0 }
    method attrs (line 1562) | func (s *spec) attrs() int                         { return s.attr }
    method firstTypeSpecifier (line 1563) | func (s *spec) firstTypeSpecifier() *TypeSpecifier { panic("TODO") }
    method kind (line 1564) | func (s *spec) kind() Kind                         { return tsValid[s....
    method member (line 1565) | func (s *spec) member(int) (*Member, error)        { panic("TODO") }
    method str (line 1566) | func (s *spec) str() string                        { return specifierS...
    method typeSpecifiers (line 1567) | func (s *spec) typeSpecifiers() int                { return s.ts }
  function specifierString (line 1569) | func specifierString(sp Specifier) string {
  function align (line 1659) | func align(off, algn int) int {
  function finishBitField (line 1667) | func finishBitField(n Node, lx *lexer) {
  function IsArithmeticType (line 1727) | func IsArithmeticType(t Type) bool {
  function IsIntType (line 1758) | func IsIntType(t Type) bool {
  function elements (line 1783) | func elements(v interface{}, t Type) (int, error) {
  function toInt (line 1804) | func toInt(v interface{}) (int, error) {
  function dedupAbsPaths (line 1837) | func dedupAbsPaths(a []string) (r []string, _ error) {
  function isCompatibleParameters (line 1855) | func isCompatibleParameters(a, b []Parameter, va, vb bool) bool {
  function compositeType (line 1889) | func compositeType(a, b Type) (c Type, isA bool) {
  function eqTypes (line 1934) | func eqTypes(a, b Type) bool { return a.(*ctype).eq(b.(*ctype)) }
  function isStrLitID (line 1936) | func isStrLitID(v interface{}) bool {
  function nElem (line 1945) | func nElem(t Type) int {
  function unsigned (line 1961) | func unsigned(k Kind) Kind {
  function isEnum (line 1978) | func isEnum(tn ...*TypeName) bool {
  function memberOffsetRecursive (line 2009) | func memberOffsetRecursive(t Type, name int) (offset int, ty *Type, err ...
  function comment (line 2039) | func comment(tw *tweaks, p ...Node) int {
  function fixParams (line 2055) | func fixParams(in []Parameter) {
  function clean (line 2063) | func clean(paths []string) (r []string) {

FILE: generate.go
  function yy (line 19) | func yy() (nm string, err error) {
  function goyacc (line 45) | func goyacc(y string) (err error) {
  function main (line 87) | func main() {
  function main0 (line 93) | func main0() (err error) {
  function main2 (line 111) | func main2() (err error) {

FILE: global.go
  constant commentNotClosed (line 18) | commentNotClosed = "comment not closed"
  function init (line 31) | func init() {

FILE: kind_string.go
  constant _Kind_name (line 7) | _Kind_name = "UndefinedVoidPtrUintPtrCharSCharUCharShortUShortIntUIntLon...
  method String (line 11) | func (i Kind) String() string {

FILE: lexer.go
  constant lsZero (line 20) | lsZero             = iota
  constant lsBOL (line 21) | lsBOL
  constant lsDefine (line 22) | lsDefine
  constant lsSeekRParen (line 23) | lsSeekRParen
  constant lsTokens (line 24) | lsTokens
  constant lsUndef (line 25) | lsUndef
  constant lsConstExpr0 (line 26) | lsConstExpr0
  constant lsConstExpr (line 27) | lsConstExpr
  constant lsTranslationUnit0 (line 28) | lsTranslationUnit0
  constant lsTranslationUnit (line 29) | lsTranslationUnit
  type trigraphsReader (line 32) | type trigraphsReader struct
    method ReadRune (line 38) | func (t *trigraphsReader) ReadRune() (rune, int, error) { return lex.R...
    method ReadChar (line 40) | func (t *trigraphsReader) ReadChar() (c lex.Char, size int, err error) {
  type byteReader (line 49) | type byteReader struct
    method ReadRune (line 54) | func (b *byteReader) ReadRune() (r rune, size int, err error) {
  type lexer (line 62) | type lexer struct
    method push (line 161) | func (l *lexer) push(sc int) {
    method pop (line 175) | func (l *lexer) pop() {
    method pushScope (line 183) | func (l *lexer) pushScope(kind Scope) (old *Bindings) {
    method popScope (line 190) | func (l *lexer) popScope(tok xc.Token) (old, new *Bindings) {
    method popScopePos (line 194) | func (l *lexer) popScopePos(pos token.Pos) (old, new *Bindings) {
    method comment (line 213) | func (l *lexer) comment(general bool) {
    method scanChar (line 241) | func (l *lexer) scanChar() (c lex.Char) {
    method scanToken (line 279) | func (l *lexer) scanToken() (tok xc.Token) {
    method Lex (line 375) | func (l *lexer) Lex(lval *yySymType) int {
    method Error (line 463) | func (l *lexer) Error(msg string) {
    method Reduced (line 474) | func (l *lexer) Reduced(rule, state int, lval *yySymType) (stop bool) {
    method parsePPConstExpr0 (line 490) | func (l *lexer) parsePPConstExpr0(list PPTokenList, p *pp) (interface{...
    method parsePPConstExpr (line 524) | func (l *lexer) parsePPConstExpr(list PPTokenList, p *pp) bool {
  function newLexer (line 108) | func newLexer(nm string, sz int, r io.RuneReader, report *xc.Report, twe...
  function newSimpleLexer (line 151) | func newSimpleLexer(cpp func([]xc.Token), report *xc.Report, tweaks *twe...
  constant fsmZero (line 207) | fsmZero = iota
  constant fsmHasComment (line 208) | fsmHasComment

FILE: linkage_string.go
  constant _Linkage_name (line 7) | _Linkage_name = "NoneInternalExternal"
  method String (line 11) | func (i Linkage) String() string {

FILE: model.go
  type StringLitID (line 23) | type StringLitID
  type LongStringLitID (line 27) | type LongStringLitID
  type ComputedGotoID (line 31) | type ComputedGotoID
  type ModelItem (line 43) | type ModelItem struct
  type Model (line 51) | type Model struct
    method initialize (line 85) | func (m *Model) initialize(lx *lexer) {
    method typ (line 163) | func (m *Model) typ(k Kind) Type {
    method enumValueToInt (line 208) | func (m *Model) enumValueToInt(v interface{}) (interface{}, bool) {
    method sanityCheck (line 249) | func (m *Model) sanityCheck() error {
    method MustConvert (line 364) | func (m *Model) MustConvert(v interface{}, typ Type) interface{} {
    method value2 (line 1117) | func (m *Model) value2(v interface{}, typ Type) (interface{}, Type) {
    method charConst (line 1121) | func (m *Model) charConst(lx *lexer, t xc.Token) (interface{}, Type) {
    method getSizeType (line 1178) | func (m *Model) getSizeType(lx *lexer) Type {
    method getPtrDiffType (line 1209) | func (m *Model) getPtrDiffType(lx *lexer) Type {
    method getLongStrType (line 1240) | func (m *Model) getLongStrType(lx *lexer, tok xc.Token) Type {
    method strConst (line 1262) | func (m *Model) strConst(lx *lexer, t xc.Token) (interface{}, Type) {
    method floatConst (line 1304) | func (m *Model) floatConst(lx *lexer, t xc.Token) (interface{}, Type) {
    method intConst (line 1372) | func (m *Model) intConst(lx *lexer, t xc.Token) (interface{}, Type) {
    method cBool (line 1438) | func (m *Model) cBool(v bool) interface{} {
    method binOp (line 1446) | func (m *Model) binOp(lx *lexer, a, b operand) (interface{}, interface...
    method BinOpType (line 1465) | func (m *Model) BinOpType(a, b Type) Type {
    method promote (line 1559) | func (m *Model) promote(t Type) Type {
    method makeType (line 1567) | func (m *Model) makeType(lx *lexer, attr int, ts ...int) Type {
    method makeDeclarator (line 1572) | func (m *Model) makeDeclarator(attr int, ts ...int) *Declarator {
    method checkArithmeticType (line 1580) | func (m *Model) checkArithmeticType(lx *lexer, a ...operand) (r bool) {
    method checkIntegerOrBoolType (line 1592) | func (m *Model) checkIntegerOrBoolType(lx *lexer, a ...operand) (r boo...

FILE: namespace_string.go
  constant _Namespace_name (line 7) | _Namespace_name = "NSIdentifiersNSTags"
  method String (line 11) | func (i Namespace) String() string {

FILE: parser.go
  type yySymType (line 55) | type yySymType struct
  type yyXError (line 63) | type yyXError struct
  constant yyDefault (line 68) | yyDefault           = 57460
  constant yyEofCode (line 69) | yyEofCode           = 57344
  constant ADDASSIGN (line 70) | ADDASSIGN           = 57346
  constant ALIGNOF (line 71) | ALIGNOF             = 57347
  constant ANDAND (line 72) | ANDAND              = 57348
  constant ANDASSIGN (line 73) | ANDASSIGN           = 57349
  constant ARROW (line 74) | ARROW               = 57350
  constant ASM (line 75) | ASM                 = 57351
  constant AUTO (line 76) | AUTO                = 57352
  constant BOOL (line 77) | BOOL                = 57353
  constant BREAK (line 78) | BREAK               = 57354
  constant CASE (line 79) | CASE                = 57355
  constant CAST (line 80) | CAST                = 57356
  constant CHAR (line 81) | CHAR                = 57357
  constant CHARCONST (line 82) | CHARCONST           = 57358
  constant COMPLEX (line 83) | COMPLEX             = 57359
  constant CONST (line 84) | CONST               = 57360
  constant CONSTANT_EXPRESSION (line 85) | CONSTANT_EXPRESSION = 1048577
  constant CONTINUE (line 86) | CONTINUE            = 57361
  constant DDD (line 87) | DDD                 = 57362
  constant DEC (line 88) | DEC                 = 57363
  constant DEFAULT (line 89) | DEFAULT             = 57364
  constant DIVASSIGN (line 90) | DIVASSIGN           = 57365
  constant DO (line 91) | DO                  = 57366
  constant DOUBLE (line 92) | DOUBLE              = 57367
  constant ELSE (line 93) | ELSE                = 57368
  constant ENUM (line 94) | ENUM                = 57369
  constant EQ (line 95) | EQ                  = 57370
  constant EXTERN (line 96) | EXTERN              = 57371
  constant FLOAT (line 97) | FLOAT               = 57372
  constant FLOATCONST (line 98) | FLOATCONST          = 57373
  constant FOR (line 99) | FOR                 = 57374
  constant GEQ (line 100) | GEQ                 = 57375
  constant GOTO (line 101) | GOTO                = 57376
  constant IDENTIFIER (line 102) | IDENTIFIER          = 57377
  constant IDENTIFIER_LPAREN (line 103) | IDENTIFIER_LPAREN   = 57378
  constant IDENTIFIER_NONREPL (line 104) | IDENTIFIER_NONREPL  = 57379
  constant IF (line 105) | IF                  = 57380
  constant INC (line 106) | INC                 = 57381
  constant INLINE (line 107) | INLINE              = 57382
  constant INT (line 108) | INT                 = 57383
  constant INTCONST (line 109) | INTCONST            = 57384
  constant LEQ (line 110) | LEQ                 = 57385
  constant LONG (line 111) | LONG                = 57386
  constant LONGCHARCONST (line 112) | LONGCHARCONST       = 57387
  constant LONGSTRINGLITERAL (line 113) | LONGSTRINGLITERAL   = 57388
  constant LSH (line 114) | LSH                 = 57389
  constant LSHASSIGN (line 115) | LSHASSIGN           = 57390
  constant MODASSIGN (line 116) | MODASSIGN           = 57391
  constant MULASSIGN (line 117) | MULASSIGN           = 57392
  constant NEQ (line 118) | NEQ                 = 57393
  constant NOELSE (line 119) | NOELSE              = 57394
  constant NORETURN (line 120) | NORETURN            = 57395
  constant NOSEMI (line 121) | NOSEMI              = 57396
  constant ORASSIGN (line 122) | ORASSIGN            = 57397
  constant OROR (line 123) | OROR                = 57398
  constant PPDEFINE (line 124) | PPDEFINE            = 57399
  constant PPELIF (line 125) | PPELIF              = 57400
  constant PPELSE (line 126) | PPELSE              = 57401
  constant PPENDIF (line 127) | PPENDIF             = 57402
  constant PPERROR (line 128) | PPERROR             = 57403
  constant PPHASH_NL (line 129) | PPHASH_NL           = 57404
  constant PPHEADER_NAME (line 130) | PPHEADER_NAME       = 57405
  constant PPIF (line 131) | PPIF                = 57406
  constant PPIFDEF (line 132) | PPIFDEF             = 57407
  constant PPIFNDEF (line 133) | PPIFNDEF            = 57408
  constant PPINCLUDE (line 134) | PPINCLUDE           = 57409
  constant PPINCLUDE_NEXT (line 135) | PPINCLUDE_NEXT      = 57410
  constant PPLINE (line 136) | PPLINE              = 57411
  constant PPNONDIRECTIVE (line 137) | PPNONDIRECTIVE      = 57412
  constant PPNUMBER (line 138) | PPNUMBER            = 57413
  constant PPOTHER (line 139) | PPOTHER             = 57414
  constant PPPASTE (line 140) | PPPASTE             = 57415
  constant PPPRAGMA (line 141) | PPPRAGMA            = 57416
  constant PPUNDEF (line 142) | PPUNDEF             = 57417
  constant PREPROCESSING_FILE (line 143) | PREPROCESSING_FILE  = 1048576
  constant REGISTER (line 144) | REGISTER            = 57418
  constant RESTRICT (line 145) | RESTRICT            = 57419
  constant RETURN (line 146) | RETURN              = 57420
  constant RSH (line 147) | RSH                 = 57421
  constant RSHASSIGN (line 148) | RSHASSIGN           = 57422
  constant SHORT (line 149) | SHORT               = 57423
  constant SIGNED (line 150) | SIGNED              = 57424
  constant SIZEOF (line 151) | SIZEOF              = 57425
  constant STATIC (line 152) | STATIC              = 57426
  constant STATIC_ASSERT (line 153) | STATIC_ASSERT       = 57427
  constant STRINGLITERAL (line 154) | STRINGLITERAL       = 57428
  constant STRUCT (line 155) | STRUCT              = 57429
  constant SUBASSIGN (line 156) | SUBASSIGN           = 57430
  constant SWITCH (line 157) | SWITCH              = 57431
  constant TRANSLATION_UNIT (line 158) | TRANSLATION_UNIT    = 1048578
  constant TYPEDEF (line 159) | TYPEDEF             = 57432
  constant TYPEDEFNAME (line 160) | TYPEDEFNAME         = 57433
  constant TYPEOF (line 161) | TYPEOF              = 57434
  constant UNARY (line 162) | UNARY               = 57435
  constant UNION (line 163) | UNION               = 57436
  constant UNSIGNED (line 164) | UNSIGNED            = 57437
  constant VOID (line 165) | VOID                = 57438
  constant VOLATILE (line 166) | VOLATILE            = 57439
  constant WHILE (line 167) | WHILE               = 57440
  constant XORASSIGN (line 168) | XORASSIGN           = 57441
  constant yyErrCode (line 169) | yyErrCode           = 57345
  constant yyMaxDepth (line 171) | yyMaxDepth = 200
  constant yyTabOfs (line 172) | yyTabOfs   = -328
  type yyLexer (line 2410) | type yyLexer interface
  type yyLexerEx (line 2415) | type yyLexerEx interface
  function yySymName (line 2420) | func yySymName(c int) (s string) {
  function yylex1 (line 2433) | func yylex1(yylex yyLexer, lval *yySymType) (n int) {
  function yyParse (line 2444) | func yyParse(yylex yyLexer) int {

FILE: scanner.go
  constant _ (line 18) | _           = iota
  constant scCOMMENT (line 19) | scCOMMENT
  constant scDEFINE (line 20) | scDEFINE
  constant scDIRECTIVE (line 21) | scDIRECTIVE
  constant scHEADER (line 22) | scHEADER
  method scan (line 25) | func (l *lexer) scan() (r int) {

FILE: scope_string.go
  constant _Scope_name (line 7) | _Scope_name = "ScopeFileScopeBlockScopeMembersScopeParams"
  method String (line 11) | func (i Scope) String() string {

FILE: testdata/array.c
  function f (line 3) | void f() {

FILE: testdata/func.c
  function f (line 1) | void f(char *) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/strct-layout.c
  type T (line 1) | typedef struct

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-align.c
  type T (line 1) | typedef union
  function T (line 19) | T

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-big.c
  type T (line 1) | typedef struct {int a, b, c, d, e;} T;
  function T (line 15) | T

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-i.c
  type T (line 1) | typedef struct {int a;} T;
  function T (line 15) | T

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-ic.c
  type T (line 1) | typedef struct {int a; char b;} T;
  function T (line 15) | T

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-ii.c
  type T (line 1) | typedef struct {int a, b;} T;
  function T (line 15) | T

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-ret-1.c
  type T (line 1) | typedef struct { int re; int im; } T;
  function T (line 6) | T

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000120-1.c
  function pad_home1 (line 6) | static void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000120-2.c
  function odd (line 3) | extern __inline__ int
  function foo (line 9) | int
  function odd (line 15) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000127-1.c
  function foo (line 2) | int foo(void) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000211-1.c
  type __SIZE_TYPE__ (line 1) | typedef __SIZE_TYPE__ size_t;
  type Bufbyte (line 2) | typedef unsigned char Bufbyte;
  type Bytecount (line 3) | typedef int Bytecount;
  type Charcount (line 4) | typedef int Charcount;
  type Lstream (line 5) | typedef struct lstream Lstream;
  type Lisp_Object (line 6) | typedef int  Lisp_Object;
  function TRUE_LIST_P (line 8) | extern inline  int
  type Lisp_String (line 13) | struct Lisp_String
  type Lstream_buffering (line 18) | typedef enum lstream_buffering
  type lstream (line 22) | struct lstream
  type printf_spec (line 32) | typedef struct printf_spec printf_spec;
  type printf_spec (line 33) | struct printf_spec
  type printf_arg (line 36) | typedef union printf_arg printf_arg;
  type printf_spec_dynarr (line 40) | typedef struct
  type printf_arg_dynarr (line 44) | typedef struct
  function doprnt_1 (line 47) | static void
  function Bytecount (line 82) | static Bytecount

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000211-3.c
  function f_clos (line 1) | void f_clos(int x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000224-1.c
  type Lisp_Type (line 1) | enum Lisp_Type
  type Lisp_Object (line 11) | typedef
  function init_device_faces (line 24) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000314-1.c
  function main (line 5) | int main ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000319-1.c
  type foo (line 1) | struct foo

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000326-1.c
  function sys_reboot (line 1) | long sys_reboot(int magic1, int magic2, int cmd, void * arg)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000326-2.c
  function foo (line 4) | void foo (int x, int y)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000329-1.c
  function giop_encode_ulong (line 3) | inline
  function time_giop_encode (line 22) | static
  function main (line 35) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000403-1.c
  type utsname (line 1) | struct utsname {
  function uname (line 5) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000403-2.c
  function foo (line 1) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000405-1.c
  function foo (line 9) | double

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000405-2.c
  function bar (line 3) | void bar (unsigned long l)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000405-3.c
  type foo (line 1) | struct foo {
  function foo (line 5) | int foo (struct foo *ptr, int idx, void *pointer)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000412-1.c
  type s1 (line 1) | typedef struct {
  function f (line 8) | void f(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000412-2.c
  function f (line 3) | int f(int idx) { return (strlen(list[idx])); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000420-1.c
  type z_candidate (line 1) | struct z_candidate { struct z_candidate *next;int viable;}
  type z_candidate (line 4) | struct z_candidate
  type z_candidate (line 8) | struct z_candidate

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000420-2.c
  type x (line 1) | struct x { int a, b, c; }
  type x (line 3) | struct x
  type x (line 4) | struct x
  function foo (line 6) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000427-1.c
  function ConvertFor3dDriver (line 3) | void ConvertFor3dDriver (int requirePO2, int maxAspect)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000502-1.c
  function minimum (line 1) | static int minimum(int a, int b)
  function foo (line 9) | static inline int foo(void)
  function bar (line 14) | static int bar(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000504-1.c
  type foo (line 1) | struct foo {
  function func (line 6) | int func(struct foo *foo, int a)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000511-1.c
  type X (line 1) | typedef struct {
  function z (line 6) | int z (void)
  function main (line 15) | int main (void)
  function f (line 25) | int f(X x, X y)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000517-1.c
  function test (line 3) | void test ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000518-1.c
  function test (line 5) | extern __inline__ void test()
  function dotest (line 16) | void dotest()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000605-1.c
  type foo (line 9) | typedef void foo;
  function baz (line 11) | void baz(void)
  function x (line 18) | int x()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000606-1.c
  type foo (line 1) | typedef struct _foo foo;
  type _foo (line 3) | struct _foo {
  function baz (line 7) | void baz(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000609-1.c
  function main (line 1) | int main ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000629-1.c
  type a (line 1) | struct a
  function foo (line 6) | void
  function bar (line 18) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000701-1.c
  function dr106_1 (line 1) | void
  function dr106_2 (line 9) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000717-1.c
  function inner_product (line 1) | short

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000718.c
  function baz (line 4) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000728-1.c
  type clock (line 1) | struct clock {
  function foo (line 5) | int foo(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000802-1.c
  type foo (line 1) | struct foo {
  type foo (line 7) | struct foo
  function bar (line 11) | void bar(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000803-1.c
  function gl_yank (line 4) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
  function f (line 10) | __complex__ long long f ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000818-1.c
  function foo (line 1) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000825-1.c
  type s32 (line 1) | typedef signed int      s32;
  type s64 (line 2) | typedef signed long     s64;
  type u32 (line 3) | typedef unsigned int    u32;
  type u64 (line 4) | typedef unsigned long   u64;
  function u32 (line 6) | extern __inline__ u32 foobar(int logmask)
  function u32 (line 16) | u32 good(u32 var)
  function u32 (line 26) | u32 fails(u32 *var)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000827-1.c
  function foo (line 4) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000922-1.c
  function quick_doit (line 2) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000923-1.c
  function foo (line 5) | void foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001018-1.c
  function foo (line 1) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001024-1.c
  type __SIZE_TYPE__ (line 4) | typedef __SIZE_TYPE__ size_t;
  type Baz (line 8) | struct Baz
  function quux (line 10) | void quux(struct Baz *context)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001109-1.c
  type foo (line 1) | typedef struct _foo foo;
  type _foo (line 3) | struct _foo {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001109-2.c
  type foo (line 1) | struct foo
  type foo (line 2) | struct foo {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001121-1.c
  function foo (line 3) | int foo(int x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001123-1.c
  type __builtin_va_list (line 2) | typedef __builtin_va_list __gnuc_va_list;
  type __gnuc_va_list (line 3) | typedef __gnuc_va_list va_list;
  type X (line 5) | struct X { int y; }
  function func (line 7) | void func(va_list va)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001123-2.c
  function bar (line 14) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001205-1.c
  function rdfpcr (line 3) | static inline unsigned long rdfpcr(void)
  function swcr_update_status (line 10) | static inline unsigned long
  function osf_getsysinfo (line 18) | unsigned long osf_getsysinfo(unsigned long flags)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001212-1.c
  type ld (line 1) | typedef struct
  function ld (line 6) | ld a (ld x, ld y)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001221-1.c
  function foo (line 2) | static void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001222-1.c
  function __complex__ (line 2) | double __complex__

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
  function foo (line 24) | unsigned foo(int x[64], int y[64])

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/200031109-1.c
  function t (line 5) | int t(int m)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010102-1.c
  type _obstack_chunk (line 9) | struct _obstack_chunk
  type obstack (line 16) | struct obstack
  type obstack (line 33) | struct obstack
  type fooalign (line 35) | struct fooalign {char x; double d;}
  function _obstack_newchunk (line 58) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010107-1.c
  function foo (line 3) | void foo(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010112-1.c
  function f (line 12) | void f() {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010114-1.c
  type x (line 4) | typedef int x;
  function proc (line 5) | void proc(int (*x)(void)) {}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010117-1.c
  function baz (line 3) | void baz (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010117-2.c
  function baz (line 3) | void baz (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010118-1.c
  function bar (line 1) | static unsigned int bar(void *h, unsigned int n)
  function baz (line 7) | static void baz(unsigned int *x)
  function foo (line 12) | long

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010124-1.c
  type s (line 8) | struct s { int a; int b; }
  type s (line 9) | struct s
  type s (line 9) | struct s

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010202-1.c
  function foo (line 3) | int foo (int n, char m[1][n])

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010209-1.c
  function main (line 3) | int main (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010226-1.c
  function foo (line 7) | int foo (void *a, int b)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010227-1.c
  function foo (line 1) | void foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010320-1.c
  type asection (line 1) | typedef struct sec {
  function pe_print_pdata (line 14) | static void pe_print_pdata (asection *section)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010326-1.c
  function foo (line 4) | void foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010328-1.c
  type __SIZE_TYPE__ (line 1) | typedef __SIZE_TYPE__ size_t;
  type __u_int (line 2) | typedef unsigned int __u_int;
  type __u_long (line 3) | typedef unsigned long __u_long;
  type __u_quad_t (line 5) | __extension__ typedef unsigned long long int __u_quad_t;
  type __quad_t (line 6) | __extension__ typedef long long int __quad_t;
  type __fsid_t (line 8) | typedef struct
  type __blksize_t (line 13) | typedef long int __blksize_t;
  type __blkcnt_t (line 14) | typedef long int __blkcnt_t;
  type __quad_t (line 15) | typedef __quad_t __blkcnt64_t;
  type __u_long (line 16) | typedef __u_long __fsblkcnt_t;
  type __u_quad_t (line 17) | typedef __u_quad_t __fsblkcnt64_t;
  type __u_long (line 18) | typedef __u_long __fsfilcnt_t;
  type __u_quad_t (line 19) | typedef __u_quad_t __fsfilcnt64_t;
  type __u_quad_t (line 20) | typedef __u_quad_t __ino64_t;
  type statfs (line 25) | struct statfs
  type statfs64 (line 42) | struct statfs64
  type statfs (line 56) | struct statfs
  type statfs64 (line 57) | struct statfs64
  function __statfs64 (line 60) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010329-1.c
  function foo (line 8) | union u foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010404-1.c
  function foo (line 9) | void foo ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010408-1.c
  type win (line 1) | struct win
  type win (line 2) | struct win
  type auser (line 7) | struct auser
  type comm (line 9) | struct comm
  type comm (line 15) | struct comm
  type auser (line 19) | struct auser
  type comm (line 19) | struct comm
  type auser (line 20) | struct auser
  type auser (line 20) | struct auser
  type win (line 20) | struct win
  function AclSetPerm (line 23) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010421-1.c
  function residual (line 3) | void residual ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010423-1.c
  function fn (line 12) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010426-1.c
  function foo (line 5) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010503-1.c
  function foo (line 4) | void
  function bar (line 13) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010518-1.c
  type insn_code (line 6) | enum insn_code
  type rtx_def (line 12) | struct rtx_def
  type machine_mode (line 14) | enum machine_mode
  type HARD_REG_ELT_TYPE (line 20) | typedef unsigned long long HARD_REG_ELT_TYPE;
  type HARD_REG_ELT_TYPE (line 21) | typedef HARD_REG_ELT_TYPE HARD_REG_SET[((77 + (8 * 8) - 1) / (8 * 8))];
  type rtx_code (line 23) | enum rtx_code
  type addr_diff_vec_flags (line 31) | typedef struct
  type rtunion (line 44) | typedef union rtunion_def
  type rtx_def (line 60) | struct rtx_def
  type reload_type (line 76) | enum reload_type
  type reload (line 85) | struct reload
  type insn_chain (line 111) | struct insn_chain
  type reload (line 119) | struct reload
  function emit_reload_insns (line 128) | static void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010518-2.c
  function foo (line 10) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010525-1.c
  function kind_varread (line 2) | static int kind_varread(char *str)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010605-1.c
  function main (line 1) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010605-2.c
  type uu (line 6) | typedef union u uu;
  function foo (line 10) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010605-3.c
  type A (line 1) | struct A { unsigned long buf[100]; }
  function foo (line 2) | int foo(unsigned int *x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010610-1.c
  function main (line 8) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010611-1.c
  type _IO_FILE (line 6) | struct _IO_FILE {
  type __FILE (line 10) | typedef struct _IO_FILE __FILE;
  type _IO_FILE (line 11) | typedef struct _IO_FILE _IO_FILE;
  type wchar_t (line 12) | typedef long int wchar_t;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010711-1.c
  type value (line 1) | typedef unsigned long long value;
  function foo (line 3) | void foo (value *v) {}
  function test (line 5) | void test ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010711-2.c
  type value (line 1) | typedef unsigned long long value;
  function foo (line 3) | void foo (value *v) {}
  function test (line 5) | void test ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010824-1.c
  function f (line 1) | void f(int n)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010903-1.c
  type A (line 1) | struct A {
  function foo (line 5) | static inline void foo(struct A *x)
  function bar (line 10) | static inline void bar(struct A *x)
  type B (line 15) | struct B { char buf[640]; struct A a; }
  type B (line 16) | struct B
  function baz (line 18) | int baz(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010903-2.c
  function rpmatch (line 4) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011010-1.c
  function foo (line 4) | int foo ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011023-1.c
  function bar (line 5) | void bar (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011029-1.c
  function bar (line 5) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011106-2.c
  type s (line 5) | struct s { char c; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011109-1.c
  type S (line 1) | typedef struct { short x[4]; } S;
  type T (line 2) | typedef struct { unsigned int a, b, c; S *d; } T;
  function T (line 8) | T *die (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011114-2.c
  type D (line 1) | typedef struct { int c, d, e, f, g; } D;
  function foo (line 4) | void foo (D *y)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011114-3.c
  type C (line 1) | typedef struct { int s, t; } C;
  function baz (line 6) | int baz (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011114-4.c
  function foo (line 1) | static inline int foo (long x)
  function bar (line 16) | static inline int bar (unsigned long x)
  function baz (line 31) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011119-1.c
  function foo (line 8) | extern inline int foo (void) { return 23; }
  function xxx (line 10) | int xxx(void) { return 23; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011119-2.c
  function foo (line 8) | extern inline int foo (void) { return 23; }
  function bar (line 9) | int bar (void) { return foo (); }
  function baz (line 11) | int baz (void) { return foo (); }
  function xxx (line 13) | int xxx(void) { return 23; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011130-1.c
  type S (line 1) | struct S { int i; }
  type S (line 2) | struct S
  type S (line 3) | struct S
  function foo (line 4) | void foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011130-2.c
  type S0 (line 9) | typedef struct {
  type S1 (line 14) | typedef struct {
  function foo (line 24) | int foo (S1 *x, float y)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011205-1.c
  function foo (line 5) | long foo()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011217-1.c
  type pt (line 5) | typedef struct { long p; } pt;
  function pt (line 7) | inline pt f (pt _p)
  function mmap_mem (line 14) | static int mmap_mem (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011217-2.c
  function finite (line 5) | inline int
  function main (line 13) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011218-1.c
  type S (line 5) | struct S {
  function foo (line 10) | void foo (struct S *x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011219-1.c
  function foo (line 20) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011219-2.c
  type S (line 4) | struct S {
  function foo (line 11) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011229-1.c
  type s0 (line 3) | struct s0
  type s1 (line 7) | struct s1
  type s5 (line 12) | struct s5
  type s2 (line 17) | struct s2
  type s3 (line 21) | struct s3
  type s4 (line 26) | struct s4
  type s1 (line 45) | struct s1
  type s4 (line 46) | struct s4
  function image_render_color (line 47) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011229-2.c
  function foo (line 7) | void foo ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020103-1.c
  type A (line 6) | struct A
  function bar (line 11) | void bar (struct A *x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020106-1.c
  function foo (line 3) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020109-1.c
  type A (line 5) | typedef struct A
  function foo (line 13) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020109-2.c
  type UNI02 (line 1) | typedef union
  type srt_dat_t (line 9) | struct srt_dat_t
  type srt_dat_t (line 16) | struct srt_dat_t
  function extern_test (line 17) | void
  function main (line 25) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020110.c
  function foo (line 6) | void foo() {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020116-1.c
  function main (line 6) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020120-1.c
  type A (line 4) | struct A
  type B (line 10) | struct B
  type A (line 15) | struct A
  type A (line 16) | struct A
  function inl (line 18) | static inline unsigned int
  function foo (line 33) | void foo (struct B *x, int y, const float *z)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020121-1.c
  type display (line 4) | struct display {
  type disphist (line 10) | struct disphist {
  function StartDisplay (line 22) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020129-1.c
  type A (line 3) | typedef struct
  function foo (line 12) | void foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020206-1.c
  type A (line 6) | typedef struct {
  function foo (line 10) | unsigned int foo (A *x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020210-1.c
  function f (line 2) | void f(int a, struct {int b[a];} c) {}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020304-1.c
  type pair (line 8) | struct pair {
  type vector (line 12) | struct vector {
  function obj_t (line 31) | obj_t

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020304-2.c
  function foo (line 5) | unsigned char

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020309-1.c
  function sub1 (line 1) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020309-2.c
  type A (line 4) | typedef union
  function foo (line 10) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020312-1.c
  type A (line 5) | typedef struct { unsigned long a; unsigned int b, c; } A;
  type B (line 6) | typedef struct { unsigned long a; A *b; int c; } B;
  function bar (line 8) | static inline unsigned int
  function foo (line 16) | int foo (B *x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020314-1.c
  type tux_req_t (line 1) | typedef struct tux_req_struct tux_req_t;
  type tux_req_struct (line 2) | struct tux_req_struct
  function user_send_buffer (line 11) | void user_send_buffer (tux_req_t *req, int cachemiss)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020315-1.c
  function sgt (line 6) | int sgt (char *a, char *b, int c, int d)
  function dgt (line 11) | long dgt (char *a, char *b, int c, int d)
  function sne (line 16) | int sne (char *a, char *b, int c, int d)
  function dne (line 21) | long dne (char *a, char *b, int c, int d)
  function seq (line 26) | int seq (char *a, char *b, int c, int d)
  function deq (line 31) | long deq (char *a, char *b, int c, int d)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020318-1.c
  function foo (line 5) | void foo (c)
  function baz (line 13) | void baz (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020319-1.c
  type uch (line 5) | typedef unsigned char uch;
  function zip (line 11) | int zip(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020320-1.c
  function foo (line 8) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020323-1.c
  type A (line 4) | struct A
  type A (line 10) | struct A
  function foo (line 12) | unsigned int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020330-1.c
  function foo (line 20) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020409-1.c
  function f (line 5) | int f(int i)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020415-1.c
  function andop (line 6) | double
  function orop (line 12) | double
  function notop (line 18) | double

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020418-1.c
  function foo (line 9) | double foo (void)
  function bar (line 15) | double bar (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020530-1.c
  function bar1 (line 6) | int bar1 (void)
  function bar2 (line 12) | int bar2 (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
  function foo (line 13) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020605-1.c
  function f (line 5) | void f (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020701-1.c
  type __SIZE_TYPE__ (line 5) | typedef __SIZE_TYPE__ size_t;
  type t1 (line 12) | typedef enum { A, B, C } t1;
  function t1 (line 15) | static t1

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020706-1.c
  type S1 (line 4) | typedef struct s1
  type s1 (line 10) | struct s1
  function crashIt (line 18) | unsigned int crashIt()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020706-2.c
  function crashIt (line 6) | void crashIt(int id, FUNC_P *func, unsigned char *funcparm)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020709-1.c
  function bar (line 3) | void bar (char *s)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020710-1.c
  function foo (line 7) | void foo (int *x, unsigned int y)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020715-1.c
  function scale (line 8) | void scale(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020807-1.c
  function foo (line 4) | static int
  function bar (line 11) | static void
  function baz (line 17) | static inline void
  function test (line 30) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020910-1.c
  type XX (line 8) | typedef struct {
  function foo (line 15) | static void foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020926-1.c
  function bar (line 11) | float bar(int i1, int i2)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020927-1.c
  function foo (line 5) | int
  function bar (line 21) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020930-1.c
  function expm1f (line 3) | float expm1f(float x) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021001-1.c
  function foo (line 1) | int foo (double x, double y)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021007-1.c
  function foo (line 6) | void foo ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021008-1.c
  function main (line 3) | int main(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021015-1.c
  function f (line 5) | void f ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021015-2.c
  function f (line 4) | int f (char *p, char *q, int i)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021103-1.c
  function foo (line 5) | void foo(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021108-1.c
  function main (line 3) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021110.c
  type empty (line 4) | struct empty {
  function foo (line 7) | void foo(struct empty *p)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021119-1.c
  function foo (line 7) | void foo()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021120-1.c
  function foo (line 9) | extern int inline foo () { return 0; }
  function bar (line 10) | extern int inline bar () { return 0; }
  function bar (line 11) | static int inline bar () { return foo(); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021120-2.c
  function foo (line 9) | extern int inline foo () { return 0; }
  function bar (line 10) | extern int inline bar () { return 0; }
  function bar (line 11) | static int bar () { return foo(); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021124-1.c
  function foo (line 4) | unsigned int foo (unsigned int u)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021204-1.c
  function t (line 6) | extern inline int t()
  function foo (line 13) | int foo()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021205-1.c
  type x (line 1) | typedef struct x x;
  type x (line 3) | struct x { char * (*bar) (int); }
  function x (line 4) | static x **foo() { return ((x**)baz(0)); }
  function xyzzy (line 5) | int xyzzy()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021212-1.c
  function foo (line 5) | void foo(int m, int n, double *f)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20021230-1.c
  function initRGB (line 5) | static void initRGB()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030109-1.c
  function foo (line 1) | void foo ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030110-1.c
  function foo (line 3) | void foo()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030125-1.c
  function func (line 3) | int func(int *valp) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030206-1.c
  function baz (line 11) | float baz(float d)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030216-1.c
  function polynomial (line 38) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030219-1.c
  function clobber_register (line 3) | void clobber_register()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030220-1.c
  function fixfloor (line 4) | inline int fixfloor (long x)
  function fixtoi (line 12) | inline int fixtoi (long x)
  function foo (line 17) | int foo(long x, long y)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030224-1.c
  function zzz (line 2) | void zzz (char *s1, char *s2, int len, int *q)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030305-1.c
  type s1_t (line 5) | typedef struct {
  type s2_t (line 9) | typedef struct {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030310-1.c
  function foo (line 1) | static inline void
  function bar (line 8) | static void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030314-1.c
  function f (line 13) | void f()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030319-1.c
  type INT_64 (line 2) | typedef struct
  function INT_64 (line 7) | INT_64 int_64_com (INT_64 a)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030320-1.c
  type __SIZE_TYPE__ (line 5) | typedef __SIZE_TYPE__ size_t;
  function is_dst (line 7) | static size_t

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030323-1.c
  function banana (line 5) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030330-1.c
  function f (line 5) | unsigned long f(unsigned long x) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030331-1.c
  function foo (line 5) | void foo (int a, int b, int c, int d, int e)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030405-1.c
  type __SIZE_TYPE__ (line 9) | typedef	__SIZE_TYPE__ size_t;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030410-1.c
  type _zend_compiler_globals (line 3) | struct _zend_compiler_globals
  type zend_executor_globals (line 4) | typedef struct _zend_executor_globals zend_executor_globals;
  type zend_ptr_stack (line 7) | typedef struct _zend_ptr_stack {
  type _zend_compiler_globals (line 11) | struct _zend_compiler_globals {
  type _zend_executor_globals (line 13) | struct _zend_executor_globals {
  function safe_free_zval_ptr (line 18) | static inline void safe_free_zval_ptr(int *p)
  function zend_ptr_stack_clear_multiple (line 24) | static inline void zend_ptr_stack_clear_multiple(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030415-1.c
  function g (line 1) | float g(float f)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030416-1.c
  function foo (line 1) | void foo(int x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030418-1.c
  function foo (line 9) | void foo(int i)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030503-1.c
  function foo (line 1) | void foo ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030518-1.c
  function foo (line 5) | void foo (char *s)
  function bar (line 10) | void bar (char *s)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030530-1.c
  type tree_common (line 3) | struct tree_common
  type tree_common (line 10) | struct tree_common
  function java_check_regular_methods (line 12) | static void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030530-3.c
  type tree_decl (line 1) | struct tree_decl
  type tree_decl (line 7) | struct tree_decl
  function redeclaration_error_message (line 10) | static int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030604-1.c
  function f (line 7) | void f(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030605-1.c
  type blah (line 5) | struct blah { char *b_data; }
  function set_bh_page (line 7) | void set_bh_page(struct blah *bh, unsigned long offset)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030612-1.c
  function foo (line 1) | static inline void
  function test (line 7) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030624-1.c
  function foo (line 5) | double foo(double x) { return pow(x,261); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030703-1.c
  function MBMotionEstimation (line 5) | void MBMotionEstimation(int *act_block, int block)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030704-1.c
  type s (line 9) | struct s {
  function foo (line 13) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030707-1.c
  function foo (line 9) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030708-1.c
  function foo (line 9) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030716-1.c
  function foo (line 3) | void foo(int i, int A[i+1])

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030725-1.c
  function foo (line 5) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030804-1.c
  function f (line 6) | double f(double x) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030821-1.c
  function foo (line 20) | unsigned char

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030823-1.c
  type A (line 1) | struct A
  function foo (line 6) | int foo (struct A *a)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030902-1.c
  type __SIZE_TYPE__ (line 1) | typedef __SIZE_TYPE__ size_t;
  type reg_syntax_t (line 2) | typedef unsigned long int reg_syntax_t;
  type re_pattern_buffer (line 3) | struct re_pattern_buffer
  type re_opcode_t (line 7) | typedef enum
  function foo (line 12) | static int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030903-1.c
  function conj_test (line 12) | void
  function carg_test (line 25) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030904-1.c
  type A (line 1) | struct A
  type B (line 7) | struct B
  type C (line 18) | struct C
  type A (line 24) | struct A
  function foo (line 30) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030907-1.c
  type gdt (line 11) | struct gdt
  function f (line 15) | void f()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030910-1.c
  function test (line 4) | void test()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030917-1.c
  type STR (line 1) | typedef struct string STR;
  type ARRAY (line 2) | typedef struct atbl ARRAY;
  type string (line 3) | struct string {
  type atbl (line 6) | struct atbl {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20030921-1.c
  function g (line 7) | void g(void (*x) (void)){x();}
  function f (line 8) | static inline void f(void){}
  function h (line 9) | void h(){g(f);}
  function main (line 10) | int main(){h();return 0;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031002-1.c
  function bug12292 (line 6) | int bug12292(int t)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031010-1.c
  function f2 (line 4) | int f2(char *d, char *e, int f) { int g = e - d; return *f1(&f, &g); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031011-1.c
  type A (line 7) | typedef struct {
  function x (line 14) | void x (A a) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031011-2.c
  function h (line 7) | void h(int l) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031023-1.c
  function foo (line 16) | int __attribute__((noinline))
  function bar (line 31) | int __attribute__((noinline))
  function baz (line 42) | int __attribute__((noinline))
  function main (line 58) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031031-1.c
  function internal_insn_latency (line 3) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031031-2.c
  type node_type (line 3) | enum node_type
  function put_web (line 13) | inline void
  function reset_lists (line 32) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031102-1.c
  function foo (line 5) | int foo(int t)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031112-1.c
  function __finite (line 1) | extern __inline int __finite (double __value) { return 0; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031113-1.c
  function attribute_list_contained (line 4) | int
  function simple_cst_list_equal (line 9) | int
  function simple_cst_equal (line 16) | int __attribute__((noinline))

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031124-1.c
  function f (line 3) | int f (void *ptr)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031125-1.c
  function proc4WithoutFDFE (line 8) | void proc4WithoutFDFE(char *dst, const char *src, int next_offs, int bw,

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031125-2.c
  type BlobSpan (line 1) | struct BlobSpan {
  function render_blob_line (line 7) | void render_blob_line(struct BlobSpan blobdata) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031203-1.c
  function location_completer (line 6) | void location_completer (char *text)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031203-2.c
  function foo (line 3) | int foo(int bar)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031203-3.c
  function bar (line 4) | void bar (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031208-1.c
  function bar (line 2) | int bar(void) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031220-1.c
  function select (line 10) | static inline void select(int sel, void *klass)
  function all (line 15) | void all(void *gil, void *l, void *icon)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031220-2.c
  type __int32_t (line 8) | typedef int __int32_t;
  type __uint32_t (line 9) | typedef unsigned int __uint32_t;
  type ieee_float_shape_type (line 10) | typedef union
  function __ieee754_sinhf (line 18) | float

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031227-1.c
  function foo (line 3) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031231-1.c
  function test (line 5) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040101-1.c
  function test16 (line 15) | void test16(uint16_t x, uint32_t eflags)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040109-1.c
  function foo (line 5) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040121-1.c
  function print_file_desc (line 13) | void print_file_desc (int *fdp)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040124-1.c
  function f1 (line 1) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040130-1.c
  function TestG928 (line 25) | void TestG928(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040209-1.c
  function foo (line 5) | int foo(float x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040214-1.c
  function foo (line 1) | void foo(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040214-2.c
  type xdef (line 3) | typedef struct xdef xdef;
  type xdef (line 4) | struct xdef
  function c (line 16) | static void
  function a (line 21) | static void
  function b (line 48) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040216-1.c
  function foo (line 1) | int foo (int a, int b, int c, int d)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040219-1.c
  function foo (line 1) | double foo() { return __builtin_isgreater(0.,0.); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040220-1.c
  function kstat_irqs (line 5) | static inline __attribute__((always_inline))
  function show_interrupts (line 14) | int show_interrupts (void) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040303-1.c
  type input_t (line 1) | typedef struct input {
  function RemoveInput (line 5) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040303-2.c
  function test4 (line 4) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040304-1.c
  function cpplib_macroExpand (line 1) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040310-1.c
  function I_wacom (line 1) | void I_wacom ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040317-1.c
  function String2Array (line 1) | int String2Array(int len, char strarr[][len])

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040317-2.c
  type _ScaleRec (line 1) | struct _ScaleRec
  type Table (line 2) | typedef struct
  type ScalePart (line 7) | typedef struct
  type ScaleRec (line 11) | typedef struct _ScaleRec
  function FindPixel (line 15) | static int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040317-3.c
  function RequestData (line 4) | int RequestData (char *cmd)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040323-1.c
  function _dl_start (line 5) | __attribute__ ((alias ("_rtld_global")));

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040401-1.c
  function __atomic_readv_replacement (line 1) | int __atomic_readv_replacement(unsigned char iov_len, int count, int i) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040415-1.c
  function f (line 2) | int f (const char *type)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040415-2.c
  function f1 (line 3) | int f1 (const char *type)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040419-1.c
  function f (line 3) | int f(double d0, double d1) { return d0 > 0 == d1 > 0; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040602-1.c
  type ulong (line 3) | typedef unsigned long ulong;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040610-1.c
  function foo (line 1) | int foo (float x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040611-1.c
  function foo (line 2) | void foo (char *name)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040614-1.c
  function f (line 3) | void f(int r1, int *fp)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040621-1.c
  function ssbgst (line 4) | int ssbgst (int c, int k)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040624-1.c
  type s (line 1) | struct s { float f[1]; }
  type s (line 2) | struct s
  function bar (line 3) | float bar() { return foo().f[0]; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040705-1.c
  function f (line 2) | void f (void) { memcpy (foo, bar, 7); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040708-1.c
  type apr_lockmech_e (line 4) | typedef enum {
  type apr_proc_mutex_unix_lock_methods_t (line 13) | struct apr_proc_mutex_unix_lock_methods_t {
  type apr_proc_mutex_unix_lock_methods_t (line 18) | typedef struct apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_lo...
  type apr_proc_mutex_t (line 22) | struct apr_proc_mutex_t {
  type apr_proc_mutex_t (line 28) | typedef struct apr_proc_mutex_t apr_proc_mutex_t;
  function proc_mutex_choose_method (line 34) | static int proc_mutex_choose_method(apr_proc_mutex_t *new_mutex, apr_loc...

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040709-1.c
  function sub (line 6) | double

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040726-1.c
  function foo (line 2) | void foo (int a, int b, int c, int d, int e, int *f)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040726-2.c
  type A (line 3) | typedef struct
  function foo (line 17) | void foo ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040727-1.c
  type thread_state_flavor_t (line 4) | typedef int thread_state_flavor_t;
  type exception_behavior_t (line 5) | typedef int exception_behavior_t;
  type exception_mask_t (line 6) | typedef unsigned int exception_mask_t;
  type exception_handler_t (line 7) | typedef unsigned int exception_handler_t;
  type mach_msg_type_number_t (line 8) | typedef unsigned int mach_msg_type_number_t;
  type exception_handler_t (line 16) | typedef exception_handler_t *exception_handler_array_t;
  type thread_state_flavor_t (line 17) | typedef thread_state_flavor_t *exception_flavor_array_t;
  function GC_dirty_init (line 27) | void GC_dirty_init()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040730-1.c
  function super_1_sync (line 5) | void super_1_sync(int *rdev2)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040817-1.c
  type A (line 3) | struct A
  function foo (line 8) | void foo(struct A *p)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040824-1.c
  function foo (line 2) | void foo (char *x) { __builtin_prefetch (x + 0x8000); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040901-1.c
  type x (line 1) | typedef enum {a, b} __attribute__((__mode__(__QI__))) x;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040907-1.c
  function ProdWord_bla (line 1) | void ProdWord_bla ( gtL, gtRes, lnL )

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040908-1.c
  function foo (line 3) | double foo()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040909-1.c
  function one_utf8_to_utf16 (line 1) | static __inline__ int
  function conversion_loop (line 4) | static __inline__ unsigned char
  function convert_utf8_utf16 (line 9) | static unsigned char

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040914-1.c
  function process_second_stream (line 5) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20040916-1.c
  function foo (line 7) | char

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20041005-1.c
  function f (line 6) | void f (void) { extern int x; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20041007-1.c
  function foo (line 8) | void foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20041018-1.c
  function foo (line 1) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20041026-1.c
  function foo (line 1) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20041119-1.c
  type S (line 10) | struct S
  function bar (line 17) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20041211-1.c
  function f (line 5) | __inline void f(const char *const p) {
  function crash (line 11) | void crash() {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050105-1.c
  type S (line 1) | struct S
  function foo (line 2) | void foo (void *x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050113-1.c
  type V2SF (line 3) | typedef float V2SF __attribute__ ((vector_size (8)));
  function main (line 7) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050119-1.c
  function f (line 3) | void f(char *a)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050122-1.c
  function g (line 5) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050122-2.c
  function g (line 7) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050202-1.c
  function g (line 4) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050206-1.c
  function foo (line 1) | unsigned short foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050210-1.c
  type __SIZE_TYPE__ (line 3) | typedef __SIZE_TYPE__ size_t;
  function bar (line 5) | int bar (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050215-1.c
  function f1 (line 3) | extern __inline void f1 (void) { }
  function f2 (line 4) | extern __inline void f2 (void) { f1 (); }
  function f2 (line 5) | void f2 (void) {}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050215-2.c
  function f1 (line 4) | extern __inline void f1 (void) { v++; }
  function f4 (line 5) | void f4 (void) { f1 (); }
  function f2 (line 6) | extern __inline void f2 (void) { f1 (); }
  function f3 (line 7) | void f3 (void) { f2 (); }
  function f2 (line 8) | void f2 (void) { f1 (); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050215-3.c
  function f0 (line 4) | extern __inline void f0 (void) { v++; }
  function f1 (line 5) | extern __inline void f1 (void) { f0 (); }
  function f4 (line 6) | void f4 (void) { f1 (); }
  function f2 (line 7) | extern __inline void f2 (void) { f1 (); }
  function f3 (line 8) | void f3 (void) { f2 (); }
  function f2 (line 9) | void f2 (void) { f1 (); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050217-1.c
  type __SIZE_TYPE__ (line 4) | typedef __SIZE_TYPE__ size_t;
  function g (line 5) | void g (void *a)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
  function crc (line 4) | void crc()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050328-1.c
  function foo (line 12) | void
  function bar (line 19) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050423-1.c
  function foo (line 3) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050510-1.c
  function bar (line 4) | void bar (int k)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050516-1.c
  type S (line 3) | struct S { char s; }
  type T (line 4) | struct T { struct S t; }
  type S (line 6) | struct S
  type T (line 6) | struct T
  function foo (line 8) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050520-1.c
  type s (line 1) | struct s { int x[4]; }
  type s (line 2) | struct s
  function bar (line 4) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050622-1.c
  type S (line 2) | struct S { char buf[72*1024*1024]; }
  type S (line 4) | struct S { char buf[64]; }
  type S (line 7) | struct S
  type S (line 9) | struct S
  function foo (line 11) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050721-1.c
  type S1 (line 3) | struct S1
  type S1 (line 5) | struct S1 {
  type S2 (line 10) | struct S2 {
  type S1 (line 18) | struct S1
  type S2 (line 19) | struct S2
  function func1 (line 21) | inline float
  function func2 (line 33) | inline float
  function func3 (line 48) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050801-1.c
  function libc_name_p (line 1) | __inline void libc_name_p (void)
  function nothrow_libfn_p (line 5) | void nothrow_libfn_p (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20050801-2.c
  function f (line 2) | __inline int f(int i)
  function g (line 10) | int g(int i)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20051207-1.c
  function foo (line 3) | long long

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20051216-1.c
  type A (line 6) | struct A { double x, y; }
  type B (line 7) | struct B { double x0, y0, x1, y1; }
  type C (line 8) | struct C { int n_points; int dir; struct B bbox; struct A *points; }
  type D (line 9) | struct D { int n_segs; struct C segs[1]; }
  type A (line 11) | struct A
  type D (line 12) | struct D
  type D (line 12) | struct D
  type A (line 13) | struct A
  type A (line 13) | struct A
  type A (line 13) | struct A
  type A (line 13) | struct A
  function bar (line 15) | static void
  type D (line 32) | struct D
  type D (line 33) | struct D
  type A (line 38) | struct A
  type D (line 39) | struct D
  type D (line 43) | struct D
  type D (line 43) | struct D
  type C (line 44) | struct C
  type A (line 56) | struct A
  type A (line 56) | struct A
  type A (line 79) | struct A
  type A (line 79) | struct A
  type A (line 81) | struct A
  type A (line 81) | struct A

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20051228-1.c
  function foo (line 5) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060109-1.c
  type cpp_reader (line 7) | typedef struct cpp_reader cpp_reader;
  type cpp_string (line 8) | typedef struct cpp_string cpp_string;
  type cpp_string (line 9) | struct cpp_string
  type cpp_callbacks (line 14) | struct cpp_callbacks
  function init_c_lex (line 19) | init_c_lex (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060202-1.c
  type __SIZE_TYPE__ (line 1) | typedef __SIZE_TYPE__ size_t;
  type objc_selector (line 2) | struct objc_selector
  type objc_object (line 7) | struct objc_object
  type objc_class (line 11) | struct objc_class
  type objc_class (line 12) | struct objc_class
  type sidx (line 16) | typedef size_t sidx;
  type soffset (line 17) | struct soffset
  type soffset (line 24) | struct soffset
  type sarray (line 27) | struct sarray
  function soffset_decode (line 31) | static __inline__ unsigned int
  type sarray (line 39) | struct sarray

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060208-1.c
  type __SIZE_TYPE__ (line 3) | typedef __SIZE_TYPE__ size_t;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060215-1.c
  type S (line 3) | struct S
  type S (line 9) | struct S
  type S (line 10) | struct S
  type S (line 11) | struct S
  type S (line 13) | struct S
  type S (line 14) | struct S
  type S (line 18) | struct S
  function fn4 (line 21) | static inline int
  function test (line 30) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060217-1.c
  type U (line 3) | struct U
  type S (line 8) | struct S
  function foo (line 14) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060309-1.c
  function foo (line 3) | void foo() { bar(); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060419-1.c
  function foo (line 11) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060421-1.c
  function foo (line 2) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060609-1.c
  function __strspn_c2 (line 2) | int __strspn_c2 (__const char *__s, int __accept1, int __accept2)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060625-1.c
  function foo (line 6) | void foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060823-1.c
  type A (line 5) | struct A
  type A (line 10) | struct A
  type A (line 11) | struct A

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060826-1.c
  type _Complex (line 1) | typedef _Complex double S;
  function foo (line 4) | void foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20060904-1.c
  type chunk_s (line 5) | struct chunk_s
  type chunk_t (line 11) | typedef struct chunk_s chunk_t;
  function foo (line 13) | void foo(chunk_t *first)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20061005-1.c
  function testc (line 5) | void
  function tests (line 13) | void
  function testc2 (line 19) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20061214-1.c
  type ull (line 1) | typedef unsigned long long ull;
  function foo (line 3) | void foo (ull *x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070121.c
  type node234_Tag (line 5) | struct node234_Tag
  type node234_Tag (line 12) | struct node234_Tag

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070129.c
  type RExC_state_t (line 4) | typedef struct RExC_state_t
  type regnode_string (line 10) | struct regnode_string
  type regnode_string (line 69) | struct regnode_string

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070419-1.c
  type S (line 3) | struct S
  function foo (line 9) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070501-1.c
  type signed16 (line 1) | typedef signed int signed16 __attribute__ ((__mode__ (__HI__)));
  type unsigned16 (line 2) | typedef unsigned int unsigned16 __attribute__ ((__mode__ (__HI__)));
  type signed16 (line 3) | typedef signed16 HI;
  type unsigned16 (line 4) | typedef unsigned16 UHI;
  function f (line 5) | unsigned short f(int y)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070520-1.c
  function ff_pred8x8_plane_c (line 4) | void ff_pred8x8_plane_c(uint8_t *src, int stride){

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070522-1.c
  type Collision (line 6) | struct Collision {
  function get_collisions (line 11) | void  get_collisions(struct Collision a) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070529-1.c
  type __u16 (line 3) | typedef unsigned short __u16;
  type u32 (line 4) | typedef unsigned int u32;
  type __u16 (line 5) | typedef __u16 __be16;
  type hfs_extent (line 6) | struct hfs_extent {
  function hfs_free_fork (line 9) | int hfs_free_fork( int type)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070529-2.c
  function xfs_dir2_grow_inode (line 1) | void xfs_dir2_grow_inode(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070531-2.c
  function f (line 1) | int f(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070603-1.c
  function f (line 2) | int f(_Complex double *a, unsigned int n)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070603-2.c
  type _Complex (line 1) | typedef _Complex double ar[];
  function f (line 2) | int f(ar *a, unsigned int n)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070827-1.c
  function foo (line 3) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070905-1.c
  type S (line 3) | struct S
  function baz (line 13) | static inline __attribute__ ((always_inline))
  function bar (line 19) | static int
  function foo (line 29) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070906-1.c
  type Bar (line 1) | struct Bar {
  function foo (line 4) | struct Bar foo(struct Bar **p)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070915-1.c
  function test6 (line 8) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20070919-1.c
  type gsm0610_frame_t (line 3) | typedef struct {
  function gsm0610_unpack_voip (line 11) | int gsm0610_unpack_voip(gsm0610_frame_t * s, const uint8_t c[33])

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071027-1.c
  type z_key (line 4) | typedef struct z_key
  type picture_size (line 9) | typedef struct picture_size
  function picture_size_new (line 14) | void picture_size_new (picture_size *ps)
  function picture_sizes_load_default (line 20) | void picture_sizes_load_default (picture_size *ps)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071102-1.c
  type _NSPoint (line 5) | struct _NSPoint
  type NSPoint (line 11) | typedef struct _NSPoint NSPoint;
  function NSPoint (line 13) | static inline NSPoint
  function NSPoint (line 22) | static inline NSPoint
  function NSPoint (line 28) | NSPoint g(NSPoint refPoint)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071105-1.c
  function init_full (line 4) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071107-1.c
  function gtk_settings_class_init (line 6) | void gtk_settings_class_init (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071108-1.c
  function f (line 4) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071114-1.c
  type bool8 (line 4) | typedef unsigned char bool8;
  type uint8 (line 8) | typedef uint8_t uint8;
  type uint16 (line 9) | typedef uint16_t uint16;
  type uint32 (line 10) | typedef uint32_t uint32;
  type SIAPU (line 12) | struct SIAPU
  type SAPU (line 23) | struct SAPU
  type SAPU (line 31) | struct SAPU
  type SIAPU (line 32) | struct SIAPU
  function uint8 (line 38) | uint8 S9xAPUGetByte (uint32 Address)
  function S9xAPUSetByte (line 68) | void S9xAPUSetByte (uint8 byte, uint32 Address)
  function ApuCA (line 105) | void ApuCA ()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071117-1.c
  function foo (line 6) | int foo (int i)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071118-1.c
  function foo (line 6) | void foo (short x, int y, int z)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071128-1.c
  type S (line 4) | struct S
  type T (line 8) | struct T
  function foo (line 14) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071203-1.c
  type User (line 3) | struct User { char username[10]; }
  function auth_set_username (line 5) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071207-1.c
  function centerln (line 4) | void centerln (int width, int ch, char *s)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20071214-1.c
  type __builtin_va_list (line 1) | typedef __builtin_va_list va_list;
  function gftp_config_parse_args (line 2) | void gftp_config_parse_args (int numargs, char **first, ...)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080114-1.c
  function stuck (line 6) | void stuck(int res)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080124-1.c
  type S (line 5) | typedef struct
  function bar (line 13) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080419-1.c
  function dmi_scan_machine (line 2) | void dmi_scan_machine(void) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080613-1.c
  type __SIZE_TYPE__ (line 4) | typedef __SIZE_TYPE__ size_t;
  type sa_family_t (line 5) | typedef unsigned short int sa_family_t;
  type cmsghdr (line 6) | struct cmsghdr   {
  type in6_addr (line 11) | struct in6_addr   {
  type sockaddr_in (line 16) | struct sockaddr_in   {
  type in6_pktinfo (line 19) | struct in6_pktinfo   {
  type sockaddr_any (line 22) | typedef union {
  type cmsghdr (line 27) | struct cmsghdr
  type cmsghdr (line 27) | struct cmsghdr
  function hop_sendmsg (line 32) | int hop_sendmsg(int fd) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080625-1.c
  type peakbufStruct (line 3) | struct peakbufStruct {
  function findmzROI (line 14) | void findmzROI(int i, int *p_scan)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080628-1.c
  type s (line 3) | struct s {
  function g (line 8) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080704-1.c
  type _Jv_reent (line 9) | struct _Jv_reent
  type _Jv_reent (line 13) | struct _Jv_reent

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080721-1.c
  function test (line 5) | int test(int b)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080806-1.c
  type __SIZE_TYPE__ (line 10) | typedef __SIZE_TYPE__ size_t;
  function f1 (line 14) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080812-1.c
  function foo (line 5) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080820-1.c
  function do_timer (line 2) | void do_timer(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080903-1.c
  type bar (line 1) | struct bar { unsigned short length; }
  function dummy (line 3) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080910-1.c
  type yy_buffer_state (line 3) | struct yy_buffer_state  {
  type yy_buffer_state (line 6) | struct yy_buffer_state
  function orafce_sql_yylex (line 15) | int orafce_sql_yylex (int a)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080922-1.c
  type rtx_def (line 1) | struct rtx_def
  type rtvec_def (line 2) | struct rtvec_def
  type rtx_code (line 3) | enum rtx_code { PARALLEL, SET }
  type rtunion (line 8) | typedef union rtunion_def rtunion;
  type rtx_def (line 9) | struct rtx_def {
  type rtvec_def (line 12) | struct rtvec_def {
  function rtx (line 17) | rtx peephole2_insns (rtx x0, enum rtx_code code)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20080929-1.c
  type option (line 1) | struct option {
  type ubi_dev_info (line 10) | struct ubi_dev_info {
  type args (line 13) | struct args {
  type args (line 23) | struct args
  type ubi_dev_info (line 26) | struct ubi_dev_info
  function main (line 27) | int main(int argc, char * const argv[]) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20081101-1.c
  function foo (line 1) | int foo (int i, int b)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20081108-1.c
  function h (line 7) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20081108-2.c
  function _Bool (line 4) | _Bool f(unsigned a) { return a & 1; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20081108-3.c
  function _Bool (line 4) | _Bool f(void) { return __INT_MAX__ + 1; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20081119-1.c
  function f (line 1) | unsigned long long

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20081203-1.c
  function foo (line 5) | inline unsigned short
  function bar (line 17) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090107-1.c
  type a (line 4) | struct a
  type b (line 10) | struct b {
  type c (line 15) | struct c {
  function f (line 22) | extern void f(struct c *i) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090114-1.c
  type InputParameters (line 1) | typedef struct {
  type ImageParameters (line 5) | typedef struct {
  function rc_init_pict (line 18) | void rc_init_pict(int fieldpic)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090209-1.c
  type d_info (line 4) | struct d_info
  type d_info (line 10) | struct d_info

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090303-1.c
  function f (line 8) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090303-2.c
  function f (line 8) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090328-1.c
  function __frame_state_for (line 2) | void __frame_state_for (volatile char *state_in, int x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090331-1.c
  type re_pattern_buffer (line 1) | struct re_pattern_buffer {
  function byte_regex_compile (line 5) | void byte_regex_compile (struct re_pattern_buffer *bufp,

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090401-1.c
  function init_clause (line 6) | void init_clause(int *literals, int size, int *lits)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090518-1.c
  function foo (line 1) | float

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090519-1.c
  type __pmPDUInfo (line 1) | typedef struct { int licensed;  } __pmPDUInfo;
  function do_handshake (line 3) | void do_handshake(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090721-1.c
  function f (line 3) | int f(double x, int n){union u v;v.d=x;if(n>=0){v.ll<<=63;}else{v.ll-=1<...

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090907-1.c
  type platform_device (line 1) | struct platform_device
  type __kernel_size_t (line 2) | typedef unsigned long __kernel_size_t;
  type __u16 (line 3) | typedef unsigned short __u16;
  type __u32 (line 4) | typedef unsigned int __u32;
  type u8 (line 5) | typedef unsigned char u8;
  type u16 (line 6) | typedef unsigned short u16;
  type __kernel_size_t (line 7) | typedef __kernel_size_t size_t;
  type __u32 (line 8) | typedef __u32 uint32_t;
  function bfin_dspid (line 9) | static inline __attribute__ ((always_inline))
  type list_head (line 16) | struct list_head {
  type page (line 19) | struct page {
  type device_driver (line 24) | struct device_driver {
  type fb_info (line 28) | struct fb_info {
  type platform_driver (line 31) | struct platform_driver {
  type firmware (line 36) | struct firmware {
  type metronomefb_par (line 40) | struct metronomefb_par {
  type waveform_hdr (line 43) | struct waveform_hdr {
  function u8 (line 46) | static u8 calc_cksum (int start, int end, u8 * mem)
  type waveform_hdr (line 54) | struct waveform_hdr
  function load_waveform (line 57) | static int
  type firmware (line 78) | struct firmware
  type metronomefb_par (line 79) | struct metronomefb_par
  function metronomefb_probe (line 81) | int metronomefb_probe (struct platform_device *dev)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20090917-1.c
  type VEC_loop_p_base (line 2) | typedef struct VEC_loop_p_base
  function VEC_loop_p_base_iterate (line 9) | __inline__ int
  type VEC_loop_p_heap (line 24) | typedef struct VEC_loop_p_heap
  function am_vector_index_for_loop (line 31) | static __inline__ int
  function build_access_matrix (line 46) | unsigned char

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20091215-1.c
  function foo (line 5) | void
  function bar (line 11) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20100609-1.c
  function find_reloads (line 2) | int find_reloads (int i, char *p)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20100907.c
  type a (line 1) | struct a {int a,b;}
  type a (line 2) | struct a
  type a (line 3) | struct a

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20100915-1.c
  type __u32 (line 4) | typedef unsigned int __u32;
  type __u32 (line 5) | typedef __u32 __be32;
  function printk (line 6) | static inline __attribute__((always_inline)) int __attribute__((__cold__...
  type journal_t (line 7) | typedef struct journal_s journal_t;
  type journal_header_t (line 8) | typedef struct journal_header_s
  type journal_superblock_t (line 14) | typedef struct journal_superblock_s
  type journal_s (line 20) | struct journal_s
  function journal_fail_superblock (line 28) | static void journal_fail_superblock (journal_t *journal)
  function journal_get_superblock (line 32) | static int journal_get_superblock(journal_t *journal)
  function load_superblock (line 68) | static int load_superblock(journal_t *journal)
  function jbd2_journal_update_format (line 73) | int jbd2_journal_update_format (journal_t *journal)
  function jbd2_journal_wipe (line 78) | int jbd2_journal_wipe(journal_t *journal, int write)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20101216-1.c
  type __int32_t (line 1) | typedef signed int __int32_t;
  type __uint32_t (line 2) | typedef unsigned int __uint32_t;
  type ieee_double_shape_type (line 3) | typedef union
  function sin_pi (line 14) | double sin_pi(double x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20101217-1.c
  function main (line 3) | int main()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20110126-1.c
  function a (line 4) | int a (int *t, const char *p)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20110131-1.c
  function safe_add_func_uint32_t_u_u (line 8) | static uint32_t
  function safe_div_func_uint64_t_u_u (line 14) | static uint64_t
  function int321 (line 27) | int int321 (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20110401-1.c
  function asn1_length_der (line 1) | void asn1_length_der (unsigned long int len, unsigned char *ans, int *an...

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20110902.c
  function f (line 1) | static inline __attribute__((always_inline)) int f (unsigned int n, unsi...
  function g (line 11) | int g (unsigned int size)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20110906-1.c
  type a (line 4) | struct a {
  type a (line 9) | struct a
  type a (line 9) | struct a
  function foo (line 11) | void foo(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20110913-1.c
  type ieee754_double (line 1) | struct ieee754_double {
  function __ieee754_expf (line 5) | float __ieee754_expf (float x)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20111209-1.c
  function __gnat_getenv (line 8) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20120524-1.c
  function build_packet (line 2) | void build_packet(int port, char *packet) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20120727-1.c
  function f (line 8) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20120727-2.c
  function f (line 8) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20120822-1.c
  function shr_long (line 4) | void shr_long(int d, unsigned char s)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20120830-1.c
  function keydb_search2 (line 2) | int keydb_search2 (int *hdfound, int *hdcurrent, int *a)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20120913-1.c
  type list_head (line 1) | struct list_head {
  type dm_exception (line 4) | struct dm_exception {
  type dm_exception (line 9) | struct dm_exception
  type list_head (line 9) | struct list_head
  type list_head (line 10) | struct list_head
  type dm_exception (line 11) | struct dm_exception
  type dm_exception (line 13) | struct dm_exception

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20120917-1.c
  type curl_off_t (line 1) | typedef long long curl_off_t;
  function tool_seek_cb (line 2) | int tool_seek_cb(void *userdata, curl_off_t offset, int whence)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20120927-1.c
  function isc_fsaccess_set (line 2) | int isc_fsaccess_set(unsigned int access) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20121027-1.c
  function f (line 2) | void f(void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20121107-1.c
  function fn1 (line 8) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20121220-1.c
  function rop_8_notsrc_or_dst (line 3) | static __attribute__ (( always_inline )) __inline__
  function cirrus_colorexpand_notsrc_or_dst_8 (line 8) | void cirrus_colorexpand_notsrc_or_dst_8 (uint8_t * dst, int bits)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20140110-1.c
  type RangeMapRange (line 2) | struct RangeMapRange {
  function f (line 8) | void f(struct RangeMapRange *q1, size_t t)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20140213.c
  function foo (line 1) | static unsigned short
  function bar (line 13) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20140528-1.c
  function f (line 1) | unsigned f(unsigned flags, unsigned capabilities)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20140723-1.c
  function f (line 1) | double f(double a, double b, int c, int d)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20140816-1.c
  function init_emit_regs (line 3) | int init_emit_regs (int mode) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20150108.c
  function fn1 (line 5) | int fn1 () {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20150327.c
  function fn1 (line 3) | int fn1(int p1) {
  function fn2 (line 11) | void fn2() { fn1(0); }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20151204.c
  type __SIZE_TYPE__ (line 3) | typedef __SIZE_TYPE__ size_t;
  function main (line 9) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20160205-1.c
  function fn1 (line 2) | int fn1(int d) {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20161124-1.c
  function foo (line 10) | int foo (void)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/900116-1.c
  function zloop (line 1) | struct st {char a, b, c, d; }

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/900516-1.c
  function f (line 1) | f(c){return!(c?2.0:1.0);}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920409-2.c
  function x (line 1) | double x(){int x1,x2;double v;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920410-1.c
  function alloc_float (line 1) | int alloc_float(f)
  function c_float (line 13) | float c_float(int obj)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920428-2.c
  type _iobuf (line 36) | struct _iobuf {
  type __SIZE_TYPE__ (line 44) | typedef __SIZE_TYPE__ size_t;
  type _iobuf (line 46) | struct _iobuf
  type _iobuf (line 47) | struct _iobuf
  type _iobuf (line 47) | struct _iobuf
  type _iobuf (line 48) | struct _iobuf
  type _iobuf (line 49) | struct _iobuf
  type _iobuf (line 50) | struct _iobuf
  type _iobuf (line 51) | struct _iobuf
  type _iobuf (line 52) | struct _iobuf
  type _iobuf (line 55) | struct _iobuf
  type _iobuf (line 57) | struct _iobuf
  type _iobuf (line 58) | struct _iobuf
  type _iobuf (line 59) | struct _iobuf
  type _iobuf (line 60) | struct _iobuf
  type _iobuf (line 61) | struct _iobuf
  type _iobuf (line 64) | struct _iobuf
  type _iobuf (line 67) | struct _iobuf
  type _iobuf (line 70) | struct _iobuf
  type _iobuf (line 71) | struct _iobuf
  type _iobuf (line 72) | struct _iobuf
  type _iobuf (line 74) | struct _iobuf
  type _iobuf (line 75) | struct _iobuf
  type _iobuf (line 76) | struct _iobuf
  type _iobuf (line 78) | struct _iobuf
  type _iobuf (line 79) | struct _iobuf
  type _iobuf (line 80) | struct _iobuf
  type _iobuf (line 81) | struct _iobuf
  type _iobuf (line 82) | struct _iobuf
  type _iobuf (line 83) | struct _iobuf
  type _iobuf (line 84) | struct _iobuf
  type _iobuf (line 85) | struct _iobuf
  type byte (line 87) | typedef unsigned char byte;
  type uchar (line 88) | typedef unsigned char uchar;
  type ushort (line 89) | typedef unsigned short ushort;
  type uint (line 90) | typedef unsigned int uint;
  type ulong (line 91) | typedef unsigned long ulong;
  type u_char (line 92) | typedef unsigned char u_char;
  type u_short (line 93) | typedef unsigned short u_short;
  type u_int (line 94) | typedef unsigned int u_int;
  type u_long (line 95) | typedef unsigned long u_long;
  type ushort_ (line 96) | typedef unsigned short ushort_;
  type _physadr (line 97) | struct _physadr { int r[1]; }
  type label_t (line 98) | typedef struct label_t {
  type quad (line 101) | typedef struct _quad { long val[2]; } quad;
  type daddr_t (line 102) | typedef long daddr_t;
  type u_long (line 104) | typedef u_long ino_t;
  type swblk_t (line 105) | typedef long swblk_t;
  type time_t (line 106) | typedef long time_t;
  type dev_t (line 107) | typedef short dev_t;
  type off_t (line 108) | typedef long off_t;
  type u_short (line 109) | typedef u_short uid_t;
  type u_short (line 110) | typedef u_short gid_t;
  type prio_t (line 111) | typedef signed char prio_t;
  type fd_mask (line 112) | typedef long fd_mask;
  type fd_set (line 113) | typedef struct fd_set {
  type qhdr (line 116) | struct qhdr {
  type floatp (line 120) | typedef double floatp;
  type _iobuf (line 123) | struct _iobuf
  type gs_point (line 124) | typedef struct gs_point_s {
  type gs_int_point (line 127) | typedef struct gs_int_point_s {
  type gs_rect (line 130) | typedef struct gs_rect_s {
  type gs_int_rect (line 133) | typedef struct gs_int_rect_s {
  type gs_state (line 136) | typedef struct gs_state_s gs_state;
  type gs_memory_procs (line 137) | typedef struct {
  type fixed (line 145) | typedef long fixed;
  type gs_fixed_point (line 146) | typedef struct gs_fixed_point_s {
  type gs_fixed_rect (line 149) | typedef struct gs_fixed_rect_s {
  type gs_matrix (line 152) | typedef struct gs_matrix_s {
  type gs_matrix_fixed (line 167) | typedef struct gs_matrix_fixed_s {
  type fixed_coeff (line 174) | typedef struct {
  type gs_line_cap (line 182) | typedef enum {
  type gs_line_join (line 187) | typedef enum {
  type gx_device (line 203) | typedef struct gx_device_s gx_device;
  type gs_color_space (line 233) | typedef enum {
  type gs_color (line 238) | typedef struct gs_color_s gs_color;
  type gs_screen_enum (line 262) | typedef struct gs_screen_enum_s gs_screen_enum;
  type gs_state_s (line 267) | struct gs_state_s {
  type gx_bitmap_id (line 300) | typedef unsigned long gx_bitmap_id;
  type gx_bitmap (line 301) | typedef struct gx_bitmap_s {
  type gx_color_index (line 308) | typedef unsigned long gx_color_index;
  type gx_color_value (line 309) | typedef unsigned short gx_color_value;
  type gx_device_color_info (line 310) | typedef struct gx_device_color_info_s {
  type gx_device_procs (line 321) | typedef struct gx_device_procs_s gx_device_procs;
  type gx_device_s (line 322) | struct gx_device_s {
  type gs_prop_item (line 325) | typedef struct gs_prop_item_s gs_prop_item;
  type gx_device_procs_s (line 326) | struct gx_device_procs_s {
  type device (line 359) | typedef struct device_s {
  function ctm_set_inverse (line 376) | static int
  function gs_update_matrix_fixed (line 384) | void
  function gs_initmatrix (line 388) | int
  function gs_defaultmatrix (line 395) | int
  function gs_currentmatrix (line 401) | int
  function gs_setmatrix (line 406) | int
  function gs_translate (line 412) | int
  function gs_scale (line 423) | int
  function gs_rotate (line 432) | int
  function gs_concat (line 438) | int
  function gs_transform (line 444) | int
  function gs_dtransform (line 448) | int
  function gs_itransform (line 452) | int
  function gs_idtransform (line 464) | int
  function gs_translate_to_fixed (line 477) | int
  function gx_matrix_to_fixed_coeff (line 485) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920428-3.c
  function x (line 4) | x(a){static void*j[]={&&l1,&&l2};goto*j[a];l1:return 0;l2:return 1;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920428-4.c
  function x (line 2) | x(a){struct{int p[a],i;}l;l.i;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920428-6.c
  type x (line 1) | struct x
  function func (line 8) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920501-10.c
  function x (line 1) | x(y){return 8193*y;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920501-11.c
  type S (line 1) | typedef struct{int s;}S;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920501-12.c
  function x (line 3) | x(x){            return 3 + x;}
  function a (line 4) | a(x){int y[994]; return 3 + x;}
  function b (line 5) | b(x){int y[999]; return 2*(x + 3);}
  function A (line 6) | A(x){int y[9999];return 2*(x + 3);}
  function B (line 7) | B(x){int y[9949];return 3 + x;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920501-13.c
  type t (line 1) | typedef struct{int i;}t;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920501-16.c
  function f (line 1) | f(n){struct z{int a,b[n],c[n];};}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920501-2.c
  function ScoreKBNK (line 4) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920501-21.c
  type t (line 1) | typedef unsigned short t;
  type foo (line 2) | struct foo{t d;}
  function bar (line 3) | int bar(d)t d;{struct foo u;u.d=d;return(int)(&u);}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920501-23.c
  type qi (line 1) | typedef unsigned char qi;
  type hi (line 2) | typedef unsigned short hi;
  type si (line 3) | typedef unsigned long si;
  type di (line 4) | typedef unsigned long long di;
  function subi (line 5) | subi(a){return 100-a;}
  function mul (line 7) | mul(a){return 85*a;}
  function di (line 16) | di move_di(p,p2)di*p,*p2;{di x=p;p2=((di*)x)[1];return p2[1];}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920501-9.c
  function x (line 1) | short x(a)unsigned a;{a=32987799;return a;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920502-1.c
  function x (line 3) | x(i){goto*t[i];}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920502-2.c
  function x (line 1) | x(c){1LL<<c;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920529-1.c
  function f (line 1) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920608-1.c
  function bar (line 14) | bar (p)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920611-2.c
  type uchar (line 1) | typedef unsigned char uchar;
  type ushort (line 2) | typedef unsigned short ushort;
  type uint (line 3) | typedef unsigned int uint;
  type ulong (line 4) | typedef unsigned long ulong;
  function body (line 8) | static int body(out0,out1,ks,Eswap0,Eswap1)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920623-1.c
  function f (line 1) | int f(int c){return f(c--);}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920625-1.c
  type unsigned_word (line 1) | typedef unsigned long int unsigned_word;
  type signed_word (line 2) | typedef signed long int signed_word;
  type unsigned_word (line 3) | typedef unsigned_word word;
  type opcode_t (line 5) | typedef enum { ADD, ADD_CI, ADD_CO, ADD_CIO, SUB, SUB_CI, SUB_CO,
  type insn_t (line 15) | typedef struct
  type prune_flags (line 23) | enum prune_flags

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920625-2.c
  type Cursor (line 2) | typedef unsigned Cursor;
  type _WidgetRec (line 4) | struct _WidgetRec
  type Boolean (line 5) | typedef char		Boolean;
  type Cardinal (line 6) | typedef unsigned int	Cardinal;
  type XedwListReturnStruct (line 7) | typedef struct _XedwListReturnStruct {
  function freeReturnStruct (line 103) | void freeReturnStruct(){}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920702-1.c
  function yylex (line 2) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920711-1.c
  function f (line 1) | f(a){a=(1,1)/2;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920721-1.c
  type T (line 1) | typedef struct{short ttype;float s;}T;
  function T (line 4) | T f(T t2,T t1)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920723-1.c
  type vector_t (line 10) | typedef struct {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920808-1.c
  function f (line 1) | f(i){for(i=1;i<=2;({;}),i++){({;}),g();}}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920817-1.c
  function h (line 1) | void h(){return v++;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920820-1.c
  function f (line 1) | long long f(double y){return y;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920821-2.c
  type t1 (line 1) | typedef struct{int p[25];}t1;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920828-1.c
  function f (line 1) | f(n){return a[n<2?n:0];}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920831-1.c
  function f (line 3) | f(x){goto*(char)x;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920902-1.c
  function f (line 2) | void f(x)unsigned char x;{}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920909-1.c
  function f (line 1) | long long f(long long a,long long b){return a<<b;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920917-1.c
  function f (line 3) | inline f(x){switch(x){case 6:case 4:case 3:case 1:;}return x;}

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920928-3.c
  type FILE (line 3) | typedef struct

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920928-4.c
  type unsigned8 (line 1) | typedef unsigned char	unsigned8;
  type unsigned16 (line 2) | typedef unsigned short int	unsigned16;
  type unsigned32 (line 3) | typedef unsigned long int	unsigned32;
  type signed8 (line 4) | typedef char	signed8;
  type signed16 (line 5) | typedef short int	signed16;
  type signed32 (line 6) | typedef long int	signed32;
  type unsigned32 (line 7) | typedef unsigned32 boolean32;
  type error_status_t (line 8) | typedef unsigned long int	error_status_t;
  type uuid_t (line 9) | typedef struct {
  type unsigned32 (line 18) | typedef unsigned32 bitset;
  type signed32 (line 19) | typedef signed32 sec_timeval_sec_t;
  type sec_timeval_t (line 20) | typedef struct {
  type signed32 (line 24) | typedef signed32 sec_timeval_period_t;
  type signed32 (line 25) | typedef signed32 sec_rgy_acct_key_t;
  type sec_rgy_cursor_t (line 27) | typedef struct {
  type signed32 (line 35) | typedef signed32 sec_rgy_override_t;
  type signed32 (line 36) | typedef signed32 sec_rgy_mode_resolve_t;
  type sec_rgy_sid_t (line 41) | typedef struct sec_rgy_sid_t {
  type sec_rgy_unix_sid_t (line 46) | typedef struct {
  type sec_rgy_unix_passwd_t (line 51) | typedef struct {
  type sec_rgy_unix_group_t (line 62) | typedef struct {
  type rs_cache_data_t (line 68) | typedef struct {
  type rs_unix_query_t (line 75) | typedef enum {
  type rs_unix_query_key_t (line 81) | typedef struct {

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/920928-5.c
  type b (line 2) | struct b{}
  type b (line 3) | struct b
  type b (line 5) | struct b

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/921004-1.c
  function f (line 2) | long long f()

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/921011-1.c
  function fun (line 3) | void

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/921011-2.c
  type frotz (line 3) | typedef struct
  function foobar (line 18) | int

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/921012-2.c
  type foo (line 1) | struct foo {
  type foo (line 4) | struct foo

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/921024-1.c
  function f (line 1) | long long f(s,r)

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/921109-1.c
  type p (line 1) | typedef struct { double x, y; } p;
  type t (line 2) | typedef struct { int s; float r; } t;

FILE: testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/921111-1.c
  type vp (line 2) | struct vp {
  type vp (line 5) | struct vp
  type v
Copy disabled (too large) Download .json
Condensed preview — 7196 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (46,470K chars).
[
  {
    "path": "AUTHORS",
    "chars": 538,
    "preview": "# This file lists authors for copyright purposes.  This file is distinct from\n# the CONTRIBUTORS files.  See the latter "
  },
  {
    "path": "CONTRIBUTORS",
    "chars": 501,
    "preview": "# This file lists people who contributed code to this repository.  The AUTHORS\n# file lists the copyright holders; this "
  },
  {
    "path": "LICENSE",
    "chars": 1480,
    "preview": "Copyright (c) 2014 The CC Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or with"
  },
  {
    "path": "Makefile",
    "chars": 1624,
    "preview": "# Copyright 2016 The CC Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license tha"
  },
  {
    "path": "README.md",
    "chars": 208,
    "preview": "`github.com/cznic/cc` has moved to [`modernc.org/cc`](https://godoc.org/modernc.org/cc) ([vcs](https://gitlab.com/cznic/"
  },
  {
    "path": "all_test.go",
    "chars": 78584,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "ast.go",
    "chars": 84878,
    "preview": "// Code generated by yy. DO NOT EDIT.\n\n// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code"
  },
  {
    "path": "ast2.go",
    "chars": 85753,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "ast_test.go",
    "chars": 112037,
    "preview": "// Code generated by yy. DO NOT EDIT.\n\n// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code"
  },
  {
    "path": "cc.go",
    "chars": 28183,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "cpp.go",
    "chars": 30377,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "encoding.go",
    "chars": 20828,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "etc.go",
    "chars": 47563,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "generate.go",
    "chars": 2570,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "global.go",
    "chars": 2098,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "kind_string.go",
    "chars": 642,
    "preview": "// Code generated by \"stringer -type Kind\"; DO NOT EDIT.\n\npackage cc\n\nimport \"fmt\"\n\nconst _Kind_name = \"UndefinedVoidPtr"
  },
  {
    "path": "lexer.go",
    "chars": 12688,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "linkage_string.go",
    "chars": 371,
    "preview": "// Code generated by \"stringer -type Linkage\"; DO NOT EDIT.\n\npackage cc\n\nimport \"fmt\"\n\nconst _Linkage_name = \"NoneIntern"
  },
  {
    "path": "model.go",
    "chars": 31037,
    "preview": "// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "namespace_string.go",
    "chars": 387,
    "preview": "// Code generated by \"stringer -type Namespace\"; DO NOT EDIT.\n\npackage cc\n\nimport \"fmt\"\n\nconst _Namespace_name = \"NSIden"
  },
  {
    "path": "parser.go",
    "chars": 298353,
    "preview": "// Code generated by goyacc - DO NOT EDIT.\n\n// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source"
  },
  {
    "path": "parser.y",
    "chars": 86062,
    "preview": "// Code generated by yy. DO NOT EDIT.\n\n%{\n// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source c"
  },
  {
    "path": "parser.yy",
    "chars": 48177,
    "preview": "%{\n// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// licen"
  },
  {
    "path": "scanner.go",
    "chars": 69534,
    "preview": "// Code generated by golex. DO NOT EDIT.\n\n// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source c"
  },
  {
    "path": "scanner.l",
    "chars": 7215,
    "preview": "%{\n// Copyright 2016 The CC Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// licen"
  },
  {
    "path": "scope_string.go",
    "chars": 377,
    "preview": "// Code generated by \"stringer -type Scope\"; DO NOT EDIT.\n\npackage cc\n\nimport \"fmt\"\n\nconst _Scope_name = \"ScopeFileScope"
  },
  {
    "path": "testdata/anon.c",
    "chars": 85,
    "preview": "// Invalid anonymous field should raise an error but not panic.\n\nstruct {\n\t_Bool;\n};\n"
  },
  {
    "path": "testdata/arith-1.c",
    "chars": 5922,
    "preview": "/* Preprocessor arithmetic semantic tests.  */\n\n/* Copyright (C) 2002 Free Software Foundation, Inc.  */\n/* Source: Neil"
  },
  {
    "path": "testdata/arith-1.h",
    "chars": 28,
    "preview": "#include \"arith-1.c\"\nint i;\n"
  },
  {
    "path": "testdata/array.c",
    "chars": 47,
    "preview": "char a[];\n\nvoid f() {\n\ta;\n}\n\nchar a[] = \"foo\";\n"
  },
  {
    "path": "testdata/empty.c",
    "chars": 155,
    "preview": "#define m(x) #x\n#define n(x, y) #x\n#define o(x, y) #y\n#define p(x, y, z) #y\n\nchar s[] = m();\nchar t[] = n(, 42);\nchar u["
  },
  {
    "path": "testdata/enum.c",
    "chars": 58,
    "preview": "#define K 278\n\nenum {\n\tc = 42 - 24,\n\td = 314 + K,\n} foo;\n\n"
  },
  {
    "path": "testdata/example-6.10.3.3-4.h",
    "chars": 189,
    "preview": "#define hash_hash # ## #\n#define mkstr(a) # a\n#define in_between(a) mkstr(a)\n#define join(c, d) in_between(c hash_hash d"
  },
  {
    "path": "testdata/example-6.10.3.5-3.h",
    "chars": 380,
    "preview": "#define x\t3\n#define f(a)\tf(x * (a))\n#undef\tx\n#define x\t2\n#define g\tf\n#define z\tz[0]\n#define\th\tg(~\n#define\tm(a)\ta(w)\n#def"
  },
  {
    "path": "testdata/example-6.10.3.5-4.h",
    "chars": 419,
    "preview": "#define str(s)\t\t# s\n#define xstr(s)\t\tstr(s)\n#define debug(s, t)\tprintf(\"x\" # s \"= %d, x\" # t \"= %s\", \\\n\t\t\t\tx ## s, x ## "
  },
  {
    "path": "testdata/example-6.10.3.5-5.h",
    "chars": 115,
    "preview": "#define t(x,y,z) x ## y ## z\nint j[] = { t(1,2,3), t(,4,5), t(6,,7), t(8,9,),\n\tt(10,,), t(,11,), t(,,12), t(,,) };\n"
  },
  {
    "path": "testdata/example-6.10.3.5-6.h",
    "chars": 288,
    "preview": "#define OBJ_LIKE\t(1-1)\n#define OBJ_LIKE\t/* white space */ (1-1) /* other */\n#define FUNC_LIKE(a)\t( a )\n#define FUNC_LIKE"
  },
  {
    "path": "testdata/example-6.10.3.5-7.h",
    "chars": 292,
    "preview": "#define debug(...)\t\tfprintf(stderr, __VA_ARGS__)\n#define showlist(...)\t\tputs(#__VA_ARGS__)\n#define report(test, ...) \t(("
  },
  {
    "path": "testdata/func.c",
    "chars": 33,
    "preview": "void f(char *) {\n\tf(__func__);\n}\n"
  },
  {
    "path": "testdata/funcfunc.c",
    "chars": 206,
    "preview": "// Declare f as function (char) returning pointer to function (int) returning long.\n//\n// http://cdecl.ridiculousfish.co"
  },
  {
    "path": "testdata/gcc-6.3.0/COPYING",
    "chars": 18002,
    "preview": "\t\t    GNU GENERAL PUBLIC LICENSE\n\t\t       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc."
  },
  {
    "path": "testdata/gcc-6.3.0/COPYING.LIB",
    "chars": 26527,
    "preview": "\n                  GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 2.1, February 1999\n\n Copyright (C) 1"
  },
  {
    "path": "testdata/gcc-6.3.0/COPYING.RUNTIME",
    "chars": 3324,
    "preview": "GCC RUNTIME LIBRARY EXCEPTION\n\nVersion 3.1, 31 March 2009\n\nCopyright (C) 2009 Free Software Foundation, Inc. <http://fsf"
  },
  {
    "path": "testdata/gcc-6.3.0/COPYING3",
    "chars": 35147,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "testdata/gcc-6.3.0/COPYING3.LIB",
    "chars": 7639,
    "preview": "\t\t   GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software"
  },
  {
    "path": "testdata/gcc-6.3.0/README",
    "chars": 1026,
    "preview": "This directory contains the GNU Compiler Collection (GCC).\n\nThe GNU Compiler Collection is free software.  See the files"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/strct-layout.c",
    "chars": 922,
    "preview": "typedef struct\n{\n  char a;\n  int b;\n  char c;\n  short d;\n  double e;\n  char f;\n} T;\n\n#if COMPILER != 1\nf (T *x)\n{\n  x[0]"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-align.c",
    "chars": 551,
    "preview": "typedef union\n{\n  struct {int a; int b;} s;\n  double d;\n} T;\n\nint h (T *);\nT g (T);\n\n#if COMPILER != 1\nh (T *x)\n{\n  if ("
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-big.c",
    "chars": 748,
    "preview": "typedef struct {int a, b, c, d, e;} T;\n\nint h (T *);\nT g (T);\n\n#if COMPILER != 1\nh (T *x)\n{\n  if (x->a != 0 || x->b != 1"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-i.c",
    "chars": 440,
    "preview": "typedef struct {int a;} T;\n\nint h (T *);\nT g (T);\n\n#if COMPILER != 1\nh (T *x)\n{\n  if (x->a != 47114711)\n    abort ();\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-ic.c",
    "chars": 501,
    "preview": "typedef struct {int a; char b;} T;\n\nint h (T *);\nT g (T);\n\n#if COMPILER != 1\nh (T *x)\n{\n  if (x->a != 0 || x->b != 1)\n  "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-ii.c",
    "chars": 496,
    "preview": "typedef struct {int a, b;} T;\n\nint h (T *);\nT g (T);\n\n#if COMPILER != 1\nh (T *x)\n{\n  if (x->a != 0 || x->b != 1)\n    abo"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-ret-1.c",
    "chars": 296,
    "preview": "typedef struct { int re; int im; } T;\n\nT f (int, int);\n\n#if COMPILER != 1\nT\nf (int arg1, int arg2)\n{\n  T x;\n  x.re = arg"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000105-1.c",
    "chars": 290,
    "preview": "main(int na, char* argv[])\n{\n\tint wflg = 0, tflg = 0;\n\tint dflg = 0;\n\texit(0);\n\twhile(1)\n\t{\n\t\tswitch(argv[1][0])\n\t\t{\n\t\t\t"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000105-2.c",
    "chars": 42,
    "preview": "foo ()\n{\n  long long int i = (int) \"\";\n}\n\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000120-1.c",
    "chars": 235,
    "preview": "extern char letters[26+1];\nchar letter;\nint letter_number;\nchar letters[] = \"AbCdefghiJklmNopQrStuVwXyZ\";\n\nstatic void\np"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000120-2.c",
    "chars": 181,
    "preview": "/* { dg-options \"-fgnu89-inline\" } */\n\nextern __inline__ int\nodd(int i)\n{\n  return i & 0x1;\n}\n\nint\nfoo(int i, int j)\n{\n "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000127-1.c",
    "chars": 125,
    "preview": "double bar(void), c;\nint foo(void) {\n\tdouble a, b;\n\tint i = bar() + bar();\n\ta = i; i += 1; a += 0.1; i = c + i;\n\treturn "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000211-1.c",
    "chars": 3039,
    "preview": "typedef __SIZE_TYPE__ size_t;\ntypedef unsigned char Bufbyte;\ntypedef int Bytecount;\ntypedef int Charcount;\ntypedef struc"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000211-3.c",
    "chars": 114,
    "preview": "void f_clos(int x)\n\n{        \n        switch(x) {\n                default:\n                mumble:;\n        }\n}\n\n\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000224-1.c",
    "chars": 875,
    "preview": "enum Lisp_Type\n{\n  Lisp_Int                     \n  ,Lisp_Record                 \n  ,Lisp_Cons                   \n  ,Lisp"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000314-1.c",
    "chars": 96,
    "preview": "struct {\n   char a[5];\n} *p;\n\nint main ()\n{\n   int i = -1;\n   \n   if(p->a[-i])\n     return 1;\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000314-2.c",
    "chars": 70,
    "preview": "extern void malloc(__SIZE_TYPE__ size); \n\ntoto()\n{\n    malloc(100);\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000319-1.c",
    "chars": 52,
    "preview": "struct foo\n{\n  long x;\n  char y;\n  long boom[0];\n};\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000326-1.c",
    "chars": 282,
    "preview": "long sys_reboot(int magic1, int magic2, int cmd, void * arg)\n{\n  switch (cmd) {\n  case 0x89ABCDEF:\n    return 1;\n\n  case"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000326-2.c",
    "chars": 164,
    "preview": "#ifndef NO_LABEL_VALUES\nextern int printk(const char *fmt, ...);\n\nvoid foo (int x, int y)\n{\n  __label__ here;\n  here:\n  "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000329-1.c",
    "chars": 556,
    "preview": "int giop_tx_big_endian;\n\ninline\nvoid\ngiop_encode_ulong (unsigned long i, char *buf)\n{\n  if (giop_tx_big_endian)\n    {\n  "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000403-1.c",
    "chars": 277,
    "preview": "struct utsname {\n\tchar\tsysname[32 ];\t \n\tchar\tversion[32 ];\t \n};\nint\nuname(name)\n\tstruct utsname *name;\n{\n\tint mib[2], rv"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000403-2.c",
    "chars": 81,
    "preview": "void   \nfoo ()\n{\n long long tmp;\n (( tmp ) = (long long)(  tmp ) >> (  32 )) ;\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000405-1.c",
    "chars": 212,
    "preview": "// Copyright (C) 2000 Free Software Foundation\n\n// by Alexandre Oliva <oliva@lsd.ic.unicamp.br>\n// simplified from libio"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000405-2.c",
    "chars": 70,
    "preview": "extern void foo (int);\n\nvoid bar (unsigned long l)\n{\n  foo(l == 0);\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000405-3.c",
    "chars": 161,
    "preview": "struct foo {\n  void *entry[40];\n} __attribute__ ((aligned(32)));\n\nint foo (struct foo *ptr, int idx, void *pointer)\n{\n  "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000412-1.c",
    "chars": 223,
    "preview": "typedef struct {\n        short   a;\n        short   b;\n} s1;\n\nextern void g(unsigned char *b);\n\nvoid f(void)\n{\n        s"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000412-2.c",
    "chars": 69,
    "preview": "char list[250][64];\n\nint f(int idx) { return (strlen(list[idx])); }\n\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000420-1.c",
    "chars": 359,
    "preview": "struct z_candidate { struct z_candidate *next;int viable;};\nint pedantic;\n\nstatic struct z_candidate *\nsplice_viable (ca"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000420-2.c",
    "chars": 113,
    "preview": "struct x { int a, b, c; };\n\nextern struct x a ();\nextern void b (struct x);\n\nvoid\nfoo ()\n{\n  a ();\n  b (a ());\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000427-1.c",
    "chars": 537,
    "preview": "int lwidth;                                                                   \nint lheight;                             "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000502-1.c",
    "chars": 199,
    "preview": "static int minimum(int a, int b)\n{\n\tif(a < b)\n\t\treturn a;\n\telse\n\t\treturn b;\n}\nstatic int a, b;\nstatic inline int foo(voi"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000504-1.c",
    "chars": 176,
    "preview": "struct foo {\n\tint a;\n\tint b;\n};\n\nint func(struct foo *foo, int a)\n{\n\tif (foo->b == 0) {\n\t\tint ret = foo->a = a;\n\t\tif (a "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000511-1.c",
    "chars": 317,
    "preview": "typedef struct {\n  char y;\n  char x[32];\n} X;\n\nint z (void)\n{\n  X xxx;\n  xxx.x[0] =\n  xxx.x[31] = '0';\n  xxx.y = 0xf;\n  "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000517-1.c",
    "chars": 107,
    "preview": "void test2 (int*, int, int, int);\n\nvoid test ()\n{\n  int l;\n\n  test2 (0, 0, 0, 0);\n  test2 (&l, 0, 0, 0);\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000518-1.c",
    "chars": 176,
    "preview": "/* { dg-require-effective-target label_values } */\n\nvoid callit1(void*);\n\nextern __inline__ void test()\n{\n\t__label__ l1;"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000523-1.c",
    "chars": 165,
    "preview": "/* Copyright (C) 2000  Free Software Foundation  */\n/* Contributed by Alexandre Oliva <aoliva@cygnus.com> */\n\nenum { foo"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000605-1.c",
    "chars": 324,
    "preview": "/* Copyright (C) 2000 Free Software Foundation */\n\n/* make sure we don't get confused by various flavors of void */\n\n/* "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000606-1.c",
    "chars": 100,
    "preview": "typedef struct _foo foo;\nextern foo bar;\nstruct _foo {\n  int a;\n};\n\nvoid baz(void)\n{\n  bar.a = 0;\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000609-1.c",
    "chars": 74,
    "preview": "int main ()\n{\n  char temp[1024] = \"tempfile\";\n  return temp[0] != 't';\n}\n\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000629-1.c",
    "chars": 244,
    "preview": "struct a\n{\n  struct a * x;\n};\n\nvoid\nfoo (struct a * b)\n{\n  int i;\n\n  for (i = 0; i < 1000; i++)\n    {\n      b->x = b;\n  "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000701-1.c",
    "chars": 206,
    "preview": "void\ndr106_1(void *pv, int i)\n{\n\t*pv;\n\ti ? *pv : *pv;\n\t*pv, *pv;\n}\n\nvoid\ndr106_2(const void *pcv, volatile void *pvv, in"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000717-1.c",
    "chars": 142,
    "preview": "short\ninner_product (short *a, short *b)\n{\n  int i;\n  short sum = 0;\n\n  for (i = 9; i >= 0; i--)\n    sum += (*a++) * (*b"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000718.c",
    "chars": 228,
    "preview": "extern double foo(double, double);\nextern void bar(float*, int*);\n\nvoid\nbaz(int* arg)\n{\n    float tmp = (float)foo(2.0,1"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000728-1.c",
    "chars": 243,
    "preview": "struct clock {\n  long sec; long usec;\n};\n        \nint foo(void)\n{\n  struct clock clock_old = {0, 0};\n\n  for (;;) {\n    l"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000802-1.c",
    "chars": 182,
    "preview": "struct foo {\n  char a[3];\n  char b;\n  char c;\n};\n\nstruct foo bs;\nint x;\nchar y[3];\n\nvoid bar(void)\n{\n    memcpy(bs.a, y,"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000803-1.c",
    "chars": 149,
    "preview": "static int      gl_cnt = 0;\nstatic char     gl_buf[1024];\n\nvoid\ngl_yank()\n{\n  int  i;\n\n  for (i=gl_cnt; i >= 0; i--)\n   "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000804-1.c",
    "chars": 667,
    "preview": "/* This does not work on h8300 due to the use of an asm\n   statement to force a 'long long' (64-bits) to go in a registe"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000818-1.c",
    "chars": 65,
    "preview": "void\nfoo (long double x)\n{\n  struct {long double t;} y = {x};\n}\n\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000825-1.c",
    "chars": 730,
    "preview": "typedef signed int      s32;\ntypedef signed long     s64;\ntypedef unsigned int    u32;\ntypedef unsigned long   u64;\n\next"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000827-1.c",
    "chars": 360,
    "preview": "/* Copyright (C) 2000  Free Software Foundation  */\n/* Contributed by Alexandre Oliva <aoliva@redhat.com> */\n\nint\nfoo ()"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000922-1.c",
    "chars": 185,
    "preview": "extern void doit(int);\nvoid \nquick_doit(int x)\n{\n#ifdef __OPTIMIZE__\n  if (__builtin_constant_p (x)\n      && x != 0)\n   "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20000923-1.c",
    "chars": 156,
    "preview": "/* { dg-require-effective-target alloca } */\nconst int a = 3;\nconst int b = 50;\n\nvoid foo (void)\n{\n  long int x[a][b];\n "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001018-1.c",
    "chars": 110,
    "preview": "void\nfoo (void)\n{\n  extern char i[10];\n\n  {\n    extern char i[];\n    char x[sizeof (i) == 10 ? 1 : -1];\n  }\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001024-1.c",
    "chars": 262,
    "preview": "/* Copyright (C) 2000  Free Software Foundation  */\n/* Contributed by Nathan Sidwell <nathan@codesourcery.com> */\n\ntyped"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001109-1.c",
    "chars": 126,
    "preview": "typedef struct _foo foo;\nextern foo bar;\nstruct _foo {\n  int a;\n};\n\nint tst[__alignof__ (bar) >= __alignof__ (int) ? 1 :"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001109-2.c",
    "chars": 107,
    "preview": "extern struct foo bar;\nstruct foo {\n  int a;\n};\n\nint tst[__alignof__ (bar) >= __alignof__ (int) ? 1 : -1];\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001116-1.c",
    "chars": 88,
    "preview": "int x[60];\nchar *y = ((char*)&(x[2*8 + 2]) - 8);\nint z = (&\"Foobar\"[1] - &\"Foobar\"[0]);\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001121-1.c",
    "chars": 279,
    "preview": "extern int bar(int);\n\nint foo(int x)\n{\n  return 1 + bar(\n\t({\n\t\tint y;\n\t\tswitch (x)\n\t\t{\n\t\tcase 0: y = 1; break;\n\t\tcase 1:"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001123-1.c",
    "chars": 215,
    "preview": "\ntypedef __builtin_va_list __gnuc_va_list;\ntypedef __gnuc_va_list va_list;\n\nstruct X { int y; };\n\nvoid func(va_list va)\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001123-2.c",
    "chars": 357,
    "preview": "/* Copyright 2000 Free Software Foundation\n\n   by Alexandre Oliva  <aoliva@redhat.com>\n\n   Based on zlib/gzio.c.\n\n   Thi"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001205-1.c",
    "chars": 478,
    "preview": "/* { dg-do assemble } */\n\nstatic inline unsigned long rdfpcr(void)\n{\n        unsigned long tmp, ret;\n        __asm__ (\"\""
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001212-1.c",
    "chars": 90,
    "preview": "typedef struct\n{\n  long double l;\n} ld;\n\nld a (ld x, ld y)\n{\n  ld b;\n  b.l = x.l + y.l;\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001221-1.c",
    "chars": 1471,
    "preview": "/* { dg-skip-if \"requires alloca\" { ! alloca } { \"-O0\" } { \"\" } } */\nstatic void\nfoo ()\n{\n  long maplength;\n  int type;\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001222-1.c",
    "chars": 86,
    "preview": "/* Testcase for PR c/1501. */\ndouble __complex__\nf (void)\n{\n  return ~(1.0 + 2.0i);\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20001226-1.c",
    "chars": 1078,
    "preview": "/* { dg-do assemble } */\n/* { dg-skip-if \"too much code for avr\" { \"avr-*-*\" } { \"*\" } { \"\" } } */\n/* { dg-skip-if \"too "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/200031109-1.c",
    "chars": 263,
    "preview": "/* For a short time on the tree-ssa branch this would warn that\n   value was not initialized as it was optimizing !(valu"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010102-1.c",
    "chars": 2745,
    "preview": "/* This testcase derives from gnu obstack.c/obstack.h and failed with\n   -O3 -funroll-all-loops, or -O1 -frename-registe"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010107-1.c",
    "chars": 65,
    "preview": "unsigned long x[4];\n\nvoid foo(void)\n{\n  ((void (*)())(x+2))();\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010112-1.c",
    "chars": 291,
    "preview": "/* Test that putting an initialized variable in a register works. */\n\n#ifdef __i386__\n#define REGISTER asm (\"eax\")\n#elif"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010113-1.c",
    "chars": 389,
    "preview": "/* Origin: PR c/364 from and@genesyslab.com, very much reduced to a\n   testcase by Joseph Myers <jsm28@cam.ac.uk>.\n\n   T"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010114-1.c",
    "chars": 224,
    "preview": "/* Origin: PR c/166 from Joerg Czeranski <jc@joerch.org>.  */\n/* In the declaration of proc, x cannot be parsed as a typ"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010114-2.c",
    "chars": 208,
    "preview": "/* Origin: <URL:http://gcc.gnu.org/ml/gcc-patches/2000-12/msg01384.html>\n   from Fred Fish <fnf@geekgadgets.org>.  See a"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010117-1.c",
    "chars": 81,
    "preview": "unsigned char u, v, w;\n\nvoid baz (void)\n{\n  if ((u - v - w) & 0x80)\n    v = 1;\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010117-2.c",
    "chars": 462,
    "preview": "unsigned char a, b;\n\nvoid baz (void)\n{\n  if (b & 0x08)\n    {\n      int g = 0;\n      int c = (b & 0x01);\n      int d = a "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010118-1.c",
    "chars": 270,
    "preview": "static unsigned int bar(void *h, unsigned int n)\n{\n  static int i;\n  return i++;\n}\n\nstatic void baz(unsigned int *x)\n{\n "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010124-1.c",
    "chars": 468,
    "preview": "/* Origin: testcase from Joseph Myers <jsm28@cam.ac.uk>, problem pointed\n   out in a post to comp.std.c\n   <980283801.30"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010202-1.c",
    "chars": 67,
    "preview": "int foo (int n, char m[1][n]);\n\nint foo (int n, char m[1][n])\n{\n}\n\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010209-1.c",
    "chars": 61,
    "preview": "short int a;\n\nint main (void)\n{\n  a = 65535.0;\n  return 0;\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010226-1.c",
    "chars": 322,
    "preview": "/* { dg-require-effective-target trampolines } */\n\nvoid f1 (void *);\nvoid f3 (void *, void (*)(void *));\nvoid f2 (void *"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010227-1.c",
    "chars": 71,
    "preview": "void foo (void)\n{\n  double a = 0.0;\n  double b = a;\n  if (&b != &a);\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010313-1.c",
    "chars": 310,
    "preview": "/* Origin: Joseph Myers <jsm28@cam.ac.uk>.  */\n/* After the open parenthesis before the __attribute__, we used to shift\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010320-1.c",
    "chars": 656,
    "preview": "typedef struct sec { \nconst char *name;\nint id;\nint index;\nstruct sec *next;\nunsigned int flags;\nunsigned int user_set_v"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010326-1.c",
    "chars": 173,
    "preview": "float d;\nint e, f;\n\nvoid foo (void)\n{\n  struct { float u, v; } a = {0.0, 0.0};\n  float b;\n  int c;\n\n  c = e;\n  if (c == "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010327-1.c",
    "chars": 530,
    "preview": "/* { dg-do compile { target { ptr32plus && { ! llp64 } } } } */\n\n/* This testcase tests whether GCC can produce static i"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010328-1.c",
    "chars": 1771,
    "preview": "typedef __SIZE_TYPE__ size_t;\ntypedef unsigned int __u_int;\ntypedef unsigned long __u_long;\n\n__extension__ typedef unsig"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010329-1.c",
    "chars": 144,
    "preview": "union u {\n  unsigned char a;\n  double b;\n};\n\nint a;\n\nunion u foo (void)\n{\n  union u b;\n\n  if (a)\n    b.a = 1;\n  else\n   "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010404-1.c",
    "chars": 299,
    "preview": "/* This testcase caused a floating point exception in the compiler when\n   compiled with -O2. The crash occurs when tryi"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010408-1.c",
    "chars": 1374,
    "preview": "extern struct win *windows, *wtab[];\nstruct win\n{\n  struct win *w_next;\n};\n\nstruct auser;\n\nstruct comm\n{\n  char *name;\n "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010421-1.c",
    "chars": 84,
    "preview": "int j;\n\nvoid residual ()\n{\n  long double s;\n  for (j = 3; j < 9; j++)\n    s -= 3;\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010423-1.c",
    "chars": 328,
    "preview": "/* Origin: PR c/2618 from Cesar Eduardo Barros <cesarb@nitnet.com.br>,\n   adapted to a testcase by Joseph Myers <jsm28@c"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010426-1.c",
    "chars": 342,
    "preview": "struct { char *m; long n; } a[20];\nint b = 20, c;\nvoid bar(void) __attribute__((__noreturn__));\n\nint\nfoo(int x)\n{\n  int "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010503-1.c",
    "chars": 160,
    "preview": "void f1 (double);\nvoid f2 (int);\n\nvoid\nfoo (int type, double xx)\n{\n  if (type)\n    f1 (xx);\n  else\n    f2 (type);\n}\n\nvoi"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010510-1.c",
    "chars": 53,
    "preview": "typedef char *ident;\n#ident \"This is ident\"\nident i;\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010518-1.c",
    "chars": 5155,
    "preview": "/* This was cut down from reload1.c in May 2001, was observed to cause\n   a bootstrap failure for powerpc-apple-darwin1."
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010518-2.c",
    "chars": 213,
    "preview": "/* { dg-do compile } */\n\n/* Large static storage.  */\n\n#include <limits.h>\n\nstatic volatile char chars_1[INT_MAX / 2];\ns"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010525-1.c",
    "chars": 173,
    "preview": "/* { dg-require-effective-target untyped_assembly } */\nstatic int kind_varread(char *str)\n{\n  if (0 == memcmp(\"%_#\",    "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010605-1.c",
    "chars": 180,
    "preview": "int\nmain (int argc, char **argv)\n{\n  int size = 10;\n\n  typedef struct {\n    char val[size];\n  } block;\n  block retframe_"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010605-2.c",
    "chars": 375,
    "preview": "/* Origin: Joseph Myers <jsm28@cam.ac.uk>.  */\n/* As an extension, GCC allows a struct or union to be cast to its own\n  "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010605-3.c",
    "chars": 346,
    "preview": "struct A { unsigned long buf[100]; };\nint foo(unsigned int *x)\n{\n  unsigned int a;\n\n  if (!x)\n    return -22;\n\n#ifdef __"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010610-1.c",
    "chars": 258,
    "preview": "/* Origin: Kaveh R. Ghazi <ghazi@caip.rutgers.edu>\n\n   Boolean types were not accepted as array sizes nor as switch\n   q"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010611-1.c",
    "chars": 641,
    "preview": "/* Origin: PR c/3116 from Andreas Jaeger <aj@suse.de>.  */\n/* When determining type compatibility of function types, we "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010701-1.c",
    "chars": 381,
    "preview": "/* Test that postfix attributes only apply to a single declared object.\n   (decl_attributes used to chain them onto the "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010706-1.c",
    "chars": 56,
    "preview": "\nfoo(unsigned int x)\n{\n  return (x << 1) | (x >> 31);\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010711-1.c",
    "chars": 128,
    "preview": "typedef unsigned long long value;\n\nvoid foo (value *v) {}\n\nvoid test ()\n{\n  value v;\n  foo (&v);\n  if (v-- > 0)\n    foo "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010711-2.c",
    "chars": 129,
    "preview": "typedef unsigned long long value;\n\nvoid foo (value *v) {}\n\nvoid test ()\n{\n  value v;\n  foo (&v);\n  if (v-- == 1)\n    foo"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010714-1.c",
    "chars": 267,
    "preview": "/* Test that prefix attributes after a comma only apply to a single\n   declared object or function.  */\n/* Origin: Josep"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010824-1.c",
    "chars": 65,
    "preview": "void f(int n)\n{\nbugcauser:\n  if (n != 0)\n    f(n-1);\n  return;\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010903-1.c",
    "chars": 370,
    "preview": "struct A {\n  long a;\n};\n\nstatic inline void foo(struct A *x)\n{\n  __asm__ __volatile__(\"\" : \"+m\"(x->a) : \"r\"(x) : \"memory"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010903-2.c",
    "chars": 299,
    "preview": "extern int __dummy (void *__preg, const char *__string);\nextern int rpmatch (const char *response);\n\nint\nrpmatch (const "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20010911-1.c",
    "chars": 141,
    "preview": "/* Test for segfault handling an empty attribute.  */\n/* Origin: PR c/4294 from <tori@ringstrom.mine.nu>.  */\n\nvoid __at"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011010-1.c",
    "chars": 128,
    "preview": "extern int used (void);\n\n\nint foo () \n{\n  int i;\n  for (; used (); ({while (1) if (used ()) return 0;}))\n    i++;\n  retu"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011023-1.c",
    "chars": 239,
    "preview": "/* Test whether tree inlining works with prototyped nested functions.  */\n\nextern void foo (char *x);\nvoid bar (void);\nv"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011029-1.c",
    "chars": 175,
    "preview": "/* { dg-require-effective-target indirect_jumps } */\n\nvoid foo (void *) __attribute__ ((noreturn));\n\nvoid\nbar (void *x)\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011106-1.c",
    "chars": 229,
    "preview": "/* Test that functions passed to the comma operator are correctly converted\n   to pointers.  */\n/* Origin: Joseph Myers "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011106-2.c",
    "chars": 230,
    "preview": "/* Test the type of a component of a conditional expression between\n   two structures is correct.  */\n/* Origin: Joseph "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011109-1.c",
    "chars": 976,
    "preview": "typedef struct { short x[4]; } S;\ntypedef struct { unsigned int a, b, c; S *d; } T;\n\nS *(*foo) (T *, int, int, int, int)"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011114-1.c",
    "chars": 86,
    "preview": "extern void _text;\nstatic __SIZE_TYPE__ x = (__SIZE_TYPE__) &_text - 0x10000000L - 1;\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011114-2.c",
    "chars": 248,
    "preview": "typedef struct { int c, d, e, f, g; } D;\n\nvoid bar (unsigned long, unsigned long);\nvoid foo (D *y)\n{\n  int x = 0;\n\n  if "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011114-3.c",
    "chars": 461,
    "preview": "typedef struct { int s, t; } C;\nC x;\nint foo (void);\nvoid bar (int);\n\nint baz (void)\n{\n  int a = 0, c, d = 0;\n  C *b = &"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011114-4.c",
    "chars": 538,
    "preview": "static inline int foo (long x)\n{\n  register int a = 0;\n  register unsigned b;\n\n  do\n    {\n      b = (x & 0x7f);\n      x "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011119-1.c",
    "chars": 414,
    "preview": "/* { dg-options \"-fgnu89-inline\" } */\n/* { dg-require-weak \"\" } */\n/* { dg-require-alias \"\" } */\n#define ASMNAME(cname) "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011119-2.c",
    "chars": 482,
    "preview": "/* { dg-options \"-fgnu89-inline\" } */\n/* { dg-require-weak \"\" } */\n/* { dg-require-alias \"\" } */\n#define ASMNAME(cname) "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011130-1.c",
    "chars": 103,
    "preview": "struct S { int i; };\nextern struct S x[];\nchar *bar (const struct S *);\nvoid foo (void)\n{\n  bar (x);\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011130-2.c",
    "chars": 1066,
    "preview": "/* This testcase caused infinite loop in life info computation\n   after if conversion on IA-64.  Conditional register de"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011205-1.c",
    "chars": 249,
    "preview": "/* Failure to mark_addressable all operands before evaluation means we\n   don't set up the proper temporaries, which lea"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011217-1.c",
    "chars": 305,
    "preview": "/* Test that the initializer of a compound literal is properly walked\n   when tree inlining.  */\n/* Origin: PR c/5105 fr"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011217-2.c",
    "chars": 384,
    "preview": "/* Test that the initializer of a compound literal is properly walked\n   when tree inlining.  */\n/* Origin: glibc (as re"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011218-1.c",
    "chars": 342,
    "preview": "/* This testcase failed on Alpha at -O2 because $27 hard register\n   for the indirect call was exposed too early and rel"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011219-1.c",
    "chars": 599,
    "preview": "/* This testcase failed on IA-64 at -O2 during scheduling.  */\n\nvoid * baz (unsigned long);\nstatic inline double **\nbar "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011219-2.c",
    "chars": 393,
    "preview": "/* This testcase failed on Alpha at -O2 when simplifying conditional\n   expressions.  */\n\nstruct S {\n  unsigned long a;\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011229-1.c",
    "chars": 1807,
    "preview": "/* ICE: call insn does not satisfy its constraints, MMIX port.\n   Origin: ghostscript-6.52, reduction from hp@bitrange.c"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20011229-2.c",
    "chars": 229,
    "preview": "/* Test whether jump threading doesn't ICE if redirecting the jump to exit\n   block.  */\n\nextern int bar ();\nextern void"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020103-1.c",
    "chars": 302,
    "preview": "/* This testcase failed on Alpha at -O2 when simplifying conditional\n   expressions.  */\n\nint foo (void);\n\nstruct A\n{\n  "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020106-1.c",
    "chars": 115,
    "preview": "/* Origin: PR c/5279 from <wilco@equator.com>.  */     \n\t\nint\nfoo ()\n{\n  extern long long Y;\n  return (0 > Y++);\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020109-1.c",
    "chars": 399,
    "preview": "/* This testcase ICEd when 2 different successors of a basic block\n   were successfully threaded and try_forward_edges w"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020109-2.c",
    "chars": 371,
    "preview": "typedef union\n{\n  unsigned char member3;\n  signed short member4;\n  unsigned int member5;\n}\nUNI02;\n\nstruct srt_dat_t\n{\n  "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020110.c",
    "chars": 226,
    "preview": "/* Copyright 2002 Free Software Foundation */\n\n/* Make sure the nested extern declaration doesn't conflict with the\n   n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020116-1.c",
    "chars": 390,
    "preview": "void noret (void) __attribute__ ((noreturn));\nint foo (int, char **);\nchar *a, *b;\nint d;\n\nint\nmain (int argc, char **ar"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020120-1.c",
    "chars": 941,
    "preview": "/* This ICEed on IA-32 with -O2 -mcpu=i386, because reload was trying\n   to reload into %sil register.  */\n\nstruct A\n{\n "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020121-1.c",
    "chars": 596,
    "preview": "/* This testcase resulted in a 'unrecognizeable insn' on powerpc-linux-gnu\n   because of a missing trunc_int_for_mode in"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020129-1.c",
    "chars": 189,
    "preview": "/* Test call to static variable.  */\n\ntypedef struct\n{\n  long long a[10];\n} A;\n  \nvoid bar (A *);\n  \ntypedef int (*B)(in"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020206-1.c",
    "chars": 442,
    "preview": "/* Origin: PR optimization/5429 from Philipp Thomas <pthomas@suse.de>.  */\n/* This testcase caused ICE on IA-32 -O2 -mar"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020210-1.c",
    "chars": 55,
    "preview": "/* PR c/5615 */\nvoid f(int a, struct {int b[a];} c) {}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020303-1.c",
    "chars": 218,
    "preview": "/* With -fzero-initialized-in-bss, we made I a common symbol instead\n   of a symbol in the .bss section.  Not only does "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020304-1.c",
    "chars": 22250,
    "preview": "/* In 3.0, this test case (extracted from Bigloo) crashes the compiler in\n   bb-reorder.c.  This is a regression from 2."
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020304-2.c",
    "chars": 182,
    "preview": "/* This testcase ICEd because a SUBREG of MEM/v was never\n   simplified.  */\nvolatile unsigned long long *a;\n\nunsigned c"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020309-1.c",
    "chars": 113,
    "preview": "int\nsub1 (char *p, int i)\n{\n  char j = p[i];\n\n  {\n    void\n    sub2 ()\n      {\n\ti = 2;\n\tp = p + 2;\n      }\n  }\n}\n"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020309-2.c",
    "chars": 284,
    "preview": "/* This testcase ICEd on IA-32 at -O2, because loop was calling convert_modes\n   between a MODE_FLOAT and MODE_INT class"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020312-1.c",
    "chars": 461,
    "preview": "/* { dg-do assemble } */\n/* { dg-skip-if \"\" { pdp11-*-* } { \"-O0\" } { \"\" } } */\n\n/* PR optimization/5892 */\ntypedef stru"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020314-1.c",
    "chars": 699,
    "preview": "typedef struct tux_req_struct tux_req_t;\nstruct tux_req_struct\n{\n        struct socket *sock;\n        char usermode;\n   "
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020315-1.c",
    "chars": 581,
    "preview": "/* PR bootstrap/4128 */\n\nextern int bar (char *, char *, int, int);\nextern long baz (char *, char *, int, int);\n\nint sgt"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020318-1.c",
    "chars": 236,
    "preview": "/* PR c/5656\n   This testcase ICEd on IA-32 at -O3, due to tree inliner not converting\n   parameter assignment when usin"
  },
  {
    "path": "testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20020319-1.c",
    "chars": 492,
    "preview": "/* This testcase ICEd in combine.c:do_SUBST() self-test for sign-extended\nCONST_INT because expr.c:expand_expr() was not"
  }
]

// ... and 6996 more files (download for full content)

About this extraction

This page contains the full source code of the cznic/cc GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 7196 files (42.1 MB), approximately 11.5M tokens, and a symbol index with 30861 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!