<p dir="auto">This program:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="pub fn main() {
    let s: &amp;str = &quot;foo&quot;;
    fail!(s);
}"><pre class="notranslate"><code class="notranslate">pub fn main() {
    let s: &amp;str = "foo";
    fail!(s);
}
</code></pre></div>
<p dir="auto">generates this error:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;std-macros&gt;:37:13: 37:36 error: instantiating a type parameter with an incompatible type `&amp;str`, which does not fulfill `Send`
&lt;std-macros&gt;:37             ::std::rt::begin_unwind($msg, file!(), line!())
                            ^~~~~~~~~~~~~~~~~~~~~~~
&lt;std-macros&gt;:32:5: 42:6 note: in expansion of fail!
badfail.rs:3:5: 3:14 note: expansion site
error: aborting due to previous error"><pre class="notranslate"><code class="notranslate">&lt;std-macros&gt;:37:13: 37:36 error: instantiating a type parameter with an incompatible type `&amp;str`, which does not fulfill `Send`
&lt;std-macros&gt;:37             ::std::rt::begin_unwind($msg, file!(), line!())
                            ^~~~~~~~~~~~~~~~~~~~~~~
&lt;std-macros&gt;:32:5: 42:6 note: in expansion of fail!
badfail.rs:3:5: 3:14 note: expansion site
error: aborting due to previous error
</code></pre></div>
<p dir="auto">It does point you to the right place if you read it close, but I missed it myself the first few times.</p>
<p dir="auto">Followup to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3622412" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/1970" data-hovercard-type="pull_request" data-hovercard-url="/rust-lang/rust/pull/1970/hovercard" href="https://github.com/rust-lang/rust/pull/1970">#1970</a>.</p>
<p dir="auto">One of the two tests in struct-return.rs doesn't work on x86. Works on x64 though.</p>
<p dir="auto">The double/byte/double one winds up feeding garbage memory to the callee. Valgrind gets upset. Program crashes.</p>