Bug 69326 - [6 Regression] wrong code at -O2 and -O3 on x86_64-linux-gnu
Summary: [6 Regression] wrong code at -O2 and -O3 on x86_64-linux-gnu
Status: RESOLVED DUPLICATE of bug 69320
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 6.0
: P3 normal
Target Milestone: 6.0
Assignee: Not yet assigned to anyone
URL:
Keywords: wrong-code
Depends on: 69320
Blocks:
  Show dependency treegraph
 
Reported: 2016-01-17 08:16 UTC by Zhendong Su
Modified: 2016-01-18 19:08 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2016-01-17 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zhendong Su 2016-01-17 08:16:52 UTC
The current gcc trunk miscompiles the following code on x86_64-linux-gnu at -O2 and -O3 in both 32-bit and 64-bit modes. 

This is a regression from 5.3.x.


$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --prefix=/usr/local/gcc-trunk --enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
gcc version 6.0.0 20160116 (experimental) [trunk revision 232466] (GCC) 
$ 
$ gcc-trunk -Os small.c; ./a.out
0
$ gcc-5.3 -O2 small.c; ./a.out
0
$ 
$ gcc-trunk -O2 small.c
$ ./a.out
0
Floating point exception (core dumped)
$ 
$ 


--------------------------------------


int printf (const char *, ...); 

int a, *c, d, e, g, f;
short b;

int 
fn1 ()
{
  int h = d != 10;
  if (h > g)
    printf ("%d\n", d);
  if (h == 10)
    {
      int *i = 0;
      a = 0;
      for (; a < 7; a++)
	for (; *i;)
	  ;
    }
  else
    {
      b = e / h;
      return f;
    }
  c = &h;
  return 0; 
}

int
main ()
{
  fn1 ();
  return 0;
}
Comment 1 Jakub Jelinek 2016-01-17 21:34:08 UTC
Started with r232361.
Comment 2 Jakub Jelinek 2016-01-18 08:26:39 UTC
.

*** This bug has been marked as a duplicate of bug 69320 ***
Comment 3 Jeffrey A. Law 2016-01-18 19:08:40 UTC
Similarly.  Confirmed as a dup of 69320.  My pending fix for 69320 fixes this as well.