Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Zhendong_Su
Beginner
98 Views

icc 17.0.1 miscompiles valid C code at -O1 and above on x86_64-linux-gnu

Compiler version and platform: 

Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 17.0.1.132 Build 20161005 

$ icc -O0 small.c; ./a.out
0
$ 
$ icc -O1 small.c; ./a.out
1
$ 
$ cat small.c
int printf (const char *, ...);

static char a = 1;
int b;

void fn1 () {}

int fn2 ()
{
  int d = 0;
  while (0)
    {
      fn1 ();
      return a;
    }
  return d;
}

int main ()
{
  printf ("%d\n", fn2 ());
  return 0; 
}
$ 

 

0 Kudos
0 Replies
Reply