https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115798
Bug ID: 115798
Summary: [15 Regression][modules] ICE when re-exporting a type
exported from base module's GMF
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: m.cencora at gmail dot com
Target Milestone: ---
$ cat base.cpp
module;
#include <cstdint>
export module base;
export
{
using ::int8_t;
}
export namespace std
{
using std::int8_t;
}
$ cat std.cpp
export module std;
import base;
export namespace std
{
using std::int8_t;
}
$ cat main.cpp
import std;
import base;
int main()
{
static_assert(__is_same(int8_t, std::int8_t));
}
$ /opt/gcc-latest/bin/g++ -fmodules-ts base.cpp std.cpp main.cpp
std.cpp:7:16: error: ‘typedef __int8_t@base int8_t@base’ conflicts with a
previous declaration
7 | using std::int8_t;
| ^~~~~~
‘
‘lang_*’ check: failed in dump_decl, at cp/error.cc:1424
0x79134c lang_check_failed(char const*, int, char const*)
../../gcc/cp/tree.cc:6306
0x9d4d76 dump_decl
../../gcc/cp/error.cc:1424
0x9e01ce decl_to_string
../../gcc/cp/error.cc:3324
0x9e01ce cp_printer
../../gcc/cp/error.cc:4497
0x2707ba2 pretty_printer::format(text_info*, urlifier const*)
../../gcc/pretty-print.cc:1776
0x26d59dd pp_format(pretty_printer*, text_info*, urlifier const*)
../../gcc/pretty-print.h:575
0x26d59dd diagnostic_context::report_diagnostic(diagnostic_info*)
../../gcc/diagnostic.cc:1488
0x26d5ce6 diagnostic_impl
../../gcc/diagnostic.cc:1651
0x26d92bd inform(unsigned int, char const*, ...)
../../gcc/diagnostic.cc:1742
0xa80b2b do_nonmember_using_decl
../../gcc/cp/name-lookup.cc:5311
0xa96fb7 finish_nonmember_using_decl(tree_node*, tree_node*)
../../gcc/cp/name-lookup.cc:6695
0xa9d394 finish_using_decl
../../gcc/cp/parser.cc:22388
0xafaf23 cp_parser_using_declaration
../../gcc/cp/parser.cc:22552
0xb01c00 cp_parser_declaration
../../gcc/cp/parser.cc:15715
0xb013e7 cp_parser_declaration_seq_opt
../../gcc/cp/parser.cc:15449
0xb0168c cp_parser_namespace_body
../../gcc/cp/parser.cc:22297
0xb0168c cp_parser_namespace_definition
../../gcc/cp/parser.cc:22275
0xb019a0 cp_parser_declaration
../../gcc/cp/parser.cc:15699
0xb01b99 cp_parser_module_export
../../gcc/cp/parser.cc:15355
0xb01b99 cp_parser_declaration
../../gcc/cp/parser.cc:15655
Works fine on gcc-14