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.

Reply via email to