Tested revisions: r160052 - crash r159523 - segfault (release checking) r159387 - OK r158969 - OK r158095 - OK Compiler output: $ gcc -O1 -fipa-struct-reorg -fwhole-program testcase.c testcase.c: In function 'main': testcase.c:4:3: warning: return makes integer from pointer without a cast [enabled by default] testcase.c:4:3: warning: function returns address of local variable [enabled by default] testcase.c:5:1: error: SSA_NAME_DEF_STMT is wrong Expected definition statement: s.0_1 = (long int) &s.1; Actual definition statement: s.0_1 = (long int) &s; testcase.c:5:1: internal compiler error: verify_ssa failed Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. ----- testcase.c ----- int main () { struct { int i; } s[1]; return s; } ----------------------
Same ICE with -fipa-type-escape enabled in 4.4 and 4.5.
Created attachment 20867 [details] different testcase This testcase fails with similiar message: $ gcc -O1 -fipa-struct-reorg -fwhole-program pr44336-2.c pr44336-2.c: In function 'main': pr44336-2.c:11:1: error: SSA_NAME_DEF_STMT is wrong Expected definition statement: # .MEM_4 = VDEF <.MEM_3> D.2721_1 = foo (s.0); Actual definition statement: # .MEM_3 = VDEF <.MEM_2(D)> D.2721_1 = foo (s); pr44336-2.c:11:1: internal compiler error: verify_ssa failed Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Fails in 4.4 r158133 and 4.5 r158978 too.
Fixed in 4.6 (by disabling struct-reorg).
struct-reorg has finally been removed.