<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:labath@google.com" title="labath@google.com">labath@google.com</a>
</span> changed
          <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - LLDB Does not print the correct value for a variable (suspect NRVO alias issue)"
   href="https://bugs.llvm.org/show_bug.cgi?id=35654">bug 35654</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Assignee</td>
           <td>lldb-dev@lists.llvm.org
           </td>
           <td>jingham@apple.com
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - LLDB Does not print the correct value for a variable (suspect NRVO alias issue)"
   href="https://bugs.llvm.org/show_bug.cgi?id=35654#c6">Comment # 6</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - LLDB Does not print the correct value for a variable (suspect NRVO alias issue)"
   href="https://bugs.llvm.org/show_bug.cgi?id=35654">bug 35654</a>
              from <span class="vcard"><a class="email" href="mailto:labath@google.com" title="labath@google.com">labath@google.com</a>
</span></b>
        <pre>Thanks for the binaries.

This here seems to be the key (diff of output of llvm-dwarfdump on main.o):
 0x0000006e:     DW_TAG_variable
                   DW_AT_location       (0x00000000
-                     0x0000000000000028 - 0x0000000000000041: DW_OP_breg6
RBP-24)
+                     0x0000000000000028 - 0x0000000000000041: DW_OP_breg6
RBP-24, DW_OP_deref)
                   DW_AT_name   ("r")

(the - is your file, the + is the file generated by my clang).

It seems that the xcode clang forgot to add the OP_deref opcode to the location
of the r variable. This means lldb will go looking for in in the wrong place
and display garbage.

Since the behavior is correct on older clangs as well as on current master, I
assume that the Xcode branched clang off of some revision that had this broken.
There isn't much we can do about this from the debugger side, but I'll assign
this to our xcode folks, to see if they can do anything about the compiler
itself.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>