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

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

Zhendong_Su
Beginner
530 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 -O1 small.c; ./a.out
$ 
$ icc -Os small.c; ./a.out
0
$ 
$ cat small.c
int printf (const char *, ...);

long a[2], b, c;

int main ()
{
  long d = 3620225796;
  for (; c < 1; c++)
    d = 0;
  if (~d && d)
    printf ("%ld\n", b);
  a = 1;
  return 0; 
}
$ 

 

0 Kudos
1 Reply
Igor_V_Intel
Employee
530 Views

I reproduced it with latest compiler versions and escalated (DPD200416555). Note that this happens due to incorrect constant propagation made by compiler.

0 Kudos
Reply