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; } $