http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46547
Summary: internal compiler error when converting a long double complex to a bool Product: gcc Version: 4.5.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: kumbe...@llnl.gov I have reduced the original application down to a small reproducer. The following code fails to compile. It works with gcc 4.3.0, intel (icc), sun (cc), and pathscale (pathcc). PGI's pgcc also generates an ICE with the function and I'll submit the bug to them as well. void foo (void) { _Bool d; long double _Complex *s; d = *s++; } When you try to compile with gcc version 4.5.1. It generates an error: foo.c: In function 'foo': foo.c:5:7: internal compiler error: in gimplify_expr, at gimplify.c:7137 My full output from gcc -v... is: Using built-in specs. COLLECT_GCC=/usr/local/apps/gnu/4.5.1/bin/gcc COLLECT_LTO_WRAPPER=/usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.5.1/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-4.5.1/configure --prefix=/usr/apps/gnu/4.5.1 --with-mpfr-include=/usr/apps/gnu/4.5.1/include --with-mpfr-lib=/usr/apps/gnu/4.5.1/lib --with-libelf=/usr/apps/gnu/4.5.1 --disable-multilib --with-gmp=/usr/apps/gnu/4.5.1/lib --with-gmp-include=/usr/apps/gnu/4.5.1/include --enable-languages=c,c++,fortran,java,objc --enable-lto Thread model: posix gcc version 4.5.1 (GCC) COLLECT_GCC_OPTIONS='-c' '-v' '-save-temps' '-mtune=generic' '-march=x86-64' /usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.5.1/cc1 -E -quiet -v -iprefix /usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.1/ foo.c -mtune=generic -march=x86-64 -fpch-preprocess -o foo.i ignoring nonexistent directory "/usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../x86_64-unknown-linux-gnu/include" ignoring duplicate directory "/usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.5.1/include" ignoring duplicate directory "/usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.5.1/include-fixed" ignoring nonexistent directory "/usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../x86_64-unknown-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.1/include /usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.1/include-fixed /usr/local/include /usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../lib/gcc/../../include /usr/include End of search list. COLLECT_GCC_OPTIONS='-c' '-v' '-save-temps' '-mtune=generic' '-march=x86-64' /usr/gapps/opnsrc/gnu/dev/lnx-2.5-o/4.5.1/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.5.1/cc1 -fpreprocessed foo.i -quiet -dumpbase foo.c -mtune=generic -march=x86-64 -auxbase foo -version -o foo.s GNU C (GCC) version 4.5.1 (x86_64-unknown-linux-gnu) compiled by GNU C version 4.5.1, GMP version 4.2.2, MPFR version 2.4.2, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C (GCC) version 4.5.1 (x86_64-unknown-linux-gnu) compiled by GNU C version 4.5.1, GMP version 4.2.2, MPFR version 2.4.2, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 59090c9e0e8cd3d0437c78809f831ff7 foo.c: In function 'foo': foo.c:5:7: internal compiler error: in gimplify_expr, at gimplify.c:7137