------- Additional Comments From Thomas dot Koenig at online dot de 2005-01-25 08:48 ------- Same thing:
$ cat cdivide.c #include <stdio.h> #include <math.h> #include <complex.h> int main() { float complex a,b,c; c = a/b; } $ ~/gcc-bin/gcc/xgcc -fdump-rtl-all-all -fdump-tree-all -B ~/gcc-bin/gcc/ cdivide.c 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. $ cat cdivide.c.t14.oplower ;; Function main (main) main () { float D.2722; float D.2721; float D.2720; float D.2719; float D.2718; float D.2717; float D.2716; float D.2715; float D.2714; float D.2713; float D.2712; float D.2711; float D.2710; float D.2709; float D.2708; float D.2707; float D.2706; float D.2705; float D.2704; float D.2703; float D.2700; float D.2699; float D.2698; float D.2697; float D.2696; float D.2695; complex float c; complex float b; complex float a; complex float D.2690; <bb 0>: D.2695 = REALPART_EXPR <a>; D.2696 = IMAGPART_EXPR <a>; D.2697 = REALPART_EXPR <b>; D.2698 = IMAGPART_EXPR <b>; D.2699 = ABS_EXPR <D.2697>; D.2700 = ABS_EXPR <D.2698>; if (D.2699 < D.2700) goto <L0>; else goto <L1>; <L0>:; D.2705 = D.2697 / D.2698; D.2706 = D.2697 * D.2705; D.2707 = D.2706 + D.2698; D.2708 = D.2695 * D.2705; D.2709 = D.2708 + D.2696; D.2710 = D.2696 * D.2705; D.2711 = D.2710 - D.2695; D.2712 = D.2709 / D.2707; D.2713 = D.2711 / D.2707; D.2703 = D.2712; D.2704 = D.2713; <L1>:; D.2714 = D.2698 / D.2697; D.2715 = D.2698 * D.2714; D.2716 = D.2715 + D.2697; D.2717 = D.2696 * D.2714; D.2718 = D.2717 + D.2695; D.2719 = D.2695 * D.2714; D.2720 = D.2696 - D.2719; D.2721 = D.2718 / D.2716; D.2722 = D.2720 / D.2716; D.2703 = D.2721; D.2704 = D.2722; <bb 1>: D.2690 = COMPLEX_EXPR <D.2703, D.2704>; c = D.2690; return; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19609