https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100583
Bug ID: 100583
Summary: [modules] ICE when importing
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 ;
void foo() { std::span 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’:
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 for instructions.
Even if import is replaced with #include , 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 as a module.