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

icc 17.0.1 miscompiles valid C code at -Os (only) on x86_64-linux-gnu

Zhendong_Su
Beginner
550 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; echo $?
1
$ 
$ icc -Os small.c; ./a.out; echo $?
48
$ 
$ cat small.c
struct S
{
  int f;
} a;

int b, c;

void foo ()
{
  for (; b < 5; b++)
    {
      struct S d[1] = { { 1 } };
      a = d[0];
    }
}

int main ()
{
  foo ();
  for (c = 0; c;)
    ;
  return a.f;
}
$ 

 

0 Kudos
1 Reply
Igor_V_Intel
Employee
550 Views

Escalated to be fixed (DPD200416556). Thank you for submitting this to us.

0 Kudos
Reply