<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 at -O0 when compiling through -S"
   href="https://bugs.llvm.org/show_bug.cgi?id=52027">52027</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Emitted binary code changes at -O0 when compiling through -S
          </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 of program0.c changes when the program is compiled through
-S.

$ cat program0.c
int main(int a, char *b[]) { a && 0; }
$
$ 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>
2303391d1f543f4e57f9ed0fc68bad2d4cf890dc)
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
$
$ clang-trunk -O0 -S program0.c -o program0.s
$ clang-trunk -O0 -c program0.s -o program0.out
$ objdump --disassemble --section=.text program0.out > s.txt
$ clang-trunk -O0 -c program0.c -o program0.out
$ objdump --disassemble --section=.text program0.out > no_s.txt
$ diff s.txt no_s.txt
16,23c16,23
<   1b: 74 07                   je     24 <main+0x24>
<   1d: 31 c0                   xor    %eax,%eax
<   1f: 88 45 ef                mov    %al,-0x11(%rbp)
<   22: eb 00                   jmp    24 <main+0x24>
<   24: 8a 45 ef                mov    -0x11(%rbp),%al
<   27: 8b 45 fc                mov    -0x4(%rbp),%eax
<   2a: 5d                      pop    %rbp
<   2b: c3                      retq
---
<span class="quote">>   1b:  0f 84 0a 00 00 00       je     2b <main+0x2b>
>   21:      31 c0                   xor    %eax,%eax
>   23:      88 45 ef                mov    %al,-0x11(%rbp)
>   26:      e9 00 00 00 00          jmpq   2b <main+0x2b>
>   2b:      8a 45 ef                mov    -0x11(%rbp),%al
>   2e:      8b 45 fc                mov    -0x4(%rbp),%eax
>   31:      5d                      pop    %rbp
>   32:      c3                      retq</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>