------- Additional Comments From Thomas dot Koenig at online dot de 2005-01-18 10:38 ------- A single complex float division is enough to trigger the error.
Reduced test case: $ cat cdivide.c #include <stdio.h> #include <math.h> #include <complex.h> int main() { float complex a,b,c; c = a/b; } $ gcc -E cdivide.c > cdivide.i $ gdb ~/libexec/gcc/ia64-unknown-linux-gnu/4.0.0/cc1 GNU gdb Red Hat Linux (6.1post-1.20040607.52rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ia64-redhat-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) b toplev_main Breakpoint 1 at 0x4000000000630d42: file ../../gcc-4.0-20050116/gcc/toplev.c, line 1589. (gdb) r cdivide.i Starting program: /home/zfkts/libexec/gcc/ia64-unknown-linux-gnu/4.0.0/cc1 cdivide.i Breakpoint 1, toplev_main (argc=2, argv=0x60000fffffffa768) at ../../gcc-4.0-20050116/gcc/toplev.c:1589 1589 p = argv0 + strlen (argv0); (gdb) set flag_complex_divide_method=1 (gdb) c Continuing. main cdivide.c: In function 'main': cdivide.c:9: internal compiler error: in purge_dead_edges, at cfgrtl.c:2460 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. Program exited with code 01. (gdb) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19486