https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98688
Bug ID: 98688 Summary: C++ modules support does not work on PowerPC with opaque MMA types vector_pair/vector_quad Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: acsawdey at gcc dot gnu.org Target Milestone: --- Similar to PR98645, we run into trouble if we try to compile code using vector_pair/vector_quad using -fmodule-header: /home/sawdey/work/gcc/trunk2/build/gcc/xg++ -B/home/sawdey/work/gcc/trunk2/build/gcc/ /home/sawdey/work/gcc/trunk2/gcc/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.c -std=c++2a -fmodule-header -S -o mb2.s /home/sawdey/work/gcc/trunk2/gcc/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.c: internal compiler error: in type_node, at cp/module.cc:8779 0x10468287 trees_out::type_node(tree_node*) ../../gcc/gcc/cp/module.cc:8779 0x1046446b trees_out::tree_node(tree_node*) ../../gcc/gcc/cp/module.cc:9106 0x10467dcb trees_out::type_node(tree_node*) ../../gcc/gcc/cp/module.cc:8773 0x1046446b trees_out::tree_node(tree_node*) ../../gcc/gcc/cp/module.cc:9106 0x10465d57 trees_out::core_vals(tree_node*) ../../gcc/gcc/cp/module.cc:6088 0x1046783b trees_out::tree_node_vals(tree_node*) ../../gcc/gcc/cp/module.cc:7141 0x1046783b trees_out::fn_parms_init(tree_node*) ../../gcc/gcc/cp/module.cc:10037 0x10461833 trees_out::decl_value(tree_node*, depset*) ../../gcc/gcc/cp/module.cc:7738 0x1046e163 depset::hash::find_dependencies() ../../gcc/gcc/cp/module.cc:13199 0x1046eae7 module_state::write(elf_out*, cpp_reader*) ../../gcc/gcc/cp/module.cc:17568 0x10470313 finish_module_processing(cpp_reader*) ../../gcc/gcc/cp/module.cc:19747 0x103ae82f c_parse_final_cleanups() ../../gcc/gcc/cp/decl2.c:5178 0x1072cad7 c_common_parse_file() ../../gcc/gcc/c-family/c-opts.c:1233 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. It looks like trees_out::type_node() needs to understand opaque type, and possibly whatever reads that in needs to understand it on the way in as well.