<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>