Comment 5 for bug 1945364

Revision history for this message
In , Doko-v (doko-v) wrote :

seen with trunk 20230718:

$ cat foo.ii
module;
# 1 "" 1 3
namespace std {
template <typename> struct hash;
}
typedef long unsigned size_t;
namespace std {
template <typename, typename> struct pair {
  int second;
  template <typename..., size_t, typename..., size_t> constexpr pair();
};
template <typename _T1, typename _T2>
void operator>(pair<_T1, _T2>, pair<_T1, _T2>);
template <typename> struct __new_allocator {
  allocate___n() { allocate___n > this; }
};
template <typename _Tp> using __allocator_base = __new_allocator<_Tp>;
template <typename> struct allocator : __allocator_base<int> {
  __attribute__allocator() {}
};
template class allocator<wchar_t>;
template <size_t> struct array;
void get(array<1>);
template <class _T1, class _T2>
template <typename..., size_t, typename..., size_t>
constexpr pair<_T1, _T2>::pair() : second(get) {}
struct vector {
  friend hash<vector>;
};
void swap(vector);
template <typename> struct __uniq_ptr_impl {
  swap() { std::swap; }
};
template <typename = int> struct unique_ptr {
  __uniq_ptr_impl<int> pointer;
};
struct shared_ptr {
  operator=(unique_ptr<>);
};
struct __shared_ptr {
  friend shared_ptr;
};
void operator==(__shared_ptr, __shared_ptr);
template <unsigned long> struct array {
  size() { size == 0; }
};
} // namespace std
#pragma GCC optimize ""
namespace std {
struct id {
  friend operator>(id, id);
};
struct hash<id>;
} // namespace std
# 7 "" 2
export module spdlog_wrapper;

$ /usr/lib/gcc-snapshot/bin/g++ -std=c++20 -fmodules-ts -Wall -c foo.ii
foo.ii:7:8: internal compiler error: in core_vals, at cp/module.cc:6262
    7 | namespace std {
      | ^~~~~~
0x11e5613 trees_out::core_vals(tree_node*)
        ../../src/gcc/cp/module.cc:6262
0x11e6353 trees_out::tree_node_vals(tree_node*)
        ../../src/gcc/cp/module.cc:7218
0x11ec349 trees_out::tree_value(tree_node*)
        ../../src/gcc/cp/module.cc:9083
0x11e8faf trees_out::tree_node(tree_node*)
        ../../src/gcc/cp/module.cc:9281
0x11e59be trees_out::core_vals(tree_node*)
        ../../src/gcc/cp/module.cc:6171
0x11e6353 trees_out::tree_node_vals(tree_node*)
        ../../src/gcc/cp/module.cc:7218
0x11e6cb7 trees_out::decl_value(tree_node*, depset*)
        ../../src/gcc/cp/module.cc:7797
0x11ee50d depset::hash::find_dependencies(module_state*)
        ../../src/gcc/cp/module.cc:13328
0x11eea54 module_state::write_begin(elf_out*, cpp_reader*, module_state_config&, unsigned int&)
        ../../src/gcc/cp/module.cc:17895
0x79f4e7 finish_module_processing(cpp_reader*)
        ../../src/gcc/cp/module.cc:20237
0x1bc5fd5 c_parse_final_cleanups()
        ../../src/gcc/cp/decl2.cc:5184
0x21034b1 c_common_parse_file()
        ../../src/gcc/c-family/c-opts.cc:1274
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.