Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7954 Discussions

icc 17.0.1 miscompiles valid C code at -O3 on x86_64-linux-gnu

Zhendong_Su
Beginner
396 Views

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 -O2 small.c; ./a.out
0
$ 
$ icc -O3 small.c; ./a.out
-1
$ 
$ cat small.c
int printf (const char *, ...);

int a, b, c, d = 1, e, f;

void foo ()
{
  for (c = 0; c < 2; c++)
    {
      if (d)
        {
          if (a && e)
            continue;
          b = c;
          c = b;
        }
      break; 
    }
}

int main ()
{
  foo ();
  printf ("%d\n", c);
  for (f = 0; f < 2; f++)
    ;
  return 0; 
}
$ 

 

0 Kudos
1 Reply
Igor_V_Intel
Employee
396 Views

Escalated to be fixed (DPD200416560). The bug is in HPO optimization.

0 Kudos
Reply