http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56120
Bug #: 56120 Summary: built-in SIMD with statement expression causes ICE: in iterative_hash_expr, at tree.c:6990 when optimization is on Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: cj...@126.com Target: i686-pc-linux-gnu Build: /build/src/gcc-4.7.2/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c ++ --enable-shared --ena The following is the code: typedef float v4 __attribute__((vector_size(sizeof(float)*4))); v4 v4refract(v4 n, v4 v, float ior) { return n * ({ v4 __t = (n) * (v); __t[0] + __t[1] + __t[2]; }); } the compiler output: $ gcc -msse -O3 -c -o v.o v.c v.c: In function 'v4refract': v.c:5:11: internal compiler error: in iterative_hash_expr, at tree.c:6990 Please submit a full bug report, with preprocessed source if appropriate. See <https://bugs.archlinux.org/> for instructions. Compilation succeeds when the optimization level is 0 but if the optimization level is above 0, whatever 1, 2 or 3, produces this ICE.