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.

Reply via email to