https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99496
--- Comment #8 from seurer at gcc dot gnu.org --- seurer@marlin:~/gcc/git/build/gcc-test/gcc/testsuite$ /home3/seurer/gcc/git/build/gcc-test/gcc/testsuite/g++7/../../xg++ -B/home3/seurer/gcc/git/build/gcc-test/gcc/testsuite/g++7/../../ /home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/modules/xtreme-header-3_a.H -fdiagnostics-plain-output -nostdinc++ -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/powerpc64le-unknown-linux-gnu -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/libsupc++ -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/include/backward -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/util -fmessage-length=0 -std=c++17 -pedantic-errors -Wno-long-long -fmodule-header -S -o xtreme-header-3_a.s --save-temps seurer@marlin:~/gcc/git/build/gcc-test/gcc/testsuite$ /home3/seurer/gcc/git/build/gcc-test/gcc/testsuite/g++7/../../xg++ -B/home3/seurer/gcc/git/build/gcc-test/gcc/testsuite/g++7/../../ /home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/modules/xtreme-header-3_b.C -fdiagnostics-plain-output -nostdinc++ -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/powerpc64le-unknown-linux-gnu -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/libsupc++ -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/include/backward -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/util -fmessage-length=0 -std=c++17 -pedantic-errors -Wno-long-long -fmodules-ts -fno-module-lazy -S -o xtreme-header-3_b.s --save-temps seurer@marlin:~/gcc/git/build/gcc-test/gcc/testsuite$ /home3/seurer/gcc/git/build/gcc-test/gcc/testsuite/g++7/../../xg++ -B/home3/seurer/gcc/git/build/gcc-test/gcc/testsuite/g++7/../../ /home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/modules/xtreme-header-3_c.C -fdiagnostics-plain-output -nostdinc++ -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/powerpc64le-unknown-linux-gnu -I/home/seurer/gcc/git/build/gcc-test/powerpc64le-unknown-linux-gnu/libstdc++-v3/include -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/libsupc++ -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/include/backward -I/home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/util -fmessage-length=0 -std=c++17 -pedantic-errors -Wno-long-long -fmodules-ts -fno-module-lazy -S -o xtreme-header-3_c.s --save-temps /home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/modules/xtreme-header-3_c.C:3:90: internal compiler error: same canonical type node for different types 'void' and 'std::__void_t<typename _Tp::allocator_type>' 0x106bbb83 comptypes(tree_node*, tree_node*, int) /home/seurer/gcc/git/gcc-test/gcc/cp/typeck.c:1554 0x10595bdf template_args_equal(tree_node*, tree_node*, bool) /home/seurer/gcc/git/gcc-test/gcc/cp/pt.c:9207 0x105954cf comp_template_args(tree_node*, tree_node*, tree_node**, tree_node**, bool) /home/seurer/gcc/git/gcc-test/gcc/cp/pt.c:9254 0x105a687b spec_hasher::equal(spec_entry*, spec_entry*) /home/seurer/gcc/git/gcc-test/gcc/cp/pt.c:1725 0x1062ed4b hash_table<spec_hasher, false, xcallocator>::verify(spec_entry* const&, unsigned int) /home/seurer/gcc/git/gcc-test/gcc/hash-table.h:1032 0x1062f56f hash_table<spec_hasher, false, xcallocator>::find_slot_with_hash(spec_entry* const&, unsigned int, insert_option) /home/seurer/gcc/git/gcc-test/gcc/hash-table.h:968 0x105b1acf add_mergeable_specialization(bool, spec_entry*, tree_node*, unsigned int) /home/seurer/gcc/git/gcc-test/gcc/cp/pt.c:30018 0x104c34db trees_in::decl_value() /home/seurer/gcc/git/gcc-test/gcc/cp/module.cc:8068 0x104c5247 trees_in::tree_node(bool) /home/seurer/gcc/git/gcc-test/gcc/cp/module.cc:9174 0x104d1dbb module_state::read_cluster(unsigned int) /home/seurer/gcc/git/gcc-test/gcc/cp/module.cc:14858 0x104d22a3 module_state::load_section(unsigned int, binding_slot*) /home/seurer/gcc/git/gcc-test/gcc/cp/module.cc:18125 0x104d396f module_state::read_language(bool) /home/seurer/gcc/git/gcc-test/gcc/cp/module.cc:18054 0x104d3deb direct_import /home/seurer/gcc/git/gcc-test/gcc/cp/module.cc:18916 0x1055a057 cp_parser_import_declaration /home/seurer/gcc/git/gcc-test/gcc/cp/parser.c:13868 0x1058002b cp_parser_translation_unit /home/seurer/gcc/git/gcc-test/gcc/cp/parser.c:4905 0x1058002b c_parse_file() /home/seurer/gcc/git/gcc-test/gcc/cp/parser.c:45241 0x1077dadb c_common_parse_file() /home/seurer/gcc/git/gcc-test/gcc/c-family/c-opts.c:1218 Looking at the 3 .ii files the above created the last one is just # 0 "/home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/modules/xtreme-header-3_c.C" # 0 "<built-in>" # 0 "<command-line>" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 0 "<command-line>" 2 # 1 "/home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/modules/xtreme-header-3_c.C" import "/home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/modules/xtreme-header-3_a.H"; going further... seurer@marlin:~/gcc/git/build/gcc-test/gcc/testsuite$ cat /home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/modules/xtreme-header-3_a.H // { dg-additional-options -fmodule-header } // { dg-module-cmi {} } #include "xtreme-header-3.h" seurer@marlin:~/gcc/git/build/gcc-test/gcc/testsuite$ cat /home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/modules/xtreme-header-3.h // Containers (except ranges-including ones) #include <array> #include <bitset> #include <deque> #include <forward_list> #include <initializer_list> #include <iterator> #include <list> #include <map> #include <optional> #include <queue> #include <set> #include <stack> #include <string> #include <string_view> #include <tuple> #include <unordered_map> #include <unordered_set> #include <variant> #include <vector> I am attaching all the .ii files and the .H/.h files.