Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Internal compiler error when parsing from literals in const with explicit type #1858

Open
bbannier opened this issue Sep 6, 2024 · 0 comments
Labels
Bug Something isn't working Diagnostics Parsing

Comments

@bbannier
Copy link
Contributor

bbannier commented Sep 6, 2024

When parsing (some) literals of the form const x: TYPE = EXPR; we run into a compiler error, e.g.,

module foo;

const a: uint8 = 12; # Fails.
# const a = uint8(12); # Works.

type X = unit {
    : a;
};
$ spicyc -d foo.spicy
[internal-error] codegen: literal parser did not return expression for '12'

--- Aborting
# 0   libhilti.dylib                      0x0000000108bc11c0 _ZN5hilti2rt9BacktraceC2Ev + 528
# 1   libhilti.dylib                      0x0000000108bc1820 _ZN5hilti2rt9BacktraceC1Ev + 28
# 2   libhilti.dylib                      0x0000000108486948 _ZN5hilti4util18abortWithBacktraceEv + 420
# 3   libhilti.dylib                      0x000000010845129c _ZN5hilti6Logger13internalErrorERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKNS_8LocationE + 480
# 4   libspicy.dylib                      0x0000000103f6974c _ZN5spicy6detail7codegen13ParserBuilder12parseLiteralERKNS1_10ProductionEPN5hilti10ExpressionE + 828
# 5   libspicy.dylib                      0x0000000103e0f2c0 _ZN5spicy6detail7codegen17ProductionVisitorclEPKNS1_10production4CtorE + 128
# 6   libspicy.dylib                      0x0000000103da1778 _ZNK5spicy6detail7codegen10production4Ctor8dispatchERNS2_7VisitorE + 172
# 7   libspicy.dylib                      0x0000000103ed5428 _ZN5spicy6detail7codegen10production7Visitor8dispatchEPKNS1_10ProductionE + 196
# 8   libspicy.dylib                      0x0000000103ecbdf4 _ZN5spicy6detail7codegen17ProductionVisitor16_parseProductionERKNS1_10ProductionEbRKNS1_10production4MetaE + 8540
# 9   libspicy.dylib                      0x0000000103ddd194 _ZN5spicy6detail7codegen17ProductionVisitor15parseProductionERKNS1_10ProductionEb + 88
# 10  libspicy.dylib                      0x0000000103e8fe58 _ZZN5spicy6detail7codegen17ProductionVisitorclEPKNS1_10production4UnitEENKUlRKT_E_clINSt3__110unique_ptrINS1_10ProductionENSC_14default_deleteISE_EEEEEEDaS9_ + 420
# 11  libspicy.dylib                      0x0000000103e1a480 _ZN5spicy6detail7codegen17ProductionVisitorclEPKNS1_10production4UnitE + 13744
# 12  libspicy.dylib                      0x0000000103d8eff0 _ZNK5spicy6detail7codegen10production4Unit8dispatchERNS2_7VisitorE + 172
# 13  libspicy.dylib                      0x0000000103f0bd40 _ZN5spicy6detail7codegen10production7Visitor8dispatchERKNS1_10ProductionE + 172
# 14  libspicy.dylib                      0x0000000103f0af14 _ZZZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNS1_10ProductionEPNS_4type4UnitEENKUlRT_E_clIN5hilti2IDEEEDaSA_ENKUlvE2_clEv + 2068
# 15  libspicy.dylib                      0x0000000103ef60b0 _ZZZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNS1_10ProductionEPNS_4type4UnitEENKUlRT_E_clIN5hilti2IDEEEDaSA_ENKUlbE0_clEb + 8900
# 16  libspicy.dylib                      0x0000000103eea04c _ZZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNS1_10ProductionEPNS_4type4UnitEENKUlRT_E_clIN5hilti2IDEEEDaSA_ + 5236
# 17  libspicy.dylib                      0x0000000103ee7cc0 _ZN5hilti4util5CacheINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS_2IDEE11getOrCreateIZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNSE_10ProductionEPNSC_4type4UnitEEUlvE_ZNSF_24parseNonAtomicProductionESI_SL_EUlRT_E_EERKS9_RKS8_OSN_OT0_ + 804
# 18  libspicy.dylib                      0x0000000103ed5b20 _ZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNS1_10ProductionEPNS_4type4UnitE + 1768
# 19  libspicy.dylib                      0x0000000103ecd35c _ZN5spicy6detail7codegen17ProductionVisitor16_parseProductionERKNS1_10ProductionEbRKNS1_10production4MetaE + 14020
# 20  libspicy.dylib                      0x0000000103ecab08 _ZN5spicy6detail7codegen17ProductionVisitor16_parseProductionERKNS1_10ProductionEbRKNS1_10production4MetaE + 3696
# 21  libspicy.dylib                      0x0000000103ddd194 _ZN5spicy6detail7codegen17ProductionVisitor15parseProductionERKNS1_10ProductionEb + 88
# 22  libspicy.dylib                      0x0000000103dccafc _ZN5spicy6detail7codegen13ParserBuilder16addParserMethodsEPN5hilti4type6StructEPNS_4type4UnitEb + 39632
# 23  libspicy.dylib                      0x0000000103fc8cc0 _ZN5spicy6detail7CodeGen11compileUnitEPNS_4type4UnitEb + 58212
# 24  libspicy.dylib                      0x0000000103c178b0 _ZN12_GLOBAL__N_112VisitorPass1clEPN5hilti11declaration4TypeE + 1584
# 25  libspicy.dylib                      0x0000000103fe5670 _ZN5hilti11declaration4Type8dispatchERNS_7visitor10DispatcherE + 436
# 26  libspicy.dylib                      0x0000000103c18cc4 _ZN5hilti7visitor7VisitorILNS0_5OrderE1EN5spicy7visitor10DispatcherEE8dispatchEPNS_4NodeE + 196
# 27  libspicy.dylib                      0x0000000103c0dbcc _ZN5hilti7visitor5visitIRN12_GLOBAL__N_112VisitorPass1ENS_11declaration6ModuleEEEDaOT_PT0_NSt3__117basic_string_viewIcNSC_11char_traitsIcEEEE + 1044
# 28  libspicy.dylib                      0x0000000103c0cb4c _ZN5spicy6detail7CodeGen14_compileModuleEPN5hilti11declaration6ModuleEiPNS0_7codegen7ASTInfoE + 1000
# 29  libspicy.dylib                      0x0000000103ccd0e4 _ZZN5spicy6detail7CodeGen10compileASTEPN5hilti7ASTRootEEN13VisitorModuleclEPNS2_11declaration6ModuleE + 1244
# 30  libhilti.dylib                      0x0000000107b9e19c _ZN5hilti11declaration6Module8dispatchERNS_7visitor10DispatcherE + 436
# 31  libspicy.dylib                      0x0000000103c18cc4 _ZN5hilti7visitor7VisitorILNS0_5OrderE1EN5spicy7visitor10DispatcherEE8dispatchEPNS_4NodeE + 196

I would have expected this code to compile, but if it cannot due to some conceptual reason we should reject it cleanly.

@bbannier bbannier added Bug Something isn't working Diagnostics Parsing labels Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working Diagnostics Parsing
Projects
None yet
Development

No branches or pull requests

1 participant