https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99936
Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fxcoudert at gcc dot gnu.org --- Comment #4 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> --- Currently still fails on x86_64-apple-darwin21 (https://gcc.gnu.org/pipermail/gcc-testresults/2021-December/743901.html), as well as the future aarch64-apple-darwin21. Looks like a front-end issue. $ g++ testsuite/g++.dg/modules/xtreme-header-5_a.H -std=c++2a -fmodule-header -S testsuite/g++.dg/modules/xtreme-header-5_a.H: internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074 * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 4.1 * frame #0: 0x000000010186bc24 cc1plus`internal_error(char const*, ...) [inlined] auto_diagnostic_group::auto_diagnostic_group(this=<unavailable>) at diagnostic.c:2018:14 frame #1: 0x000000010186bc24 cc1plus`internal_error(gmsgid="tree check: %s, have %s in %s, at %s:%d") frame #2: 0x000000010193d07c cc1plus`tree_check_failed(node=<unavailable>, file=<unavailable>, line=<unavailable>, function=<unavailable>) at tree.c:8702:18 frame #3: 0x000000010192064c cc1plus`template_info_decl_check(t=<unavailable>, f=<unavailable>, l=<unavailable>, fn=<unavailable>) at cp-tree.h:651:21 frame #4: 0x0000000100199f24 cc1plus`trees_out::get_merge_kind(this=<unavailable>, decl=0x00000001239bb738, dep=<unavailable>) at cp-tree.h:639:3 frame #5: 0x00000001001b1338 cc1plus`trees_out::decl_value(this=0x000000016fdfeaf0, decl=0x00000001239bb738, dep=0x0000000000000000) at module.cc:7501:34 frame #6: 0x00000001001b31bc cc1plus`trees_out::decl_node(this=0x000000016fdfeaf0, decl=0x00000001239bb738, ref=<unavailable>) at module.cc:8536:18 frame #7: 0x00000001001b3dcc cc1plus`trees_out::tree_node(this=0x000000016fdfeaf0, t=0x00000001239bb738) at module.cc:9092:32 frame #8: 0x00000001001b43d4 cc1plus`trees_out::chained_decls(this=0x000000016fdfeaf0, decls=0x00000001239bb738) at module.cc:4840:17 frame #9: 0x00000001001b4ffc cc1plus`trees_out::core_vals(this=0x000000016fdfeaf0, t=0x000000012392a160) at module.cc:6060:21 frame #10: 0x00000001001ba1b0 cc1plus`trees_out::tree_value(tree_node*) [inlined] trees_out::tree_node_vals(t=0x000000012392a160, this=0x000000016fdfeaf0) at module.cc:7062:13 frame #11: 0x00000001001ba1a4 cc1plus`trees_out::tree_value(this=0x000000016fdfeaf0, t=0x000000012392a160) frame #12: 0x00000001001b3cd8 cc1plus`trees_out::tree_node(this=0x000000016fdfeaf0, t=<unavailable>) at module.cc:9097:14 frame #13: 0x00000001001ba318 cc1plus`trees_out::write_function_def(this=0x000000016fdfeaf0, decl=0x0000000123995d00) at module.cc:11354:13 frame #14: 0x00000001001bd2d0 cc1plus`depset::hash::find_dependencies(this=0x0000000102310000, module=<unavailable>) at module.cc:13130:31 frame #15: 0x00000001001bd7cc cc1plus`module_state::write(this=0x00000001040445b0, to=0x000000016fdfee30, reader=<unavailable>) at module.cc:17617:27 frame #16: 0x00000001001bee2c cc1plus`finish_module_processing(reader=0x000000010380d200) at module.cc:19873:21 frame #17: 0x00000001001253a0 cc1plus`c_parse_final_cleanups() at decl2.c:5310:28 frame #18: 0x000000010130669c cc1plus`::compile_file() at toplev.c:452:25 frame #19: 0x00000001019433ac cc1plus`toplev::main(this=0x000000016fdff1f8, argc=<unavailable>, argv=<unavailable>) at toplev.c:2156:24 frame #20: 0x00000001019442dc cc1plus`main(argc=21, argv=0x000000016fdff368) at main.c:39:23 frame #21: 0x00000001030510f4 dyld`start + 520 The tree that triggers the check is: <namespace_decl 0x133cd7738 __tc type <void_type 0x104064f18 void visited type_6 VOID align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x104064f18 pointer_to_this <pointer_type 0x104064fc0>> external in_system_header VOID /private/tmp/irun/include/c++/12.0.0/chrono:2097:34 align:1 warn_if_not_align:0 context <function_decl 0x133cb1d00 __units_suffix_misc> abstract_origin <namespace_decl 0x10472eb58 __detail> module 0:./testsuite/g++.dg/modules/xtreme-header-5_a.H purview chain <var_decl 0x133cf0360 __p>>