[Bug target/52425] [4.6 Regression] ICE when compiling file from audacious on debian sparc

2012-02-29 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52425

Richard Guenther  changed:

   What|Removed |Added

 Target||sparc-linux-gnu
  Component|c   |target
  Known to work||4.5.3, 4.7.0
   Target Milestone|--- |4.6.4
Summary|ICE when compiling file |[4.6 Regression] ICE when
   |from audacious on debian|compiling file from
   |sparc   |audacious on debian sparc
  Known to fail||4.6.2


[Bug target/52425] [4.6 Regression] ICE when compiling file from audacious on debian sparc

2012-02-29 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52425

Mikael Pettersson  changed:

   What|Removed |Added

 CC||mikpe at it dot uu.se

--- Comment #1 from Mikael Pettersson  2012-02-29 
12:41:15 UTC ---
I can reproduce the ICE with a cross to sparc64-linux and -fPIC -g -O2
-std=gnu99 -pthread -S -m32 -mcpu=v8.

The ICE stopped occurring on trunk with r171154:
http://gcc.gnu.org/ml/gcc-cvs/2011-03/msg00576.html
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01114.html

However that's merely a minor IRA cost tweak with no SPARC-specific bits, so I
suspect the problem is elsewhere.


[Bug target/52425] [4.6 Regression] ICE when compiling file from audacious on debian sparc

2012-02-29 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52425

Mikael Pettersson  changed:

   What|Removed |Added

 CC||bernds at gcc dot gnu.org

--- Comment #2 from Mikael Pettersson  2012-02-29 
15:36:42 UTC ---
The ICE first appeared in r164552, Bernd Schmidt's first PR44373 aka head
merging patch, then disappeared when r164552 was reverted, then reappeared in
r167779 when the updated PR44374 patch was committed.  Adding Bernd to CC list.


[Bug target/52425] [4.6 Regression] ICE when compiling file from audacious on debian sparc

2012-02-29 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52425

--- Comment #3 from Mikael Pettersson  2012-02-29 
19:43:38 UTC ---
Created attachment 26789
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26789
reduced test case


[Bug target/52425] [4.6 Regression] ICE when compiling file from audacious on debian sparc

2012-03-02 Thread bernds at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52425

--- Comment #4 from Bernd Schmidt  2012-03-02 
14:22:54 UTC ---
For some reason I can never reproduce sparc bugs with cross compilers. The
original testcase doesn't fail here; the reduced one fails but with a different
error message, and it fails in instantiate_virtual_regs which is before any
head-merging ever runs:

sparcbug.i: In function ‘action_button_cb’:
sparcbug.i:57:1: error: unrecognizable insn:
(insn 7 6 8 3 (set (reg:SI 130)
(lo_sum:SI (reg:SI 130)
(unspec:SI [
(symbol_ref/f:DI ("*.LC0") [flags 0x2] )
] 0))) sparcbug.i:49 -1
 (nil))

Breakpoint 2, internal_error (gmsgid=0xd6093d "in %s, at %s:%d") at
../../trunk/gcc/diagnostic.c:839
839{
(gdb) bt
#0  internal_error (gmsgid=0xd6093d "in %s, at %s:%d") at
../../trunk/gcc/diagnostic.c:839
#1  0x00bcf7cc in fancy_abort (file=, line=2123,
function=0xc99260 "extract_insn")
at ../../trunk/gcc/diagnostic.c:899
#2  0x0081e8d3 in _fatal_insn (msgid=,
insn=0x76bc5990, 
file=0xc9885b "../../trunk/gcc/recog.c", line=2123, function=0xc99260
"extract_insn")
at ../../trunk/gcc/rtl-error.c:110
#3  0x0081e912 in _fatal_insn_not_found (insn=0xc99260, file=0xc9886b
"recog.c", line=2123, 
function=0xa ) at
../../trunk/gcc/rtl-error.c:118
#4  0x007ea2b4 in extract_insn (insn=0x76bc5990) at
../../trunk/gcc/recog.c:2123
#5  0x006cfe1c in instantiate_virtual_regs_in_insn
(insn=0x76bc5990) at ../../trunk/gcc/function.c:1555
#6  instantiate_virtual_regs () at ../../trunk/gcc/function.c:1911

Please post the actual command line that gets passed to cc1. Also, it would be
helpful if you could load cc1 into a debugger and do the following at the crash
site in output_addr_const:

(gdb) p debug_rtx (x)

and at some higher level, also use debug_rtx to print out the insn it's trying
to print.


[Bug target/52425] [4.6 Regression] ICE when compiling file from audacious on debian sparc

2012-03-02 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52425

--- Comment #5 from Mikael Pettersson  2012-03-02 
16:21:37 UTC ---
Reproduced with a vanilla gcc-4.6-20120224, configured
/tmp/gcc-4.6-20120224/configure --target=sparc64-unknown-linux
--prefix=/home/mikpe/pkgs/linux-x86/cross-sparc64
--with-gmp=/home/mikpe/pkgs/linux-x86/gmp-5.0.4
--with-mpfr=/home/mikpe/pkgs/linux-x86/mpfr-3.1.0
--with-mpc=/home/mikpe/pkgs/linux-x86/mpc-0.9 --disable-libquadmath
--disable-plugin --disable-lto --disable-nls --disable-shared
--disable-libmudflap --disable-libgomp --disable-multilib
--enable-threads=posix --enable-checking=release --enable-languages=c, and
running on i686-linux.

Original test case:
> /tmp/objdir/gcc/xgcc -B/tmp/objdir/gcc -fPIC -g -O2 -std=gnu99 -pthread -S 
> -m32 -mcpu=v8 pr52425-1.i
ui_fileopener.c:200:1: internal compiler error: output_operand: invalid
expression as operand

Reduced test case (with -v for completeness):
> /tmp/objdir/gcc/xgcc -B/tmp/objdir/gcc -v -fPIC -g -O2 -std=gnu99 -pthread -S 
> -m32 -mcpu=v8 pr52425-2.c
Reading specs from /tmp/objdir/gcc/specs
COLLECT_GCC=/tmp/objdir/gcc/xgcc
COLLECT_LTO_WRAPPER=/tmp/objdir/gcc/lto-wrapper
Target: sparc64-unknown-linux
Configured with: /tmp/gcc-4.6-20120224/configure --target=sparc64-unknown-linux
--prefix=/home/mikpe/pkgs/linux-x86/cross-sparc64
--with-gmp=/home/mikpe/pkgs/linux-x86/gmp-5.0.4
--with-mpfr=/home/mikpe/pkgs/linux-x86/mpfr-3.1.0
--with-mpc=/home/mikpe/pkgs/linux-x86/mpc-0.9 --disable-libquadmath
--disable-plugin --disable-lto --disable-nls --disable-shared
--disable-libmudflap --disable-libgomp --disable-multilib
--enable-threads=posix --enable-checking=release --enable-languages=c
Thread model: posix
gcc version 4.6.3 20120224 (prerelease) (GCC) 
COLLECT_GCC_OPTIONS='-B' '/tmp/objdir/gcc' '-v' '-fPIC' '-g' '-O2' '-std=gnu99'
'-pthread' '-S' '-m32' '-mcpu=v8'
 /tmp/objdir/gcc/cc1 -quiet -v -imultilib . -iprefix
/tmp/objdir/gcc/../lib/gcc/sparc64-unknown-linux/4.6.3/ -isystem
/tmp/objdir/gcc/include -isystem /tmp/objdir/gcc/include-fixed -D__sparc_v8__
-D_REENTRANT pr52425-2.c -mptr32 -mno-stack-bias -mlong-double-64 -quiet
-dumpbase pr52425-2.c -m32 -mcpu=v8 -auxbase pr52425-2 -g -O2 -std=gnu99
-version -fPIC -o pr52425-2.s
GNU C (GCC) version 4.6.3 20120224 (prerelease) (sparc64-unknown-linux)
compiled by GNU C version 4.5.4 20120223 (prerelease), GMP version
5.0.4, MPFR version 3.1.0-p4, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory
"/tmp/objdir/gcc/../lib/gcc/sparc64-unknown-linux/4.6.3/include"
ignoring nonexistent directory
"/tmp/objdir/gcc/../lib/gcc/sparc64-unknown-linux/4.6.3/include-fixed"
ignoring nonexistent directory
"/tmp/objdir/gcc/../lib/gcc/sparc64-unknown-linux/4.6.3/../../../../sparc64-unknown-linux/sys-include"
ignoring nonexistent directory
"/tmp/objdir/gcc/../lib/gcc/sparc64-unknown-linux/4.6.3/../../../../sparc64-unknown-linux/include"
ignoring nonexistent directory
"/tmp/objdir/gcc/../lib/gcc/../../lib/gcc/sparc64-unknown-linux/4.6.3/include"
ignoring nonexistent directory
"/tmp/objdir/gcc/../lib/gcc/../../lib/gcc/sparc64-unknown-linux/4.6.3/include-fixed"
ignoring nonexistent directory
"/tmp/objdir/gcc/../lib/gcc/../../lib/gcc/sparc64-unknown-linux/4.6.3/../../../../sparc64-unknown-linux/sys-include"
ignoring nonexistent directory
"/tmp/objdir/gcc/../lib/gcc/../../lib/gcc/sparc64-unknown-linux/4.6.3/../../../../sparc64-unknown-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /tmp/objdir/gcc/include
 /tmp/objdir/gcc/include-fixed
End of search list.
GNU C (GCC) version 4.6.3 20120224 (prerelease) (sparc64-unknown-linux)
compiled by GNU C version 4.5.4 20120223 (prerelease), GMP version
5.0.4, MPFR version 3.1.0-p4, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 13caed9ea010fbdbe7751ee2ff3cc0c2
pr52425-2.c:62:1: internal compiler error: output_operand: invalid expression
as operand

Running cc1 within gdb with a breakpoint on output_operand_lossage:

Breakpoint 1, output_operand_lossage (cmsgid=0x8639346 "invalid expression as
operand") at /tmp/gcc-4.6-20120224/gcc/final.c:3076
3076{
Missing separate debuginfos, use: debuginfo-install glibc-2.13-2.i686
(gdb) bt
#0  output_operand_lossage (cmsgid=0x8639346 "invalid expression as operand")
at /tmp/gcc-4.6-20120224/gcc/final.c:3076
#1  0x081977bc in output_addr_const (file=0x88281d0, x=0xb7df98f4) at
/tmp/gcc-4.6-20120224/gcc/final.c:3634
#2  0x08133447 in dw2_asm_output_addr_rtx (size=4, addr=0xb7df98f4,
comment=0x0) at /tmp/gcc-4.6-20120224/gcc/dwarf2asm.c:282
#3  0x0813c302 in output_loc_operands (loc=0xb7d69b2c, for_eh_or_skip=) at /tmp/gcc-4.6-20120224/gcc/dwarf2out.c:5258
#4  output_loc_sequence (loc=0xb7d69b2c, for_eh_or_skip=)
at /tmp/gcc-4.6-20120224/gcc/dwarf2out.c:5317
#5  0x0813c8db in output_loc_list (die=) at
/tmp/gcc-4.6-20120224/gcc/dwarf2out.