Comment 43 for bug 1890435

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

The last one now is reproducible (not sure if that is what the segfault was), but still useful.

$ cd /root/qemu-5.0/b/qemu/m68k-linux-user
$ cc -iquote /root/qemu-5.0/b/qemu/linux-user/m68k -iquote linux-user/m68k -iquote /root/qemu-5.0/tcg/arm -isystem /root/qemu-5.0/linux-headers -isystem /root/qemu-5.0/b/qemu/linux-headers -iquote . -iquote /root/qemu-5.0 -iquote /root/qemu-5.0/accel/tcg -iquote /root/qemu-5.0/include -iquote /root/qemu-5.0/disas/libvixl -I/usr/include/pixman-1 -pthread -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -fPIE -DPIE -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -g -O2 -fdebug-prefix-map=/root/qemu-5.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/include/p11-kit-1 -DSTRUCT_IOVEC_DEFINED -I/usr/include/libpng16 -I/root/qemu-5.0/capstone/include -isystem ../linux-headers -iquote .. -iquote /root/qemu-5.0/target/m68k -DNEED_CPU_H -iquote /root/qemu-5.0/include -I/root/qemu-5.0/linux-user/m68k -I/root/qemu-5.0/linux-user/host/arm -I/root/qemu-5.0/linux-user -Ilinux-user/m68k -MMD -MP -MT linux-user/m68k/signal.o -MF linux-user/m68k/signal.d -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g -c -o linux-user/m68k/signal.o /root/qemu-5.0/linux-user/m68k/signal.c
/root/qemu-5.0/linux-user/m68k/signal.c:44:1: error: ‘TYPE_CANONICAL’ is not compatible
   44 | };
      | ^
 <array_type 0xf6ba1a80
    type <integer_type 0xf7edb420 unsigned int asm_written public unsigned SI
        size <integer_cst 0xf7688e58 constant 32>
        unit-size <integer_cst 0xf7688e70 constant 4>
        align:32 warn_if_not_align:0 symtab:-142400624 alias-set -1 canonical-type 0xf7edb420 precision:32 min <integer_cst 0xf76990f0 0> max <integer_cst 0xf76990d8 4294967295>
        pointer_to_this <pointer_type 0xf769eba0>>
    SI size <integer_cst 0xf7688e58 32> unit-size <integer_cst 0xf7688e70 4>
    align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xf6ba1a80
    domain <integer_type 0xf73a0660
        type <integer_type 0xf7edb060 sizetype public unsigned SI size <integer_cst 0xf7688e58 32> unit-size <integer_cst 0xf7688e70 4>
            align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xf7edb060 precision:32 min <integer_cst 0xf7688e88 0> max <integer_cst 0xf7688000 4294967295>>
        SI size <integer_cst 0xf7688e58 32> unit-size <integer_cst 0xf7688e70 4>
        align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xf73a0660 precision:32 min <integer_cst 0xf7688e88 0> max <integer_cst 0xf7688e88 0>>>
/root/qemu-5.0/linux-user/m68k/signal.c:44:1: error: ‘TYPE_MODE’ of ‘TYPE_CANONICAL’ is not compatible
 <array_type 0xf6ba1a80
    type <integer_type 0xf7edb420 unsigned int asm_written public unsigned SI
        size <integer_cst 0xf7688e58 constant 32>
        unit-size <integer_cst 0xf7688e70 constant 4>
        align:32 warn_if_not_align:0 symtab:-142400624 alias-set -1 canonical-type 0xf7edb420 precision:32 min <integer_cst 0xf76990f0 0> max <integer_cst 0xf76990d8 4294967295>
        pointer_to_this <pointer_type 0xf769eba0>>
    SI size <integer_cst 0xf7688e58 32> unit-size <integer_cst 0xf7688e70 4>
    align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xf6ba1a80
    domain <integer_type 0xf73a0660
        type <integer_type 0xf7edb060 sizetype public unsigned SI size <integer_cst 0xf7688e58 32> unit-size <integer_cst 0xf7688e70 4>
            align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xf7edb060 precision:32 min <integer_cst 0xf7688e88 0> max <integer_cst 0xf7688000 4294967295>>
        SI size <integer_cst 0xf7688e58 32> unit-size <integer_cst 0xf7688e70 4>
        align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xf73a0660 precision:32 min <integer_cst 0xf7688e88 0> max <integer_cst 0xf7688e88 0>>>
 <array_type 0xf6ba1a20
    type <integer_type 0xf6ea5d80 abi_ulong asm_written public unsigned SI
        size <integer_cst 0xf7688e58 constant 32>
        unit-size <integer_cst 0xf7688e70 constant 4>
        user align:16 warn_if_not_align:0 symtab:-152437184 alias-set -1 canonical-type 0xf7edb420 precision:32 min <integer_cst 0xf76990f0 0> max <integer_cst 0xf76990d8 4294967295>
        pointer_to_this <pointer_type 0xf6b207e0>>
    no-force-blk BLK size <integer_cst 0xf7688e58 32> unit-size <integer_cst 0xf7688e70 4>
    user align:16 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xf6ba1a80
    domain <integer_type 0xf73a0660
        type <integer_type 0xf7edb060 sizetype public unsigned SI size <integer_cst 0xf7688e58 32> unit-size <integer_cst 0xf7688e70 4>
            align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xf7edb060 precision:32 min <integer_cst 0xf7688e88 0> max <integer_cst 0xf7688000 4294967295>>
        SI size <integer_cst 0xf7688e58 32> unit-size <integer_cst 0xf7688e70 4>
        align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xf73a0660 precision:32 min <integer_cst 0xf7688e88 0> max <integer_cst 0xf7688e88 0>>>
/root/qemu-5.0/linux-user/m68k/signal.c:44:1: internal compiler error: ‘verify_type’ failed
0x980721 verify_type(tree_node const*)
 ../../src/gcc/tree.c:14727
0x3969e3 gen_type_die_with_usage
 ../../src/gcc/dwarf2out.c:25498
0x397fe9 gen_type_die
 ../../src/gcc/dwarf2out.c:25728
0x393c69 gen_decl_die
 ../../src/gcc/dwarf2out.c:26436
0x395ccb gen_member_die
 ../../src/gcc/dwarf2out.c:25182
0x395ccb gen_struct_or_union_type_die
 ../../src/gcc/dwarf2out.c:25278
0x395ccb gen_tagged_type_die
 ../../src/gcc/dwarf2out.c:25479
0x396c33 gen_tagged_type_die
 ../../src/gcc/dwarf2out.c:25433
0x396c33 gen_type_die_with_usage
 ../../src/gcc/dwarf2out.c:25674
0x397fe9 gen_type_die
 ../../src/gcc/dwarf2out.c:25728
0x3938c7 gen_decl_die
 ../../src/gcc/dwarf2out.c:26360
0x394aed dwarf2out_decl
 ../../src/gcc/dwarf2out.c:26908
0x394f31 dwarf2out_type_decl
 ../../src/gcc/dwarf2out.c:26633
0x394f31 dwarf2out_type_decl
 ../../src/gcc/dwarf2out.c:26628
0x648c3b rest_of_type_compilation(tree_node*, int)
 ../../src/gcc/passes.c:339
0x1ce217 finish_struct(unsigned int, tree_node*, tree_node*, tree_node*, c_struct_parse_info*)
 ../../src/gcc/c/c-decl.c:8657
0x21eb69 c_parser_struct_or_union_specifier
 ../../src/gcc/c/c-parser.c:3438
0x21eb69 c_parser_declspecs(c_parser*, c_declspecs*, bool, bool, bool, bool, bool, bool, bool, c_lookahead_kind)
 ../../src/gcc/c/c-parser.c:2961
0x223471 c_parser_declaration_or_fndef
 ../../src/gcc/c/c-parser.c:1960
0x22bbdf c_parser_external_declaration
 ../../src/gcc/c/c-parser.c:1745
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-10/README.Bugs> for instructions.

The bug is not reproducible, so it is likely a hardware or OS problem.

---

I created preprocessed output via --save-temps in
/root/qemu-5.0/b/qemu/m68k-linux-user/signal.i

For that I then reduced the commandline
1. drop -iquote/-I
2. drop duplicate options
3. drop -D<define> as those were used in preprocessor step
4. drop all warnings except -Wall
5. drop MMD/MT/MF options
6. drop -foptions one by one except -fPIE

Now the command is rather short and still triggers the issue shown in comment #42
$ cc -pthread -fPIE -Wall -std=gnu99 -g -O2 -c -o /tmp/test.o /root/qemu-5.0/b/qemu/m68k-linux-user/signal.i

Attaching the .i file