tree-sitter codebase causes ccgo to panic
I'm trying to compile tree-sitter on linux/amd64 with ccgo. When I've tried, I get this error:
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:642:checkUnion: TODOTODO /home/light/src/github.com/tree-sitter/tree-sitter/lib/src/reusable_node.h:55:3
panic: /home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:642:checkUnion: TODOTODO /home/light/src/github.com/tree-sitter/tree-sitter/lib/src/reusable_node.h:55:3
goroutine 1 [running]:
modernc.org/cc/v3.(*InitializerList).checkUnion(0xc00095f500, 0xc00107d200, 0xc00095f500, 0x930f48, 0xc005707c20, 0x1, 0x0, 0xc002822b20, 0xc0057b8150)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:642 +0xa8d
modernc.org/cc/v3.(*Initializer).check(0xc002ed1a00, 0xc00107d200, 0xc00095f500, 0x930378, 0xc00573b578, 0x1, 0x92d468, 0xc005738600, 0x0, 0xc00095f500, ...)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:425 +0x886
modernc.org/cc/v3.(*InitializerList).checkStruct(0xc00095f500, 0xc00107d200, 0xc00095f500, 0x930f48, 0xc005735bc0, 0x1, 0x0, 0xc002822b20, 0xc00322e300)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:578 +0x52b
modernc.org/cc/v3.(*InitializerList).check(0xc00095f500, 0xc00107d200, 0xc00095f500, 0x930378, 0xc0057b1cb0, 0x1, 0x0, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:736 +0x197
modernc.org/cc/v3.(*PostfixExpression).check(0xc0023e3a20, 0xc00107d200, 0xc00573ce00, 0xc0057b1bd8, 0xc0057b1bc0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:2821 +0x1dd6
modernc.org/cc/v3.(*UnaryExpression).check(0xc001168180, 0xc00107d200, 0x930d00, 0xc0057b8510)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:1058 +0x24c
modernc.org/cc/v3.(*CastExpression).check(0xc0023de900, 0xc00107d200, 0xc00107d200, 0x92d598)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:2631 +0x305
modernc.org/cc/v3.(*MultiplicativeExpression).check(0xc000a70fc0, 0xc00107d200, 0xc001eea468, 0xc0057b8000)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4161 +0x726
modernc.org/cc/v3.(*AdditiveExpression).check(0xc000a71030, 0xc00107d200, 0xc0057b1c50, 0x18)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4002 +0x1ea5
modernc.org/cc/v3.(*ShiftExpression).check(0xc000a711f0, 0xc00107d200, 0xc00107d200, 0x92d598)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3940 +0xd6c
modernc.org/cc/v3.(*RelationalExpression).check(0xc000a71260, 0xc00107d200, 0xc005738900, 0xc0057b1c38)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3866 +0xbbf
modernc.org/cc/v3.(*EqualityExpression).check(0xc000a712d0, 0xc00107d200, 0x7a, 0xc00219bcb8)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3788 +0xb51
modernc.org/cc/v3.(*AndExpression).check(0xc000a71340, 0xc00107d200, 0xc00322efe0, 0x40f892)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3751 +0x746
modernc.org/cc/v3.(*ExclusiveOrExpression).check(0xc000a713b0, 0xc00107d200, 0xc0057b81e0, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3713 +0x746
modernc.org/cc/v3.(*InclusiveOrExpression).check(0xc000a71420, 0xc00107d200, 0x8a2f2a, 0x125)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3655 +0x793
modernc.org/cc/v3.(*LogicalAndExpression).check(0xc00095f860, 0xc00107d200, 0xc0057b1c50, 0x1)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3624 +0x3e5
modernc.org/cc/v3.(*LogicalOrExpression).check(0xc00095f8c0, 0xc00107d200, 0xafd388, 0xafd388)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3593 +0x3e5
modernc.org/cc/v3.(*ConditionalExpression).check(0xc0023de990, 0xc00107d200, 0xc0057b1c50, 0xc000080000)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3497 +0x15d8
modernc.org/cc/v3.(*AssignmentExpression).check(0xc0023dea20, 0xc00107d200, 0x0, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:816 +0x6e5
modernc.org/cc/v3.(*Expression).check(0xc00095f920, 0xc00107d200, 0xc00107d200, 0x92d598)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3012 +0x245
modernc.org/cc/v3.(*PrimaryExpression).check(0xc001eeb900, 0xc00107d200, 0xc0008db700, 0xc00107d200, 0x92d598)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3107 +0xcf3
modernc.org/cc/v3.(*PostfixExpression).check(0xc0023e3b80, 0xc00107d200, 0xc0057b8700, 0x92e2c8, 0x28)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:2660 +0x998
modernc.org/cc/v3.(*UnaryExpression).check(0xc001168240, 0xc00107d200, 0x203001, 0x8)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:1058 +0x24c
modernc.org/cc/v3.(*CastExpression).check(0xc0023deab0, 0xc00107d200, 0xc00107d200, 0xc00322fd70)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:2631 +0x305
modernc.org/cc/v3.(*MultiplicativeExpression).check(0xc000a71490, 0xc00107d200, 0xc00107d200, 0x92d598)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4161 +0x726
modernc.org/cc/v3.(*AdditiveExpression).check(0xc000a71500, 0xc00107d200, 0xc003230000, 0x651e7c)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4002 +0x1ea5
modernc.org/cc/v3.(*ShiftExpression).check(0xc000a71570, 0xc00107d200, 0x46d100, 0x92d598)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3940 +0xd6c
modernc.org/cc/v3.(*RelationalExpression).check(0xc000a715e0, 0xc00107d200, 0xc0032302e8, 0x64cfe5)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3866 +0xbbf
modernc.org/cc/v3.(*EqualityExpression).check(0xc000a71650, 0xc00107d200, 0xc000000180, 0xc003230300)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3788 +0xb51
modernc.org/cc/v3.(*AndExpression).check(0xc000a716c0, 0xc00107d200, 0xc00107d200, 0x930d50)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3751 +0x746
modernc.org/cc/v3.(*ExclusiveOrExpression).check(0xc000a71730, 0xc00107d200, 0x203001, 0xc000a64388)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3713 +0x746
modernc.org/cc/v3.(*InclusiveOrExpression).check(0xc000a717a0, 0xc00107d200, 0x18, 0x7fdb00029e00)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3655 +0x793
modernc.org/cc/v3.(*LogicalAndExpression).check(0xc00095f980, 0xc00107d200, 0x86aa40, 0xc0057b8900)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3624 +0x3e5
modernc.org/cc/v3.(*LogicalOrExpression).check(0xc00095f9e0, 0xc00107d200, 0xc0057b1c08, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3593 +0x3e5
modernc.org/cc/v3.(*ConditionalExpression).check(0xc0023deb40, 0xc00107d200, 0x92d598, 0xc0057b1c08)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3497 +0x15d8
modernc.org/cc/v3.(*AssignmentExpression).check(0xc0023debd0, 0xc00107d200, 0x0, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:816 +0x6e5
modernc.org/cc/v3.(*Expression).check(0xc00095fa40, 0xc00107d200, 0x18, 0xc003230978)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3012 +0x245
modernc.org/cc/v3.(*PrimaryExpression).check(0xc001eeb9a0, 0xc00107d200, 0x92d600, 0xc0057b8900, 0x914d40)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3107 +0xcf3
modernc.org/cc/v3.(*PostfixExpression).check(0xc0023e3ce0, 0xc00107d200, 0x92d600, 0xc0057b8900, 0x7fdb0002a000)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:2660 +0x998
modernc.org/cc/v3.(*UnaryExpression).check(0xc001168300, 0xc00107d200, 0x914d40, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:1058 +0x24c
modernc.org/cc/v3.(*CastExpression).check(0xc0023dec60, 0xc00107d200, 0x11b, 0x12d)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:2631 +0x305
modernc.org/cc/v3.(*MultiplicativeExpression).check(0xc000a71810, 0xc00107d200, 0x92d630, 0xc0057b8900)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4161 +0x726
modernc.org/cc/v3.(*AdditiveExpression).check(0xc000a71880, 0xc00107d200, 0xc0057b8900, 0x203001)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4002 +0x1ea5
modernc.org/cc/v3.(*ShiftExpression).check(0xc000a718f0, 0xc00107d200, 0x0, 0xc0032315a0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3940 +0xd6c
modernc.org/cc/v3.(*RelationalExpression).check(0xc000a71960, 0xc00107d200, 0x667ff7, 0x7fdb0002a020)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3866 +0xbbf
modernc.org/cc/v3.(*EqualityExpression).check(0xc000a719d0, 0xc00107d200, 0xc00107d200, 0x92d630)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3788 +0xb51
modernc.org/cc/v3.(*AndExpression).check(0xc000a71a40, 0xc00107d200, 0xc000a64770, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3751 +0x746
modernc.org/cc/v3.(*ExclusiveOrExpression).check(0xc000a71ab0, 0xc00107d200, 0x92d630, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3713 +0x746
modernc.org/cc/v3.(*InclusiveOrExpression).check(0xc000a71b20, 0xc00107d200, 0xc00107d200, 0x92d630)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3655 +0x793
modernc.org/cc/v3.(*LogicalAndExpression).check(0xc00095faa0, 0xc00107d200, 0x131, 0x1)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3624 +0x3e5
modernc.org/cc/v3.(*LogicalOrExpression).check(0xc00095fb00, 0xc00107d200, 0xc003231d10, 0xc003231d10)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3593 +0x3e5
modernc.org/cc/v3.(*ConditionalExpression).check(0xc0023decf0, 0xc00107d200, 0x1, 0x18)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3497 +0x15d8
modernc.org/cc/v3.(*AssignmentExpression).check(0xc0023ded80, 0xc00107d200, 0x0, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:816 +0x6e5
modernc.org/cc/v3.(*AssignmentExpression).check(0xc0023dee10, 0xc00107d200, 0x0, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:836 +0x510
modernc.org/cc/v3.(*Expression).check(0xc00095fb60, 0xc00107d200, 0xc001eea960, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3016 +0xba
modernc.org/cc/v3.(*PrimaryExpression).check(0xc001eeba40, 0xc00107d200, 0xc001eea900, 0xc00107d200, 0xc001f27700)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3107 +0xcf3
modernc.org/cc/v3.(*PostfixExpression).check(0xc0023e3e40, 0xc00107d200, 0xc0027d3300, 0xc00107d200, 0x7fdb00029e00)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:2660 +0x998
modernc.org/cc/v3.(*UnaryExpression).check(0xc0011683c0, 0xc00107d200, 0xc00115c300, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:1058 +0x24c
modernc.org/cc/v3.(*CastExpression).check(0xc0023deea0, 0xc00107d200, 0xc00219a000, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:2631 +0x305
modernc.org/cc/v3.(*MultiplicativeExpression).check(0xc000a71b90, 0xc00107d200, 0xc003232898, 0x8)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4161 +0x726
modernc.org/cc/v3.(*AdditiveExpression).check(0xc000a71c00, 0xc00107d200, 0x0, 0x7fdb0002a020)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4002 +0x1ea5
modernc.org/cc/v3.(*ShiftExpression).check(0xc000a71dc0, 0xc00107d200, 0xc0057b1ae8, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3940 +0xd6c
modernc.org/cc/v3.(*RelationalExpression).check(0xc000a71e30, 0xc00107d200, 0xc0009eca80, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3866 +0xbbf
modernc.org/cc/v3.(*EqualityExpression).check(0xc000a71ea0, 0xc00107d200, 0xc0009ecaf0, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3788 +0xb51
modernc.org/cc/v3.(*AndExpression).check(0xc000a71f10, 0xc00107d200, 0xc0009ecb60, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3751 +0x746
modernc.org/cc/v3.(*ExclusiveOrExpression).check(0xc000a71f80, 0xc00107d200, 0xc0009ecbd0, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3713 +0x746
modernc.org/cc/v3.(*InclusiveOrExpression).check(0xc000a7a230, 0xc00107d200, 0xc0009ecc40, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3655 +0x793
modernc.org/cc/v3.(*LogicalAndExpression).check(0xc00095fc80, 0xc00107d200, 0xc0008db380, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3624 +0x3e5
modernc.org/cc/v3.(*LogicalOrExpression).check(0xc00095fce0, 0xc00107d200, 0xc0008db3e0, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3593 +0x3e5
modernc.org/cc/v3.(*ConditionalExpression).check(0xc0023def30, 0xc00107d200, 0xc00219a090, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3497 +0x15d8
modernc.org/cc/v3.(*AssignmentExpression).check(0xc0023defc0, 0xc00107d200, 0x0, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:816 +0x6e5
modernc.org/cc/v3.(*Expression).check(0xc00095fd40, 0xc00107d200, 0x0, 0x0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:3012 +0x245
modernc.org/cc/v3.(*ExpressionStatement).check(0xc00117a180, 0xc00107d200, 0xc002eb1c80, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:5044 +0x17f
modernc.org/cc/v3.(*Statement).check(0xc000a72f00, 0xc00107d200, 0x92d630, 0xb0aa00)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4891 +0xa5
modernc.org/cc/v3.(*BlockItem).check(0xc00095fda0, 0xc00107d200, 0x92d630, 0xb0aa00)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4839 +0x3b8
modernc.org/cc/v3.(*BlockItemList).check(0xc002822b50, 0xc00107d200, 0xc0053294f8, 0xc0057b61e0)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4822 +0x54
modernc.org/cc/v3.(*CompoundStatement).check(...)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:4813
modernc.org/cc/v3.(*FunctionDefinition).checkBody(0xc001ee08f0, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:120 +0xf0
modernc.org/cc/v3.(*ExternalDeclaration).checkFnBodies(...)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:80
modernc.org/cc/v3.(*TranslationUnit).check(0xc002822c90, 0xc00107d200)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/check.go:69 +0x90
modernc.org/cc/v3.(*AST).typecheck(0xc00484cc00, 0xc0000d4280, 0x8, 0x8)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/ast2.go:531 +0x1fc
modernc.org/cc/v3.translate(0xc00107c000, 0xc0000d4280, 0x8, 0x8, 0xc0000e87e0, 0x7, 0x7, 0xc000e79680, 0x3, 0x4, ...)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/ast2.go:506 +0xd4
modernc.org/cc/v3.Translate(0xc0000d6600, 0xc0000d4280, 0x8, 0x8, 0xc0000e87e0, 0x7, 0x7, 0xc000e79680, 0x3, 0x4, ...)
/home/light/pkg/mod/modernc.org/cc/v3@v3.35.8/ast2.go:497 +0x289
modernc.org/ccgo/v3/lib.(*Task).Main(0xc000186000, 0x0, 0x0)
/home/light/pkg/mod/modernc.org/ccgo/v3@v3.12.26/lib/ccgo.go:872 +0x3005
main.main()
/home/light/pkg/mod/modernc.org/ccgo/v3@v3.12.26/main.go:37 +0x85
If you point me in the right direction, I might be able to contribute a fix, but it's not immediately obvious to me what's going wrong.