<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </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 --- - Emitting additional debug info would allow shrink-wrapping to be used on function with sanitize-like attribute"
   href="https://llvm.org/bugs/show_bug.cgi?id=25560">25560</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Emitting additional debug info would allow shrink-wrapping to be used on function with sanitize-like attribute
          </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>normal
          </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>qcolombet@apple.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=15307" name="attach_15307" title="Without shrink-wrapping">attachment 15307</a> <a href="attachment.cgi?id=15307&action=edit" title="Without shrink-wrapping">[details]</a></span>
Without shrink-wrapping

In r253116, we disabled shrink-wrapping on function having a sanitize-like
attribute.
The rational for that change was that the sanitizers need to be able to rebuild
the stack frame anywhere in function and the produced code before (resp. after)
the prologue (resp. epilogue) does not describe how to that.

Indeed, frame settings are defined with cfa directives when the frame pointer
gets actually pushed. However, before that we still have the information
available directly in the frame pointer register, but this is not expressed in
the debug info.

Assuming this is possible to emit such information, it would be nice to teach
the compiler how to do it and then reenable shrink-wrapping when sanitizers
come into play.

I’ve attached the assembly code of a function with and without shrink-wrapping
enable for compiler-rt/test/asan/TestCases/null_deref.cc.</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>