http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46909

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2010.12.12 19:22:15
     Ever Confirmed|0                           |1
           Severity|normal                      |blocker

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2010-12-12 19:22:15 
UTC ---
[...@gnu-6 tmp]$ cat y.c
extern void abort ();
struct entry
{
  unsigned char tls_type;
} h;

int
__attribute__ ((__noinline__))
foo (struct entry *h)
{
  int tls_type = h->tls_type;
  if (! ((tls_type) == 4 || ((tls_type) == (2 | 4)))
      || ((tls_type) == 2 || ((tls_type) == (2 | 4))))
    return 1;

  return -1;
}

int
main ()
{
  struct entry h;
  h.tls_type = 6;
  if (foo (&h) != 1)
    abort ();
  return 0;
}
[...@gnu-6 tmp]$ /usr/gcc-4.6/bin/gcc -O2 y.c
[...@gnu-6 tmp]$ ./a.out 
Aborted
[...@gnu-6 tmp]$ gcc -O2 y.c
[...@gnu-6 tmp]$ ./a.out 
[...@gnu-6 tmp]$

Reply via email to