<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Wrong backtrace information at O3"
href="https://bugs.llvm.org/show_bug.cgi?id=46038">46038</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Wrong backtrace information at O3
</td>
</tr>
<tr>
<th>Product</th>
<td>libraries
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>enhancement
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>DebugInfo
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>massarelli@diag.uniroma1.it
</td>
</tr>
<tr>
<th>CC</th>
<td>ditaliano@apple.com, jdevlieghere@apple.com, keith.walker@arm.com, llvm-bugs@lists.llvm.org, paul_robinson@playstation.sony.com
</td>
</tr></table>
<p>
<div>
<pre>At some point on line 18 (for (; h < 6; h++)) the backtrace information is
totally wrong.
$ cat a.c
char a, d;
int b, f, g, h;
char c[1][1];
short e, l;
static const unsigned m(unsigned, unsigned char);
static int n() { return e; }
static unsigned short o(unsigned);
static short p() { m(d, a); }
const unsigned m(unsigned q, unsigned char r) {
f = n();
o(r);
g = q;
}
unsigned short o(unsigned q) {
int s[6][10] = {5, 5, 1, 5, 5, 3, 6};
b = s[4][9] & q;
h = 0;
for (; h < 6; h++)
for (; l < 0; l++)
s[h][l] = 9;
}
int main() {
int i, j, k;
p();
i = 0;
for (; i < 10; i++) {
j = 0;
for (; j < 4; j++) {
k = 0;
for (; k < 4; k++)
printf("%d\n", c[j]);
}
}
}
$ clang -v
clang version 11.0.0 (<a href="https://github.com/llvm/llvm-project.git">https://github.com/llvm/llvm-project.git</a>
da52aa2c3340d91025c0188175012c476967dc74)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
$ lldb -v
lldb version 11.0.0
clang revision da52aa2c3340d91025c0188175012c476967dc74
llvm revision da52aa2c3340d91025c0188175012c476967dc74
$ clang -Og -g -o opt a.c
$ lldb opt
(lldb) target create "opt"
Current executable set to 'opt' (x86_64).
(lldb) b -l 18
Breakpoint 1: where = opt`o + 64 at amod.c:18:18, address = 0x0000000000400640
(lldb) r
Process 599 launched: 'opt' (x86_64)
Process 599 stopped
* thread #1, name = 'opt', stop reason = breakpoint 1.1
frame #0: 0x0000000000400640 opt`o(q=4294960048) at amod.c:18:18
15 int s[6][10] = {5, 5, 1, 5, 5, 3, 6};
16 b = s[4][9] & q;
17 h = 0;
-> 18 for (; h < 6; h++)
19 for (; l < 0; l++)
20 s[h][l] = 9;
21 }
(lldb) c -i 4
Process 599 resuming
Process 599 stopped
* thread #1, name = 'opt', stop reason = breakpoint 1.1
frame #0: 0x0000000000400640 opt`o(q=4294960048) at amod.c:18:18
15 int s[6][10] = {5, 5, 1, 5, 5, 3, 6};
16 b = s[4][9] & q;
17 h = 0;
-> 18 for (; h < 6; h++)
19 for (; l < 0; l++)
20 s[h][l] = 9;
21 }
(lldb) bt
* thread #1, name = 'opt', stop reason = breakpoint 1.1
* frame #0: 0x0000000000400640 opt`o(q=4294960048) at amod.c:18:18
frame #1: 0x00000000004005e9 opt`m(q=0, r=<unavailable>) at amod.c:11:3
frame #2: 0x00000000004005c4 opt`p at amod.c:8:20
frame #3: 0x000000000040054c opt`main at amod.c:24:3
frame #4: 0x00007ffff7a05b97 libc.so.6`__libc_start_main + 231
frame #5: 0x000000000040047a opt`_start + 42
(lldb) s
Process 599 stopped
* thread #1, name = 'opt', stop reason = step in
frame #0: 0x000000000040064c opt`o(q=4294960048) at amod.c:18:3
15 int s[6][10] = {5, 5, 1, 5, 5, 3, 6};
16 b = s[4][9] & q;
17 h = 0;
-> 18 for (; h < 6; h++)
19 for (; l < 0; l++)
20 s[h][l] = 9;
21 }
(lldb) bt
* thread #1, name = 'opt', stop reason = step in
* frame #0: 0x000000000040064c opt`o(q=4294960048) at amod.c:18:3
frame #1: 0x0000000004e56c72
frame #2: 0x00007ffff7b7e0b0
libc.so.6`___lldb_unnamed_symbol1008$$libc.so.6 + 672
frame #3: 0x00007ffff7b7e6a0
libc.so.6`___lldb_unnamed_symbol1019$$libc.so.6 + 64
frame #4: 0x00007ffff7b80670 libc.so.6
frame #5: 0x00007ffff7b7e810 libc.so.6
frame #6: 0x00007ffff7b7e850
libc.so.6`___lldb_unnamed_symbol1023$$libc.so.6 + 64
frame #7: 0x00007ffff7b7e8b0
libc.so.6`___lldb_unnamed_symbol1024$$libc.so.6 + 96
frame #8: 0x00007ffff7b00de0 libc.so.6
frame #9: 0x00007ffff7b7e930
libc.so.6`___lldb_unnamed_symbol1026$$libc.so.6 + 16
frame #10: 0x00007ffff7b7e960
libc.so.6`___lldb_unnamed_symbol1027$$libc.so.6 + 48
frame #11: 0x00007ffff7b7ea30
libc.so.6`___lldb_unnamed_symbol1028$$libc.so.6 + 208
frame #12: 0x00007ffff7b80680
libc.so.6`___lldb_unnamed_symbol1043$$libc.so.6 + 16
frame #13: 0x00007ffff7b80750
libc.so.6`___lldb_unnamed_symbol1044$$libc.so.6 + 208
frame #14: 0x00007ffff7b807e0
libc.so.6`___lldb_unnamed_symbol1045$$libc.so.6 + 144
frame #15: 0x00007ffff7b7ece0
libc.so.6`___lldb_unnamed_symbol1034$$libc.so.6 + 48
frame #16: 0x00007ffff7b7ed10
libc.so.6`___lldb_unnamed_symbol1035$$libc.so.6 + 48
frame #17: 0x00007ffff7b7ed40
libc.so.6`___lldb_unnamed_symbol1036$$libc.so.6 + 48
frame #18: 0x00007ffff7b7ed70
libc.so.6`___lldb_unnamed_symbol1037$$libc.so.6 + 48
frame #19: 0x00007ffff7b7eda0
libc.so.6`___lldb_unnamed_symbol1038$$libc.so.6 + 48
frame #20: 0x00007ffff7b7eeb0
libc.so.6`___lldb_unnamed_symbol1040$$libc.so.6 + 224
frame #21: 0x00007ffff7b80680
libc.so.6`___lldb_unnamed_symbol1043$$libc.so.6 + 16
frame #22: 0x00007ffff7b807e0
libc.so.6`___lldb_unnamed_symbol1045$$libc.so.6 + 144</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>