Bug 23434 - [4.1 regression] ICE: Segmentation fault compiling gsl1.5 at -O2
Summary: [4.1 regression] ICE: Segmentation fault compiling gsl1.5 at -O2
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 4.1.0
: P2 normal
Target Milestone: 4.1.0
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2005-08-17 08:00 UTC by Michael Cieslinski
Modified: 2005-08-21 14:53 UTC (History)
2 users (show)

See Also:
Host:
Target: x86_64-*-linux-gnu
Build:
Known to work:
Known to fail:
Last reconfirmed: 2005-08-17 10:16:54


Attachments
preprocessed source (5.03 KB, text/plain)
2005-08-17 08:03 UTC, Michael Cieslinski
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Cieslinski 2005-08-17 08:00:38 UTC
When I compile gsl1.5 with the actual snapshot of gcc41 (20050813) I get an ICE 
with -O2. This ICE is new, the snapshot from last week is working.

Michael Cieslinski


gcc41k -O2 -c csyr2k.i -o csyr2k.o
csyr2k.c: In function 'cblas_csyr2k':
csyr2k.c:10: internal compiler error: Segmentation fault
Please submit a full bug report, with preprocessed source if appropriate.


g++41k -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.1-20050813/configure --prefix=/usr/local/gcc41k
 --program-suffix=41k --with-arch=opteron --enable-languages=c,c++
 --enable-checking
Thread model: posix
gcc version 4.1.0 20050813 (experimental)


gdb --args /usr/local/gcc41k/libexec/gcc/x86_64-unknown-linux-gnu/4.1.0/cc1 -
fpreprocessed csyr2k.i -quiet -dumpbase csyr2k.i -march=opteron -auxbase-strip 
csyr2k.o -O2 -version -o /tmp/ccMJkP9T.s
GNU gdb Red Hat Linux (6.1post-1.20040607.33rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu"...Using host libthread_db 
library "/lib64/tls/libthread_db.so.1".

(gdb) r
Starting program: /usr/local/gcc41k/libexec/gcc/x86_64-unknown-linux-
gnu/4.1.0/cc1 -fpreprocessed csyr2k.i -quiet -dumpbase csyr2k.i -march=opteron -
auxbase-strip csyr2k.o -O2 -version -o /tmp/ccMJkP9T.s
GNU C version 4.1.0 20050813 (experimental) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.1.0 20050813 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 4b87d8d2c3942a89e39fe1d4e5675abd

Program received signal SIGSEGV, Segmentation fault.
0x00000000005c1a63 in fold_binary (code=NE_EXPR, type=0x2a955968f0, 
op0=0x2a9588df50, op1=0x2a95980280) at ../../gcc-4.1-20050813/gcc/fold-
const.c:7042
7042            STRIP_SIGN_NOPS (arg1);
(gdb) where
#0  0x00000000005c1a63 in fold_binary (code=NE_EXPR, type=0x2a955968f0, 
op0=0x2a9588df50, op1=0x2a95980280) at ../../gcc-4.1-20050813/gcc/fold-
const.c:7042
#1  0x00000000005cf589 in fold_build2_stat (code=NE_EXPR, type=0x2a955968f0, 
op0=0x2a9588df50, op1=0x2a95980280) at ../../gcc-4.1-20050813/gcc/fold-
const.c:10478
#2  0x00000000005c7fb9 in fold_binary (code=NE_EXPR, type=0x2a955968f0, 
op0=0x2a95981050, op1=0x2a958c6fc0) at ../../gcc-4.1-20050813/gcc/fold-
const.c:9349
#3  0x00000000005cf589 in fold_build2_stat (code=NE_EXPR, type=0x2a955968f0, 
op0=0x2a95981050, op1=0x2a958c6fc0) at ../../gcc-4.1-20050813/gcc/fold-
const.c:10478
#4  0x00000000005ccde5 in fold_binary (code=dwarf2_read_address: Corrupted 
DWARF expression.
) at ../../gcc-4.1-20050813/gcc/fold-const.c:8979
#5  0x00000000005cf589 in fold_build2_stat (code=NE_EXPR, type=0x2a955968f0, 
op0=0x2a959810a0, op1=0x2a9595ef90) at ../../gcc-4.1-20050813/gcc/fold-
const.c:10478
#6  0x00000000005c306f in fold_binary (code=NE_EXPR, type=0x2a955968f0, 
op0=0x2a95980300, op1=0x2a95588b40) at ../../gcc-4.1-20050813/gcc/fold-
const.c:6358
#7  0x00000000005cf589 in fold_build2_stat (code=NE_EXPR, type=0x2a955968f0, 
op0=0x2a95980300, op1=0x2a95588b40) at ../../gcc-4.1-20050813/gcc/fold-
const.c:10478
#8  0x00000000005c9922 in fold_binary (code=dwarf2_read_address: Corrupted 
DWARF expression.
) at ../../gcc-4.1-20050813/gcc/fold-const.c:9260
#9  0x00000000005cf589 in fold_build2_stat (code=LE_EXPR, type=0x2a955968f0, 
op0=0x2a95980300, op1=0x2a9595ecf0) at ../../gcc-4.1-20050813/gcc/fold-
const.c:10478
#10 0x00000000005c9465 in fold_binary (code=dwarf2_read_address: Corrupted 
DWARF expression.
) at ../../gcc-4.1-20050813/gcc/fold-const.c:9164
#11 0x00000000005cf589 in fold_build2_stat (code=LT_EXPR, type=0x2a955968f0, 
op0=0x2a95980300, op1=0x2a95588b40) at ../../gcc-4.1-20050813/gcc/fold-
const.c:10478
#12 0x00000000005c3425 in fold_binary (code=GT_EXPR, type=0x2a955968f0, 
op0=0x2a95588b40, op1=0x2a95980300) at ../../gcc-4.1-20050813/gcc/fold-
const.c:8799
#13 0x00000000005cf589 in fold_build2_stat (code=GT_EXPR, type=0x2a955968f0, 
op0=0x2a95588b40, op1=0x2a95980300) at ../../gcc-4.1-20050813/gcc/fold-
const.c:10478
#14 0x00000000005d6669 in fold_binary_op_with_conditional_arg (code=GT_EXPR, 
type=0x2a955968f0, op0=Variable "op0" is not available.
) at ../../gcc-4.1-20050813/gcc/fold-const.c:5631
#15 0x00000000005c1ecd in fold_binary (code=GT_EXPR, type=0x2a955968f0, 
op0=0x2a95588b40, op1=0x2a959811e0) at ../../gcc-4.1-20050813/gcc/fold-
const.c:7139
#16 0x00000000004d10a9 in proved_non_wrapping_p (at_stmt=0x0, 
niter_bound=0xc557e0, new_type=Variable "new_type" is not available.
) at ../../gcc-4.1-20050813/gcc/tree-ssa-loop-niter.c:1665
#17 0x00000000004d148e in scev_probably_wraps_p (type=0x2a95596580, 
base=Variable "base" is not available.
) at ../../gcc-4.1-20050813/gcc/tree-ssa-loop-niter.c:1942
#18 0x00000000007e44a2 in chrec_convert (type=0x2a95596580, chrec=0x2a959aaf00, 
at_stmt=0x0) at ../../gcc-4.1-20050813/gcc/tree-chrec.c:1123
#19 0x00000000007e8ddb in analyze_scalar_evolution_1 (loop=0xc1a480, 
var=0x2a95999e80, res=0x0) at ../../gcc-4.1-20050813/gcc/tree-scalar-
evolution.c:1761
#20 0x00000000007e9807 in analyze_scalar_evolution (loop=0xc1a480, var=0x0) 
at ../../gcc-4.1-20050813/gcc/tree-scalar-evolution.c:1852
#21 0x00000000007eaedc in analyze_scalar_evolution_in_loop (wrto_loop=0xc1a260, 
use_loop=0xc1a480, version=Variable "version" is not available.
) at ../../gcc-4.1-20050813/gcc/tree-scalar-evolution.c:1876
#22 0x00000000007eb667 in simple_iv (loop=0xc1a260, stmt=0x2a9599c0f0, 
op=0x2a95999e80, base=0x7fbfffe6b0, step=0x7fbfffe6a8, 
allow_nonconstant_step=1 '\001')
    at ../../gcc-4.1-20050813/gcc/tree-scalar-evolution.c:2550
#23 0x00000000004f0542 in find_induction_variables (data=0x7fbfffe770) 
at ../../gcc-4.1-20050813/gcc/tree-ssa-loop-ivopts.c:1066
#24 0x00000000004f3a76 in tree_ssa_iv_optimize (loops=0xc2f090) at ../../gcc-
4.1-20050813/gcc/tree-ssa-loop-ivopts.c:5926
#25 0x000000000078a2d6 in execute_one_pass (pass=0xb0d1c0) at ../../gcc-4.1-
20050813/gcc/passes.c:797
#26 0x000000000078a3fc in execute_pass_list (pass=0xb0d1c0) at ../../gcc-4.1-
20050813/gcc/passes.c:829
#27 0x000000000078a40e in execute_pass_list (pass=0xb0cda0) at ../../gcc-4.1-
20050813/gcc/passes.c:830
#28 0x000000000078a40e in execute_pass_list (pass=0xb095e0) at ../../gcc-4.1-
20050813/gcc/passes.c:830
#29 0x0000000000483435 in tree_rest_of_compilation (fndecl=0x2a957e5a00) 
at ../../gcc-4.1-20050813/gcc/tree-optimize.c:419
#30 0x000000000040c025 in c_expand_body (fndecl=0x2a957e5a00) at ../../gcc-4.1-
20050813/gcc/c-decl.c:6633
#31 0x00000000007d4a16 in cgraph_expand_function (node=0x2a95815f20) 
at ../../gcc-4.1-20050813/gcc/cgraphunit.c:1034
#32 0x00000000007d6b0b in cgraph_optimize () at ../../gcc-4.1-
20050813/gcc/cgraphunit.c:1100
#33 0x0000000000416143 in c_write_global_declarations () at ../../gcc-4.1-
20050813/gcc/c-decl.c:7618
#34 0x000000000075e3d6 in toplev_main (argc=Variable "argc" is not available.
) at ../../gcc-4.1-20050813/gcc/toplev.c:984
#35 0x0000003ef781bf6a in __libc_start_main () from /lib64/tls/libc.so.6
#36 0x000000000040260a in _start ()
Comment 1 Michael Cieslinski 2005-08-17 08:03:28 UTC
Created attachment 9511 [details]
preprocessed source
Comment 2 Serge Belyshev 2005-08-17 10:16:54 UTC
confirmed, reduced C tescase:
------------------------------------------------------------------------------
cblas_csyr2k (int N, void *A, int lda, float *B, int ldb, float *C, int k)
{
  int i, j;
  for (;; k ++)
    {
      for (i = 0; i < N; i ++)
	{
	  float t = ((float * ) A) [i];
	  for (j = i; j < N; j ++)
	    {
	      C [i + j] = B [ldb] * ((float *) A) [k];
	      C [lda] = 0 ;
	    }
	}
    }
}
------------------------------------------------------------------------------
Comment 3 GCC Commits 2005-08-21 10:48:31 UTC
Subject: Bug 23434

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	spop@gcc.gnu.org	2005-08-21 10:48:23

Modified files:
	gcc            : ChangeLog tree-ssa-loop-niter.c 
Added files:
	gcc/testsuite/gcc.dg/tree-ssa: pr23434.c 

Log message:
	PR tree-optimization/23434
	* tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
	the iteration bound is not an INTEGER_CST.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9792&r2=2.9793
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-loop-niter.c.diff?cvsroot=gcc&r1=2.38&r2=2.39
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/pr23434.c.diff?cvsroot=gcc&r1=NONE&r2=1.1

Comment 4 Andrew Pinski 2005-08-21 14:53:21 UTC
Fixed.