<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 - Emitted binary code changes when -g is enabled at -O2 with -flto"
href="https://bugs.llvm.org/show_bug.cgi?id=52539">52539</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Emitted binary code changes when -g is enabled at -O2 with -flto
</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>All
</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>Common Code Generator Code
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>tlwang@uwaterloo.ca
</td>
</tr>
<tr>
<th>CC</th>
<td>cnsun@uwaterloo.ca, llvm-bugs@lists.llvm.org
</td>
</tr>
<tr>
<th>Blocks</th>
<td>37728
</td>
</tr></table>
<p>
<div>
<pre>The .text section for the following program (program0_preprocessed.c
) changes after toggling the -g flag.
$ clang-trunk -v
clang version 14.0.0 (<a href="https://github.com/llvm/llvm-project.git">https://github.com/llvm/llvm-project.git</a>
82fc4cc60bec6d0eacad7e8575f404dcdf5144c5)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/cnsun/usr/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
$ cat program0_preprocessed.c
int a, e;
int volatile b;
int *c;
short d;
void main() {
int f;
for (;;) {
int g, h;
int i[6];
c = i;
d ^= 4;
f = d > i[5] ? 0 : d + i[5];
g = h = f - a;
int j = 2;
e = 2 - h;
b = e;
}
}
$ clang-trunk -w -flto -O2 program0_preprocessed.c -o a.out; objdump
--disassemble --section=.text a.out > no_g.txt
$ clang-trunk -w -flto -O2 -g program0_preprocessed.c -o a.out; objdump
--disassemble --section=.text a.out > g.txt
$ diff no_g.txt g.txt
98,106c98,105
< 401144: ba 02 00 00 00 mov $0x2,%edx
< 401149: 29 f2 sub %esi,%edx
< 40114b: 29 fa sub %edi,%edx
< 40114d: 39 fe cmp %edi,%esi
< 40114f: 41 0f 4c d1 cmovl %r9d,%edx
< 401153: 89 15 e3 2e 00 00 mov %edx,0x2ee3(%rip) #
40403c <b>
< 401159: 8b 74 24 fc mov -0x4(%rsp),%esi
< 40115d: eb d1 jmp 401130 <main+0x20>
< 40115f: 90 nop
---
<span class="quote">> 401144: 8d 0c 3e lea (%rsi,%rdi,1),%ecx
> 401147: ba 02 00 00 00 mov $0x2,%edx
> 40114c: 29 ca sub %ecx,%edx
> 40114e: 39 fe cmp %edi,%esi
> 401150: 41 0f 4c d1 cmovl %r9d,%edx
> 401154: 89 15 e2 2e 00 00 mov %edx,0x2ee2(%rip) # 40403c <b>
> 40115a: 8b 74 24 fc mov -0x4(%rsp),%esi
> 40115e: eb d0 jmp 401130 <main+0x20></span >
$</pre>
</div>
</p>
<div id="referenced">
<hr style="border: 1px dashed #969696">
<b>Referenced Bugs:</b>
<ul>
<li>
[<a class="bz_bug_link
bz_status_NEW "
title="NEW - [meta] Make llvm passes debug info invariant"
href="https://bugs.llvm.org/show_bug.cgi?id=37728">Bug 37728</a>] [meta] Make llvm passes debug info invariant
</li>
</ul>
</div>
<br>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>