User account creation filtered due to spam.

Bug 19744 - ICE in if_convert with -fnon-call-exceptions -O2 on amd64
Summary: ICE in if_convert with -fnon-call-exceptions -O2 on amd64
Status: RESOLVED DUPLICATE of bug 14868
Alias: None
Product: gcc
Classification: Unclassified
Component: rtl-optimization (show other bugs)
Version: 3.4.3
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code, ssemmx
Depends on:
Blocks:
 
Reported: 2005-02-01 22:01 UTC by nick
Modified: 2005-07-23 22:49 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description nick 2005-02-01 22:01:09 UTC
I'm running into an ICE on amd64

> /dept/rnd/vendor/gcc-3.4.3-amd64/bin/g++ -fnon-call-exceptions -O2 -g -c test.C
test.C: In member function `void M::foo() const':
test.C:19: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

it's also reproducable on x86 with -msse
> /dept/rnd/vendor/gcc-3.4.3/bin/g++ -msse -fnon-call-exceptions -O2 -g -c test.C
test.C: In member function `void M::foo() const':
test.C:19: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

on the flollowing the following code:

------------------------------------------------
struct E {};

class M
{
  public:
    float               x[4][4];
    void                foo () const throw (E);
};


void
M::foo () const throw (E)
{
    for (int i = 0; i < 3 ; i++) {
        float p = x[i][i];
        if (p < 0) p = -p;
    }
    return;
}
--------------------------------------

here's the stacktrace.  with -fno-if-conversion 

(gdb) where
#0  find_if_header (test_bb=0xa49488, pass=1) at ../../gcc-3.4.3/gcc/ifcvt.c:1641
#1  0x0000000000708661 in if_convert (x_life_data_ok=Variable "x_life_data_ok"
is not available.
) at ../../gcc-3.4.3/gcc/ifcvt.c:3251
#2  0x0000000000697968 in rest_of_compilation (decl=0x2a959cb1a0) at
../../gcc-3.4.3/gcc/toplev.c:2443
#3  0x00000000006d1f4c in tree_rest_of_compilation (fndecl=0x2a959cb1a0,
nested_p=false) at ../../gcc-3.4.3/gcc/tree-optimize.c:168
#4  0x000000000046e881 in expand_body (fn=0x2a959cb1a0) at
../../gcc-3.4.3/gcc/cp/semantics.c:2920
#5  0x00000000006d39cf in cgraph_expand_function (node=0x2a959d1700) at
../../gcc-3.4.3/gcc/cgraphunit.c:538
#6  0x00000000006d4131 in cgraph_optimize () at
../../gcc-3.4.3/gcc/cgraphunit.c:1542
#7  0x0000000000441885 in finish_file () at ../../gcc-3.4.3/gcc/cp/decl2.c:2856
#8  0x0000000000694e43 in toplev_main (argc=Variable "argc" is not available.
) at ../../gcc-3.4.3/gcc/toplev.c:1822
#9  0x0000002a95688e5d in __libc_start_main () from /lib64/tls/libc.so.6
#10 0x00000000004025aa in _start () at ../sysdeps/x86_64/elf/start.S:96
Comment 1 Steven Bosscher 2005-02-01 22:04:54 UTC
If it reproduces on x86 with -msse, it's not an amd64 bug, but 
something realted to SSE/MMX (d'oh).  Fun, didn't that just get 
rewritten for GCC 4.0?  ;-) 
Comment 2 Andrew Pinski 2005-02-01 23:31:48 UTC
I think this is a dup of bug 14868 but note this has been fixed on the mainline but I think it is still a 
latent bug.
Comment 3 Andrew Pinski 2005-02-01 23:45:22 UTC

*** This bug has been marked as a duplicate of 14868 ***
Comment 4 Steven Bosscher 2005-02-02 00:13:53 UTC
This may be fixed on mainline but not in GCC 3.4.  Note that this 
reporter is the same as the reporter of Bug 14868 ;-)