From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 4196B3858C78; Mon, 7 Nov 2022 13:15:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4196B3858C78 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667826941; bh=x0ANXGujdpPCcUPPY2dnF2/8pWOKrCVuIQikOApiVkM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=R6OyNfrRoHKyxZGSLwwT9xl1spJniKxbL3wI3hT7hDPXwL1w2nL6vVaw3z2XKWgQk 5vv9YOxQr8v+V+zCZ+2rqif/Ks8fR0qqYDAObOUvFoUEn/1A1kIyGfRLqpJBfti6gV csSvUNVCDtceq0BVneyJfLUYYeppbgpflqnDkEmg= From: "ro at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug modula2/101392] cc1gm2 -fdump-system-exports SEGV on Solaris/SPARC Date: Mon, 07 Nov 2022 13:15:32 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: modula2 X-Bugzilla-Version: 12.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: ro at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_status Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D101392 Rainer Orth changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW --- Comment #4 from Rainer Orth --- When I tried the 32-bit Solaris/SPARC build again as of 20221103, I still g= ot the same SEGV: Starting program: /var/gcc/modula-2/11.4-gcc-modula-2-g3/gcc/cc1gm2 -quiet -mcpu=3Dv9 -fpim -fno-scaffold-main -fno-scaffold-dynamic -fno-scaffold-sta= tic -fno-m2-plugin -fdump-system-exports -c -I/vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-libs -I/usr/local/lib/gcc/sparc-sun-solaris2.11/13.0.0/m2/m2pim /vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-libs/SYSTEM.mod -o SYSTEM.s [Thread debugging using libthread_db enabled] [New Thread 1 (LWP 1)] SYSTEM module creates type: LOC SYSTEM module creates type: WORD SYSTEM module creates type: BYTE SYSTEM module creates type: ADDRESS SYSTEM module creates type: INTEGER8 SYSTEM module creates type: INTEGER16 SYSTEM module creates type: INTEGER32 SYSTEM module creates type: INTEGER64 SYSTEM module creates type: CARDINAL8 SYSTEM module creates type: CARDINAL16 SYSTEM module creates type: CARDINAL32 SYSTEM module creates type: CARDINAL64 SYSTEM module creates type: WORD16 SYSTEM module creates type: WORD32 SYSTEM module creates type: WORD64 SYSTEM module creates type: BITSET8 SYSTEM module creates type: BITSET16 SYSTEM module creates type: BITSET32 SYSTEM module creates type: REAL32 SYSTEM module creates type: REAL64 SYSTEM module creates type: REAL128 SYSTEM module creates type: COMPLEX32 SYSTEM module creates type: COMPLEX64 SYSTEM module creates type: COMPLEX128 SYSTEM module creates type: CSIZE_T SYSTEM module creates type: CSSIZE_T Thread 2 received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] 0xffbfe00c in ?? () (gdb) bt #0 0xffbfe00c in ?? () #1 0x00d20d1c in m2expr_BuildBinarySetDo (location=3D1338176, settype=3D, op1=3D, op2=3D, op3=3D, binop=3D0xffbfe00c, is_op1lvalue= =3D0, is_op2lvalue=3D0, is_op3lvalue=3D0, nBits=3D, unbounded=3D, varproc=3D, leftproc=3D, rightproc=3D) at /vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-gcc/m2expr.cc:839 #2 0x00d957e0 in CodeBinarySetShift (binop=3D..., doOp=3D..., var=3D242, l= eft=3D247, right=3D248, quad=3D248, op1=3D1114, op2=3D1113, op3=3D1112) at m2/gm2-compiler-boot/M2GenGCC.c:5908 #3 0x00d95910 in CodeSetShift (quad=3D248, op1=3D1114, op2=3D1113, op3=3D1= 112) at m2/gm2-compiler-boot/M2GenGCC.c:5929 #4 0x00d8940c in CodeStatement (q=3D248) at m2/gm2-compiler-boot/M2GenGCC.= c:1819 #5 0x00d9f144 in M2GenGCC_ConvertQuadsToTree (Start=3D248, End=3D340) at m2/gm2-compiler-boot/M2GenGCC.c:8454 #6 0x00de2f68 in M2Scope_ForeachScopeBlockDo (sb=3D0x38cbdd8, p=3D...) at m2/gm2-compiler-boot/M2Scope.c:651 #7 0x00d720e0 in M2Code_CodeBlock (scope=3D163) at m2/gm2-compiler-boot/M2Code.c:511 #8 0x00d54c70 in Lists_ForeachItemInListDo (l=3D0x37794c8, P=3D...) at m2/gm2-compiler-boot/Lists.c:393 #9 0x00e0bb78 in SymbolTable_ForeachProcedureDo (Sym=3D42, P=3D...) at m2/gm2-compiler-boot/SymbolTable.c:14044 #10 0x00d722e4 in M2Code_CodeBlock (scope=3D42) 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=3D0x37929e8) at m2/gm2-compiler-boot/M2Comp.c:= 211 #14 0x00d73a84 in M2Comp_compile (filename=3D0xffbfeb65) at m2/gm2-compiler-boot/M2Comp.c:768 #15 0x00d3a638 in init_PerCompilationInit (filename=3D0xffbfeb65 "/vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-libs/SYSTEM.mod") at /vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-gcc/init.cc:198 #16 0x00ce1c0c in gm2_parse_input_files (filenames=3D0x372d698, filename_co= unt=3D1) 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 0x019063bc in compile_file () at /vol/gcc/src/hg/master/modula-2/gcc/toplev.cc:444 #19 0x0190b1fc in do_compile (no_backend=3Dfalse) at /vol/gcc/src/hg/master/modula-2/gcc/toplev.cc:2125 #20 0x0190b7c4 in toplev::main (this=3D0xffbfe84a, argc=3D15, argv=3D0xffbf= e8b4) at /vol/gcc/src/hg/master/modula-2/gcc/toplev.cc:2277 #21 0x02e05368 in main (argc=3D15, argv=3D0xffbfe8b4) at /vol/gcc/src/hg/master/modula-2/gcc/main.cc:39 (gdb) up #1 0x00d20d1c in m2expr_BuildBinarySetDo (location=3D1338176, settype=3D, op1=3D, op2=3D, op3=3D, binop=3D0xffbfe00c, is_op1lvalue= =3D0, is_op2lvalue=3D0, is_op3lvalue=3D0, nBits=3D, unbounded=3D, varproc=3D, leftproc=3D, rightproc=3D) at /vol/gcc/src/hg/master/modula-2/gcc/m2/gm2-gcc/m2expr.cc:839 839 (*binop) (location, (gdb) p binop $4 =3D (void (*)(location_t, tree, tree, tree, tree, int)) 0xffbfe00c (gdb) x/10i binop 0xffbfe00c: unknown 0xffbfe010: unknown 0xffbfe014: unknown 0xffbfe018: lda [ %sp + %l0 ] (154), %i5 0xffbfe01c: lda [ %o4 + 0x1e0 ] %asi, %i5 0xffbfe020: lda [ %l0 ] (252), %i5 0xffbfe024: lda [ %l0 ] #ASI_BLK_PL, %i5 0xffbfe028: lda [ %l0 ] (244), %i5 0xffbfe02c: illtrap 0x146b40 0xffbfe030: illtrap 0 (gdb) ptype binop type =3D void (*)(location_t, tree, tree, tree, tree, int) (gdb) up #2 0x00d957e0 in CodeBinarySetShift (binop=3D..., doOp=3D..., var=3D242, l= eft=3D247, right=3D248, quad=3D248, op1=3D1114, op2=3D1113, op3=3D1112) at m2/gm2-compiler-boot/M2GenGCC.c:5908 5908 m2expr_BuildBinarySetDo (location, SymbolConversion_Mod2Gcc (SymbolTable_SkipType (SymbolTable_GetType (op1))), SymbolConversion_Mod2Gcc (op1), SymbolConversion_Mod2Gcc (op2), SymbolConversion_Mod2Gcc (op3), bino= p, (SymbolTable_GetMode (op1)) =3D=3D SymbolTable_LeftValue, (SymbolTable_GetM= ode (op2)) =3D=3D SymbolTable_LeftValue, (SymbolTable_GetMode (op3)) =3D=3D SymbolTable_LeftValue, nBits, unbounded, varproc, leftproc, rightproc); (gdb) ptype binop type =3D struct m2expr_BuildSetProcedure_p { m2expr_BuildSetProcedure_t proc; } (gdb) ptype m2expr_BuildSetProcedure_t type =3D void (*)(m2linemap_location_t, m2tree_Tree, m2tree_Tree, m2tree_Tr= ee, m2tree_Tree, unsigned int) There's an inconsistency here, which might well explain the SEGV: * When m2expr_BuildBinarySetDo calls binop, it expects an void (*)(location_t, tree, tree, tree, tree, int) * However, in the caller (CodeBinarySetShift), binop is passed in as a stru= ct m2expr. I suspect that m2expr_BuildBinarySetDo should instead be called with binop.proc instead. Because m2/gm2-compiler-boot/M2GenGCC.c is a generated file, I didn't try to correct this.=