[Bug modula2/105392] SEGV compiling gm2-libs-pim/BitBlockOps.mod on SPARC

ro at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Nov 10 13:07:18 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105392

--- Comment #2 from Rainer Orth <ro at gcc dot gnu.org> ---
With PR modula2/101392 fixed, I ran into this one again.  As it turns out, it's
another instance of the same issue:

$ cc1gm2 -iplugindir=/var/gcc/modula-2/11.4-gcc-g3/./gcc/plugin -quiet -mcpu=v9
-g -O2 -fPIC -fplugin=m2rte -c -I ../libm2pim -I
/vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-libs-pim -I
/vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-libs -I
/vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-libs-iso
/vol/gcc/src/hg/master/modula-2/libgm2/libm2log/../../gcc/m2/gm2-libs-pim/BitBlockOps.mod
-o BitBlockOps.s

Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0xffbfde4c in ?? ()
(gdb) bt
#0  0xffbfde4c in ?? ()
#1  0x00d2d40c in m2statement_BuildUnaryForeachWordDo (location=3659819,
type=<type_decl 0xfa820630 BITSET>, op1=<var_decl 0xfa86c840 _T97>,
op2=<var_decl 0xfa86c7e8 _T96>, unop=0xffbfde4c, is_op1lvalue=0,
is_op2lvalue=1, is_op1const=0, is_op2const=0) at
/vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-gcc/m2statement.cc:543
#2  0x00d95e4c in CodeUnarySet (unop=..., constop=..., quad=338, result=2319,
expr=2318) at m2/gm2-compiler-boot/M2GenGCC.c:6017
#3  0x00d979a8 in CodeNegateChecked (quad=338, op1=2319, op3=2318) at
m2/gm2-compiler-boot/M2GenGCC.c:6554
#4  0x00d893dc in CodeStatement (q=338) at m2/gm2-compiler-boot/M2GenGCC.c:1815
#5  0x00d9f104 in M2GenGCC_ConvertQuadsToTree (Start=338, End=382) at
m2/gm2-compiler-boot/M2GenGCC.c:8454
#6  0x00de2f28 in M2Scope_ForeachScopeBlockDo (sb=0x38efa90, p=...) at
m2/gm2-compiler-boot/M2Scope.c:651
#7  0x00d720e0 in M2Code_CodeBlock (scope=304) at
m2/gm2-compiler-boot/M2Code.c:511
#8  0x00d54c70 in Lists_ForeachItemInListDo (l=0x3773c48, P=...) at
m2/gm2-compiler-boot/Lists.c:393
#9  0x00e0bb38 in SymbolTable_ForeachProcedureDo (Sym=155, P=...) at
m2/gm2-compiler-boot/SymbolTable.c:14044
#10 0x00d722e4 in M2Code_CodeBlock (scope=155) at
m2/gm2-compiler-boot/M2Code.c:543
#11 0x00d71660 in DoCodeBlock () at m2/gm2-compiler-boot/M2Code.c:274
#12 0x00d71f20 in M2Code_Code () at m2/gm2-compiler-boot/M2Code.c:474
#13 0x00d72574 in Compile (s=0x376d628) at m2/gm2-compiler-boot/M2Comp.c:211
#14 0x00d73a84 in M2Comp_compile (filename=0xffbfe9df) at
m2/gm2-compiler-boot/M2Comp.c:768
#15 0x00d3a638 in init_PerCompilationInit (filename=0xffbfe9df
"/vol/gcc/src/hg/master/modula-2/libgm2/libm2log/../../gcc/m2/gm2-libs-pim/BitBlockOps.mod")
at /vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-gcc/init.cc:198
#16 0x00ce1c0c in gm2_parse_input_files (filenames=0x372d6a8, filename_count=1)
at /vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-lang.cc:461
#17 0x00ce1c68 in gm2_langhook_parse_file () at
/vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-lang.cc:468
#18 0x0190637c in compile_file () at
/vol/gcc/src/hg/master/modula-2/gcc/toplev.cc:444
#19 0x0190b1bc in do_compile (no_backend=false) at
/vol/gcc/src/hg/master/modula-2/gcc/toplev.cc:2125
#20 0x0190b784 in toplev::main (this=0xffbfe66a, argc=20, argv=0xffbfe6d4) at
/vol/gcc/src/hg/master/modula-2/gcc/toplev.cc:2277
#21 0x02e05328 in main (argc=20, argv=0xffbfe6d4) at
/vol/gcc/src/hg/master/modula-2/gcc/main.cc:39
(gdb) up
#1  0x00d2d40c in m2statement_BuildUnaryForeachWordDo (location=3659819,
type=<type_decl 0xfa820630 BITSET>, op1=<var_decl 0xfa86c840 _T97>,
op2=<var_decl 0xfa86c7e8 _T96>, unop=0xffbfde4c, is_op1lvalue=0,
is_op2lvalue=1, is_op1const=0, is_op2const=0) at
/vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-gcc/m2statement.cc:543
543         m2statement_BuildAssignmentTree (

    /* Small set size <= TSIZE(WORD).  */
    m2statement_BuildAssignmentTree (
        location, m2treelib_get_rvalue (location, op1, type, is_op1lvalue),
        (*unop) (location,
                 m2treelib_get_rvalue (location, op2, type, is_op2lvalue),
                 FALSE));

(gdb) x/5i unop
   0xffbfde4c:  unknown
   0xffbfde50:  unknown
   0xffbfde54:  unknown
   0xffbfde58:  fbne  0xfff004f8
   0xffbfde5c:  illtrap  0xfff7d82b
(gdb) ptype unop
type = union tree_node {
[...]
} *(*)(location_t, tree, int)
(gdb) up
#2  0x00d95e4c in CodeUnarySet (unop=..., constop=..., quad=338, result=2319,
expr=2318) at m2/gm2-compiler-boot/M2GenGCC.c:6017
6017          m2statement_BuildUnaryForeachWordDo (location,
SymbolConversion_Mod2Gcc (SymbolTable_GetType (result)),
SymbolConversion_Mod2Gcc (result), SymbolConversion_Mod2Gcc (expr), unop,
(SymbolTable_GetMode (result)) == SymbolTable_LeftValue, (SymbolTable_GetMode
(expr)) == SymbolTable_LeftValue, SymbolTable_IsConst (result),
SymbolTable_IsConst (expr));
(gdb) ptype unop
type = struct m2expr_BuildUnarySetFunction_p {
    m2expr_BuildUnarySetFunction_t proc;
}

With the attached patch, I got the build to complete.


More information about the Gcc-bugs mailing list