https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118920

Nathaniel Shead <nshead at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nshead at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2025-02-19
     Ever confirmed|0                           |1

--- Comment #5 from Nathaniel Shead <nshead at gcc dot gnu.org> ---
Confirmed.  Here's a fairly minimal reduction:

$ cat filesystem.hpp
template <typename T> struct __shared_ptr {
  template <typename> friend struct out_ptr_t;
};
inline namespace __cxx11 __attribute__((__abi_tag__)) {
  struct _Impl;
}
struct path {
  __shared_ptr<_Impl> _M_impl;
};

$ cat memory.hpp
template <typename T> struct out_ptr_t {
  operator int() const;
};

$ cat demo.hpp
#include "memory.hpp"

$ cat bug.cpp
export module Base;
import "memory.hpp";
import "filesystem.hpp";
import "demo.hpp";

$ g++ -fmodules -fno-module-lazy demo.hpp memory.hpp filesystem.hpp bug.cpp
bug.cpp:4:19: internal compiler error: canonical types differ for identical
types ‘const out_ptr_t<T>’ and ‘const out_ptr_t<T>’
    4 | import "demo.hpp";
      |                   ^
0x3cab7bf internal_error(char const*, ...)
        ../../gcc/gcc/diagnostic-global-context.cc:517
0x136ec53 comptypes(tree_node*, tree_node*, int)
        ../../gcc/gcc/cp/typeck.cc:1738
0x136d75b structural_comptypes
        ../../gcc/gcc/cp/typeck.cc:1553
0x136ebd1 comptypes(tree_node*, tree_node*, int)
        ../../gcc/gcc/cp/typeck.cc:1731
0x1370258 compparms(tree_node const*, tree_node const*)
        ../../gcc/gcc/cp/typeck.cc:2049
0x111cbe1 check_mergeable_decl
        ../../gcc/gcc/cp/module.cc:11448
0x111e476 key_mergeable
        ../../gcc/gcc/cp/module.cc:11714
0x110d389 decl_value
        ../../gcc/gcc/cp/module.cc:8396
0x1114ad0 tree_node
        ../../gcc/gcc/cp/module.cc:9864
0x1133aa0 module_state::read_cluster(unsigned int)
        ../../gcc/gcc/cp/module.cc:16290
0x113ed74 module_state::load_section(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:19824
0x113ea70 module_state::read_language(bool)
        ../../gcc/gcc/cp/module.cc:19753
0x1142598 direct_import
        ../../gcc/gcc/cp/module.cc:20799
0x1142785 import_module(module_state*, unsigned long, bool, tree_node*,
cpp_reader*)
        ../../gcc/gcc/cp/module.cc:20839
0x11ad7e3 cp_parser_import_declaration
        ../../gcc/gcc/cp/parser.cc:15767
0x1192d91 cp_parser_translation_unit
        ../../gcc/gcc/cp/parser.cc:5434
0x121c201 c_parse_file()
        ../../gcc/gcc/cp/parser.cc:53949
0x14533b4 c_common_parse_file()
        ../../gcc/gcc/c-family/c-opts.cc:1379
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to