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

Reply via email to