https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99187
Bug ID: 99187 Summary: C++ ICE compiling modules with third party library Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: vision05.dev at gmail dot com Target Milestone: --- (compiler spew) gcc -v: Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc/configure Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.0.0 20210220 (experimental) (GCC) When exporting a function in a module, where the function has an immer::vector<T> (from the immer immutable data structures library) declared or instantiated inside the function body the ICE is produced. The file compiles correctly when the vector is not declared. Command passed to cause the ICE: g++ -fmodules-ts bug.cpp -I/usr/include/c++/10.2.0/immer-0.6.2/ bug.cpp:5:9: internal compiler error: in tree_node, at cp/module.cc:9153 5 | export module bug; | ^~~~~~ 0x69ccde trees_out::tree_node(tree_node*) ../../gcc/gcc/cp/module.cc:9153 0xa16ed9 trees_out::core_vals(tree_node*) ../../gcc/gcc/cp/module.cc:6023 0xa1a2e4 trees_out::tree_node_vals(tree_node*) ../../gcc/gcc/cp/module.cc:7164 0xa1a2e4 trees_out::tree_value(tree_node*) ../../gcc/gcc/cp/module.cc:8984 0xa16374 trees_out::tree_node(tree_node*) ../../gcc/gcc/cp/module.cc:9182 0xa16ed9 trees_out::core_vals(tree_node*) ../../gcc/gcc/cp/module.cc:6023 0xa1a2e4 trees_out::tree_node_vals(tree_node*) ../../gcc/gcc/cp/module.cc:7164 0xa1a2e4 trees_out::tree_value(tree_node*) ../../gcc/gcc/cp/module.cc:8984 0xa16374 trees_out::tree_node(tree_node*) ../../gcc/gcc/cp/module.cc:9182 0xa16ed9 trees_out::core_vals(tree_node*) ../../gcc/gcc/cp/module.cc:6023 0xa1a2e4 trees_out::tree_node_vals(tree_node*) ../../gcc/gcc/cp/module.cc:7164 0xa1a2e4 trees_out::tree_value(tree_node*) ../../gcc/gcc/cp/module.cc:8984 0xa16374 trees_out::tree_node(tree_node*) ../../gcc/gcc/cp/module.cc:9182 0xa16ed9 trees_out::core_vals(tree_node*) ../../gcc/gcc/cp/module.cc:6023 0xa1a2e4 trees_out::tree_node_vals(tree_node*) ../../gcc/gcc/cp/module.cc:7164 0xa1a2e4 trees_out::tree_value(tree_node*) ../../gcc/gcc/cp/module.cc:8984 0xa16374 trees_out::tree_node(tree_node*) ../../gcc/gcc/cp/module.cc:9182 0xa16ed9 trees_out::core_vals(tree_node*) ../../gcc/gcc/cp/module.cc:6023 0xa1a2e4 trees_out::tree_node_vals(tree_node*) ../../gcc/gcc/cp/module.cc:7164 0xa1a2e4 trees_out::tree_value(tree_node*) ../../gcc/gcc/cp/module.cc:8984 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.