Bug 19211 - Internal compiler error
Internal compiler error
Product: Red Hat Linux
Classification: Retired
Component: gcc (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Jakub Jelinek
David Lawrence
Depends On:
  Show dependency treegraph
Reported: 2000-10-16 20:40 EDT by Braden McDaniel
Modified: 2007-04-18 12:29 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2000-10-17 10:18:06 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
The problem code (4.42 KB, text/plain)
2000-10-16 20:43 EDT, Braden McDaniel
no flags Details
included file for e_hypot.c (7.85 KB, text/plain)
2000-10-16 20:44 EDT, Braden McDaniel
no flags Details

  None (edit)
Description Braden McDaniel 2000-10-16 20:40:16 EDT
When passing -O2 in conjunction with -fPIC, gcc ICEs on this code from
fdlibm (which is used in Mozilla JavaScript). Attachments to follow.
Comment 1 Braden McDaniel 2000-10-16 20:43:57 EDT
Created attachment 4229 [details]
The problem code
Comment 2 Braden McDaniel 2000-10-16 20:44:39 EDT
Created attachment 4230 [details]
included file for e_hypot.c
Comment 3 Jakub Jelinek 2000-11-13 04:34:57 EST
You can fix this up by passing -fno-strict-aliasing option to gcc when
compiling it, the code does illegal type punning. Even if it compiled fine,
it would not work as expected with strict aliasing turned on. I agree that gcc
should not ICE on any bad code, but as this ICE goes away since function-as-trees
were added to mainline gcc, fixing this would be in my eyes only wasted time
(the ICE can be only triggered by the illegal type punning
of floating point values under certain specific conditions). Example of illegal
code is double d; ... *(int *)&d = 0x...;

Note You need to log in before you can comment on or make changes to this bug.