<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 - Regression: ARM segfault when upgrading to 6.0.0"
href="https://bugs.llvm.org/show_bug.cgi?id=36073">36073</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Regression: ARM segfault when upgrading to 6.0.0
</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>Windows NT
</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>Backend: ARM
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>alex@crichton.co
</td>
</tr>
<tr>
<th>CC</th>
<td>efriedma@codeaurora.org, eugeni.stepanov@gmail.com, llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>When upgrading rust-lang/rust to LLVM 6.0.0 we've noticed that there are some
failing tests of ours on ARM. I was unfortunately unable to make heads or tails
of the segfault (it was a load from the zero address) but I was able to bisect
it to a specific change from 5.0.0 to 6.0.0.
I was wondering if cc'd folks could help debug this? (y'all were listed on the
change <a href="https://reviews.llvm.org/D39871">https://reviews.llvm.org/D39871</a>) I unfortunately don't have a minimal
test case for LLVM but what I do have is that this Rust source code reproduces
the issue with optimizations enabled [1] as well as some IR that may be
contextually helpful. The IR in question [2] is generated for the Rust codegen
unit here, and the IR isn't suspect I believe but rather the object file
generated (using LLVM 5 with that IR produces a working program, but LLVM 6
produces a segfaulting program with the same IR).
The Rust program here is notably using `panic!` which translates roughly to an
exception in C++ (using `invoke` instructions in Rust as well as catching the
exception at some point). The segfault appeared to happene near a destructor in
the main function (after the exception should have been caught) but I'm not
100% sure about this.
I'd definitely love to help give any more information necessary as well! I'm
hoping y'all will be able to look at this and know what's up, but if there's
any questions please don't hesistate to ask me!
[1]:
<a href="https://gist.github.com/alexcrichton/715515a1967ccc0bc1d47e285aa372e3#file-panic-macro-fmt-rs">https://gist.github.com/alexcrichton/715515a1967ccc0bc1d47e285aa372e3#file-panic-macro-fmt-rs</a>
[2]:
<a href="https://gist.github.com/alexcrichton/715515a1967ccc0bc1d47e285aa372e3#file-panic-macro-fmt-panic_macro_fmt0-rcgu-ll">https://gist.github.com/alexcrichton/715515a1967ccc0bc1d47e285aa372e3#file-panic-macro-fmt-panic_macro_fmt0-rcgu-ll</a></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>