http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50754
Bug #: 50754
Summary: [4.7 Regression] ICE in expand_debug_expr, at
cfgexpand.c:3341
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: [email protected]
ReportedBy: [email protected]
somewhere in the last 3 days the following regression appeared in trunk:
gfortran -march=core2 -mcx16 -msahf -mno-movbe -mno-aes -mno-pclmul -mno-popcnt
-mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm
-mno-avx -mno-avx2 -mno-sse4.2 -mno-sse4.1 -mno-lzcnt --param l1-cache-size=32
--param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=core2 -g -O3
-ffast-math -funroll-loops -ftree-vectorize -ffree-form bug.f90
<vec_perm_expr 0x7fcf671e41f8
type <vector_type 0x7fcf67110540
type <real_type 0x7fcf670aef18 real(kind=8) DF
size <integer_cst 0x7fcf6709eec0 constant 64>
unit size <integer_cst 0x7fcf6709eee0 constant 8>
align 64 symtab 0 alias set 2 canonical type 0x7fcf670aef18
precision 64
pointer_to_this <pointer_type 0x7fcf670bc150>>
V2DF
size <integer_cst 0x7fcf670b1400 constant 128>
unit size <integer_cst 0x7fcf670b1420 constant 16>
align 128 symtab 0 alias set 2 canonical type 0x7fcf67110540 nunits 2
pointer_to_this <pointer_type 0x7fcf67117c78>>
arg 0 <ssa_name 0x7fcf671d8cd0 type <vector_type 0x7fcf67110540>
visited var <var_decl 0x7fcf671df1e0 vect_var_.27>def_stmt
vect_var_.27_126 = MEM[(real(kind=8)[3] *)&respos + 8B];
version 126> arg 1 <ssa_name 0x7fcf671d8cd0>
arg 2 <vector_cst 0x7fcf671cc5a0
type <vector_type 0x7fcf671c1c78 type <integer_type 0x7fcf670ae7e0>
unsigned V2DI size <integer_cst 0x7fcf670b1400 128> unit size
<integer_cst 0x7fcf670b1420 16>
align 128 symtab 0 alias set -1 canonical type 0x7fcf671c1c78
nunits 2>
constant
elt0: <integer_cst 0x7fcf671c6400 constant 1>
elt1: <integer_cst 0x7fcf670b1300 constant 0>>
bug.f90:9:0>
bug.f90: In function ‘calcbox’:
bug.f90:4:0: internal compiler error: in expand_debug_expr, at cfgexpand.c:3341
> cat bug.f90
MODULE gauss_colloc
INTEGER, PARAMETER :: dp=8
CONTAINS
FUNCTION calcBox() RESULT(res)
REAL(dp) :: cci0, cci1, cci2, delta_i, m(0:2,0:2), maxr2, r_0, sqDi
REAL(dp), DIMENSION(0:2) :: l, resPos
r_0=0.0_dp
DO i=0,2
r_0=r_0-0.5*resPos(2-i)*l(i)
END DO
cci0 = -((-4.0_dp * m(2,2) * r_0 * m(1,1) + &
m(2,2) * l(1) ** 2 + l(2) ** 2 * m(1,1) &
- 2.0_dp * l(1) * m(1,2) * l(2) + 4.0_dp * r_0 * m(1,2) ** 2) &
/ (m(2,2) * m(1,1) - m(1,2) ** 2)) / 4.0_dp-maxr2
delta_i=cci1*cci1-4.0_dp*cci2*cci0
IF (delta_i<0.0_dp) THEN
imin=fullShift(2)+CEILING((-cci1-sqDi)/(2.0_dp*cci2))
END IF
END FUNCTION
END MODULE