c/161: Re: Optimization bug on Redhat Linux 5.1 with gcc 2.7.2.3

Martin v. Loewis martin@loewis.home.cs.tu-berlin.de
Sat Apr 1 02:56:00 GMT 2000


>Number:         161
>Category:       c
>Synopsis:       Optimization bug on Redhat Linux 5.1
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          analyzed
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 01 02:56:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     "Jacoby, Jeffrey" <jjacoby@rsasecurity.com>
>Release:        2.95.2
>Organization:
>Environment:
>Description:
 Original-Message-ID: <E7B6CB80230AD31185AD0008C7EBC4D266623D@exrsa01.rsa.com>
 Date: Fri, 31 Mar 2000 12:44:07 -0800

 [MvL: retested with 2.95.2]

 Bug report

 -----------------------------------------------------------------------
 Version of gcc:

 [jjacoby@ceilo]$ gcc -v
 Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/specs
 gcc version 2.7.2.3

 -----------------------------------------------------------------------
 Machine and OS information (this is on a Redhat Linux 5.1 machine)

 [jjacoby@ceilo]$ uname -sr
 Linux 2.0.34
 [jjacoby@ceilo]$ uname -m
 i686

 -----------------------------------------------------------------------
 Command arguments which will reproduce bug

 [jjacoby@ceilo]$ gcc -O1 example.c

 -----------------------------------------------------------------------
 Observed behavior, first with optimization turned ON, then with
 optimization turned OFF.  Notice that output from printf is
 different depending on optimization level.

 [jjacoby@ceilo]$ gcc -O1 example.c
 [jjacoby@ceilo]$ ./a.out
 sign: ff
 sign == 0xff: 0

 [jjacoby@ceilo]$ gcc -O0 example.c
 [jjacoby@ceilo]$ ./a.out
 sign: ff
 sign == 0xff: 1

 Sincerely,

 Jeff Jacoby

>How-To-Repeat:
int main(void) {
  unsigned char     sign;
  unsigned char     integer[2] = {0xff };
 
  if ( integer[0] != 0 )
    sign = 0xff;
  else
    sign = 0x00;
 
  printf ( "sign: %x\n", sign );
  printf ( "sign == 0xff: %d\n", (sign == 0xff) );
 
  return 0;
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the Gcc-prs mailing list