From mboxrd@z Thu Jan 1 00:00:00 1970 From: boris@lml.ls.fi.upm.es To: gcc-gnats@gcc.gnu.org Subject: optimization/3046: code incorrectly removed Date: Mon, 04 Jun 2001 04:46:00 -0000 Message-id: <20010604113609.22565.qmail@sourceware.cygnus.com> X-SW-Source: 2001-06/msg00063.html List-Id: >Number: 3046 >Category: optimization >Synopsis: code incorrectly removed >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Mon Jun 04 04:46:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Manuel Carro >Release: gcc version 2.96 20000731 >Organization: >Environment: Red Had Linux 7.1, kernel 2.4.2-2 i686 unknown >Description: The code below (float.c) fills in a float `f' with 1.00000 by accessing it as an array `fp' of two unsigned integers, and storing the appropriate value in each element of the array. The value printed should therefore be 1.00000, and this is what happens when compiling without optimization options. With -O2 and above, the value printed is 2.0000. Qualifying both `f' and `fp' as volatile seems to eliminate the wrong behavior. >How-To-Repeat: gcc -O3 float.c -o float ; ./float >Fix: Not using optimizations above -O, or adding volatile to f and fp. However, this is not feasible in my application: the error may appear in many places. >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="float.i.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="float.i.gz" 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