https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100583
Bug ID: 100583 Summary: [modules] ICE when importing <span> Product: gcc Version: 11.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: andreemalcher at gmail dot com Target Milestone: --- $ g++ --version g++ (Ubuntu 11.1.0-1ubuntu1~18.04.1) 11.1.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ cat span.cpp import <span>; void foo() { std::span<int> s; } $ g++ -fmodules-ts -std=c++20 -c -x c++-system-header span $ g++ -fmodules-ts -std=c++20 -c span.cpp In module /usr/include/c++/11/span, imported at span.cpp:1: /usr/include/c++/11/span: In instantiation of ‘class std::span<int>’: span.cpp:4:29: required from here /usr/include/c++/11/span:155:9: internal compiler error: Segmentation fault 155 | span(_It __first, size_type __count) | ^~~~ 0x1702697 internal_error(char const*, ...) ???:0 0x7bfc52 instantiate_class_template(tree_node*) ???:0 0x7f17ab complete_type(tree_node*) ???:0 0x6af20b start_decl_1(tree_node*, bool) ???:0 0x6c1e0f start_decl(cp_declarator const*, cp_decl_specifier_seq*, int, tree_node*, tree_node*, tree_node**) ???:0 0x7888ee c_parse_file() ???:0 0x85988d c_common_parse_file() ???:0 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <file:///usr/share/doc/gcc-11/README.Bugs> for instructions. Even if import <span> is replaced with #include <span>, the sheer presence of span.gcm leads to an ICE when compiled with -fmodules-ts. The solution is to use the include and remove the gcm file altogether.But this means that there is no way of importing <span> as a module.