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.

Reply via email to