https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105044
Johel Ernesto Guerrero Peña <johelegp at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[modules] ICE in comptypes, |[modules] ICE in comptypes, |at cp/typeck.c:1529 |at cp/typeck.cc:1531 --- Comment #2 from Johel Ernesto Guerrero Peña <johelegp at gmail dot com> --- Another simpler reproducer from another use-case: https://godbolt.org/z/jroqv6Kzq. `mod.cpp`: ```C++ export module mod; export template<auto> struct constant { }; export template<class> struct is_constant { }; struct monostate { }; inline constexpr constant<monostate{}> c1{}; ``` `test.cpp`: ```C++ import mod; is_constant<constant<0>> v; int main() { } ``` Output: ``` In module mod, imported at /app/test.cpp:1: mod.cpp: In instantiation of 'struct is_constant@mod<constant@mod<0> >': test.cpp:2:26: required from here mod.cpp:3:31: internal compiler error: in comptypes, at cp/typeck.cc:1531 3 | export template<class> struct is_constant { }; | ^~~~~~~~~~~ 0x2216469 internal_error(char const*, ...) ???:0 0x74b7d9 fancy_abort(char const*, int, char const*) ???:0 0xa90b66 comptypes(tree_node*, tree_node*, int) ???:0 0x833e5d complete_vars(tree_node*) ???:0 0x7ab99b finish_struct_1(tree_node*) ???:0 0xa13ed4 instantiate_class_template(tree_node*) ???:0 0x823818 start_decl_1(tree_node*, bool) ???:0 0x84b6a6 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int, tree_node*, tree_node*, tree_node**) ???:0 0x99555d c_parse_file() ???:0 0xb2bc61 c_common_parse_file() ???:0 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. ```