------- 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

Reply via email to