Quantcast
Channel: Intel® Software - Intel® C++ Compiler
Viewing all articles
Browse latest Browse all 1175

ICC 19.0.3.199 generates wrong debug info

$
0
0

The value of "l_1081" should be 7. However, with "-O3", the debugger outputs a wrong value of 2815.

= ICC and gdb versions =

$ ~/intel/bin/icc -v
icc version 19.0.3.199 (gcc version 7.3.0 compatibility)

$ ~/intel/bin/gdb-ia -v
GNU gdb (GDB) 8.0.1.19.ac119e063b+77c0a7e7d9+d6612c60e0+f9aa08edde

= Files to reproduce =

$ cat abc.c
 

int a, d;
int b[1];
short c;
char e, f;
char *g;
void h() {
  short l_1081 = 7;
  optimize_me_not();
  for (; 0;) {
    int i[] = {6};
    for (;;)
      for (;;) {
        int j[][1] = {
            j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j,
            j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j,
            j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j,
            j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j,
            j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j,
            j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j,
            j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j, j,
            j, j, j, j, j, j, j, j, j, j, j, j, j, j, 0, b};
        int k[][1] = {k, k, k, k, k, k, k, k, k, k, k, k, k,  k,       k, k,
                      k, k, k, k, k, k, k, k, k, k, k, k, k,  k,       k, k,
                      k, k, k, k, k, k, k, k, k, k, k, k, k,  k,       k, k,
                      k, k, k, k, k, k, k, k, k, k, k, k, k,  k,       k, k,
                      k, k, k, k, k, k, k, k, k, k, k, k, k,  k,       k, k,
                      k, k, k, k, k, k, k, k, k, k, k, k, &c, &l_1081, 1};
        int l[][1][3] = {{i, a}, {i, a}, {i, a}, {i, a}, {i, a}, {i, a}, 7,
                         i,      a,      {i, a}, {i, a}, {i, a}, {i, a}, {i, a},
                         {i, a}, {i, a}, 7,      i,      a,      {i, a}, {i, a},
                         {i, a}, {i, a}, {i, a}, {i, a}, {i, a}, 7,      i,
                         a,      i,      a,      i};
        int m = l;
        short n[] = {0};
        char *o = (*o = e = (g[2] = o) && f & n >= d ^ 1) | 1;
      }
  }
}
int main() { h(); }

 

$ cat cmds
b 8
r
p l_1081
kill
q

$ cat outer.c
optimize_me_not() {}

 

# Expected output#

$ ~/intel/bin/icc abc.c outer.c -g

$ ~/intel/bin/gdb-ia -x cmds -batch a.out
Breakpoint 1 at 0x400624: file abc.c, line 8.

Breakpoint 1, h () at abc.c:8
8         optimize_me_not();
$1 = 7

 

#Wrong output at -O3#

$ ~/intel/bin/icc abc.c outer.c -g -O3

$ ~/intel/bin/gdb-ia -x cmds -batch a.out
Breakpoint 1 at 0x400b10: file abc.c, line 8.

Breakpoint 1, h () at abc.c:8
8         optimize_me_not();
$1 = 2815

 

 

 

 

 


Viewing all articles
Browse latest Browse all 1175

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>