<p dir="auto">This is the first time I've actually spent much time playing around with rust, so I probably just wrote some code that was very unexpected for the compiler. Here's the backtrace:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="src/eg05.rs:53:13: 53:19 error: internal compiler error: debuginfo::create_local_var_metadata() - Referenced variable location is not an alloca!
src/eg05.rs:53         let s_rect = Some(surface.get_rect());
                           ^~~~~~
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box&lt;Any&gt;', /home/rustbuild/src/rust-buildbot/slave/nightly-linux/build/src/libsyntax/diagnostic.rs:123

stack backtrace:
   1:     0x7f91ec606110 - sys::backtrace::write::h4bab949887dac0c7zat
   2:     0x7f91ec625f10 - failure::on_fail::h441e5a1820cd6786srz
   3:     0x7f91ec59be70 - rt::unwind::begin_unwind_inner::h486e1ba2aedf0a36w5y
   4:     0x7f91e7698ca0 - rt::unwind::begin_unwind::h10348708083188279757
   5:     0x7f91e7698c30 - diagnostic::SpanHandler::span_bug::h76fa8d3c461a05c4bJF
   6:     0x7f91ea56ba00 - session::Session::span_bug::hfc0762eee9d950b53jn
   7:     0x7f91eb49a3d0 - middle::pat_util::pat_bindings::closure.48467
   8:     0x7f91e7661f50 - ast_util::walk_pat::hd8c3c64961fdf7a2TkC
   9:     0x7f91eb387620 - trans::controlflow::trans_block::h12d1b1c29fe0d7cbcYd
  10:     0x7f91eb3cc5b0 - trans::expr::trans_rvalue_stmt_unadjusted::hd28699d545991297KUi
  11:     0x7f91eb386ec0 - trans::expr::trans_into::h3c3710e6ca2ca88dLzh
  12:     0x7f91eb3862a0 - trans::controlflow::trans_stmt_semi::h2c62833a881b1b43jXd
  13:     0x7f91eb387620 - trans::controlflow::trans_block::h12d1b1c29fe0d7cbcYd
  14:     0x7f91eb4441a0 - trans::base::trans_closure::h99f933ea6f1e01c5BYt
  15:     0x7f91eb37bd90 - trans::base::trans_fn::hf71ee8d58ecc6d28q9t
  16:     0x7f91eb3770e0 - trans::base::trans_item::hc39398da93f34132Swu
  17:     0x7f91eb44bf10 - trans::base::trans_crate::hbaaa84f58ddebf49vsv
  18:     0x7f91ecb572d0 - driver::phase_4_translate_to_llvm::h491e2dead8eb9d7fcFa
  19:     0x7f91ecb371e0 - driver::compile_input::hc83f8f50017addacvba
  20:     0x7f91ecc7dbb0 - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h10576259651718141556
  21:     0x7f91ecc7c970 - rt::unwind::try::try_fn::h9568114966234907229
  22:     0x7f91ec68b440 - rust_try_inner
  23:     0x7f91ec68b430 - rust_try
  24:     0x7f91ecc7ccc0 - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h7353494892923989973
  25:     0x7f91ec615890 - sys::thread::thread_start::hd8a164ae33ed6e55u3v
  26:     0x7f91e6eb3fe0 - start_thread
  27:     0x7f91ec243819 - __clone
  28:                0x0 - &lt;unknown&gt;

Could not compile `sdl2-examples`."><pre class="notranslate"><code class="notranslate">src/eg05.rs:53:13: 53:19 error: internal compiler error: debuginfo::create_local_var_metadata() - Referenced variable location is not an alloca!
src/eg05.rs:53         let s_rect = Some(surface.get_rect());
                           ^~~~~~
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box&lt;Any&gt;', /home/rustbuild/src/rust-buildbot/slave/nightly-linux/build/src/libsyntax/diagnostic.rs:123

stack backtrace:
   1:     0x7f91ec606110 - sys::backtrace::write::h4bab949887dac0c7zat
   2:     0x7f91ec625f10 - failure::on_fail::h441e5a1820cd6786srz
   3:     0x7f91ec59be70 - rt::unwind::begin_unwind_inner::h486e1ba2aedf0a36w5y
   4:     0x7f91e7698ca0 - rt::unwind::begin_unwind::h10348708083188279757
   5:     0x7f91e7698c30 - diagnostic::SpanHandler::span_bug::h76fa8d3c461a05c4bJF
   6:     0x7f91ea56ba00 - session::Session::span_bug::hfc0762eee9d950b53jn
   7:     0x7f91eb49a3d0 - middle::pat_util::pat_bindings::closure.48467
   8:     0x7f91e7661f50 - ast_util::walk_pat::hd8c3c64961fdf7a2TkC
   9:     0x7f91eb387620 - trans::controlflow::trans_block::h12d1b1c29fe0d7cbcYd
  10:     0x7f91eb3cc5b0 - trans::expr::trans_rvalue_stmt_unadjusted::hd28699d545991297KUi
  11:     0x7f91eb386ec0 - trans::expr::trans_into::h3c3710e6ca2ca88dLzh
  12:     0x7f91eb3862a0 - trans::controlflow::trans_stmt_semi::h2c62833a881b1b43jXd
  13:     0x7f91eb387620 - trans::controlflow::trans_block::h12d1b1c29fe0d7cbcYd
  14:     0x7f91eb4441a0 - trans::base::trans_closure::h99f933ea6f1e01c5BYt
  15:     0x7f91eb37bd90 - trans::base::trans_fn::hf71ee8d58ecc6d28q9t
  16:     0x7f91eb3770e0 - trans::base::trans_item::hc39398da93f34132Swu
  17:     0x7f91eb44bf10 - trans::base::trans_crate::hbaaa84f58ddebf49vsv
  18:     0x7f91ecb572d0 - driver::phase_4_translate_to_llvm::h491e2dead8eb9d7fcFa
  19:     0x7f91ecb371e0 - driver::compile_input::hc83f8f50017addacvba
  20:     0x7f91ecc7dbb0 - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h10576259651718141556
  21:     0x7f91ecc7c970 - rt::unwind::try::try_fn::h9568114966234907229
  22:     0x7f91ec68b440 - rust_try_inner
  23:     0x7f91ec68b430 - rust_try
  24:     0x7f91ecc7ccc0 - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h7353494892923989973
  25:     0x7f91ec615890 - sys::thread::thread_start::hd8a164ae33ed6e55u3v
  26:     0x7f91e6eb3fe0 - start_thread
  27:     0x7f91ec243819 - __clone
  28:                0x0 - &lt;unknown&gt;

Could not compile `sdl2-examples`.
</code></pre></div>
<p dir="auto">I was playing with <a href="https://github.com/jdeseno/rs-sdl2-examples">these examples</a>, specifically I was modifying example 5. Here is the (very broken, probably terrible code, sorry) diff of eg05.rs that shows the state the file was in when Rust broke.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="diff --git a/src/eg05.rs b/src/eg05.rs
index 39c26fd..88632fa 100644
--- a/src/eg05.rs
+++ b/src/eg05.rs
@@ -3,6 +3,8 @@ extern crate sdl2;
 use sdl2::video::{WindowPos, Window, OPENGL};
 use sdl2::event::{Event, poll_event};
 use sdl2::surface::{Surface};
+use sdl2::rect::Rect;
+use std::io::timer::sleep;

 fn main() {
     sdl2::init(sdl2::INIT_EVERYTHING);
@@ -31,12 +33,14 @@ fn main() {
     };

     let _ = renderer.clear();
-    // Display the texture.
-    // Omitting the src &amp; dst Rect arguments will cause our image to stretch across the entire buffer.
-    // Try passing Some(surface.get_rect()) for src &amp; dst instead of None &amp; see how things change.
-    let _ = renderer.copy(&amp;texture, None, None);
+    let s_rect = Some(surface.get_rect());
+    let z_rect = Some(Rect::new(120,80,128,114));
+    println!(&quot;s_rect: {}&quot;, s_rect);
+    let _ = renderer.copy(&amp;texture, s_rect, z_rect);
     let _ = renderer.present();

+    let mut x = 120;
+

     // loop until we receive a QuitEvent
     'event : loop {
@@ -44,6 +48,14 @@ fn main() {
             Event::Quit(_) =&gt; break 'event,
             _            =&gt; continue
         }
+        sleep(std::time::duration::Duration::milliseconds(200));
+        let _ = renderer.clear();
+        let s_rect = Some(surface.get_rect());
+        let z_rect = Some(Rect::new(x,80,128,114));
+        println!(&quot;s_rect: {}&quot;, s_rect);
+        let _ = renderer.copy(&amp;texture, s_rect, z_rect);
+        let _ = renderer.present();
+        x += 30;
     }

     sdl2::quit();"><pre class="notranslate"><code class="notranslate">diff --git a/src/eg05.rs b/src/eg05.rs
index 39c26fd..88632fa 100644
--- a/src/eg05.rs
+++ b/src/eg05.rs
@@ -3,6 +3,8 @@ extern crate sdl2;
 use sdl2::video::{WindowPos, Window, OPENGL};
 use sdl2::event::{Event, poll_event};
 use sdl2::surface::{Surface};
+use sdl2::rect::Rect;
+use std::io::timer::sleep;

 fn main() {
     sdl2::init(sdl2::INIT_EVERYTHING);
@@ -31,12 +33,14 @@ fn main() {
     };

     let _ = renderer.clear();
-    // Display the texture.
-    // Omitting the src &amp; dst Rect arguments will cause our image to stretch across the entire buffer.
-    // Try passing Some(surface.get_rect()) for src &amp; dst instead of None &amp; see how things change.
-    let _ = renderer.copy(&amp;texture, None, None);
+    let s_rect = Some(surface.get_rect());
+    let z_rect = Some(Rect::new(120,80,128,114));
+    println!("s_rect: {}", s_rect);
+    let _ = renderer.copy(&amp;texture, s_rect, z_rect);
     let _ = renderer.present();

+    let mut x = 120;
+

     // loop until we receive a QuitEvent
     'event : loop {
@@ -44,6 +48,14 @@ fn main() {
             Event::Quit(_) =&gt; break 'event,
             _            =&gt; continue
         }
+        sleep(std::time::duration::Duration::milliseconds(200));
+        let _ = renderer.clear();
+        let s_rect = Some(surface.get_rect());
+        let z_rect = Some(Rect::new(x,80,128,114));
+        println!("s_rect: {}", s_rect);
+        let _ = renderer.copy(&amp;texture, s_rect, z_rect);
+        let _ = renderer.present();
+        x += 30;
     }

     sdl2::quit();
</code></pre></div>
<p dir="auto">And here is the requested version info for rust:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="rustc 0.13.0-nightly (fea5aa656 2014-12-30 00:42:13 +0000)
binary: rustc
commit-hash: fea5aa656ff4349f4d3e1fea1447d26986762ae1
commit-date: 2014-12-30 00:42:13 +0000
host: x86_64-unknown-linux-gnu
release: 0.13.0-nightly"><pre class="notranslate"><code class="notranslate">rustc 0.13.0-nightly (fea5aa656 2014-12-30 00:42:13 +0000)
binary: rustc
commit-hash: fea5aa656ff4349f4d3e1fea1447d26986762ae1
commit-date: 2014-12-30 00:42:13 +0000
host: x86_64-unknown-linux-gnu
release: 0.13.0-nightly
</code></pre></div>
<p dir="auto">I'm using rust on a 64-bit Acer C720P Chromebook, with Ubuntu 14.10 running in a chroot.</p>
<p dir="auto">This little program causes a compiler panic:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="fn main() {
  return;
  let a = &quot;&quot;;
}"><pre class="notranslate"><span class="pl-k">fn</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-k">return</span><span class="pl-kos">;</span>
  <span class="pl-k">let</span> a = <span class="pl-s">""</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">The error message is the following:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="error: internal compiler error: debuginfo::create_local_var_metadata() - Referenced variable location is not an alloca!

thread 'rustc' panicked at 'Box&lt;Any&gt;', /Users/rustbuild/src/rust-buildbot/slave/nightly-mac/build/src/libsyntax/diagnostic.rs:123

stack backtrace:
   1:        0x1110d3460 - sys::backtrace::write::hd64c72d07de40cf8tbt
   2:        0x1110f3817 - failure::on_fail::h646e1201dbb0ef3bNhz
   3:        0x11106570a - rt::unwind::begin_unwind_inner::hec294e47b94ba78aiZy
   4:        0x10ef6fc57 - rt::unwind::begin_unwind::h558350071601703502
   5:        0x10ef6fbe4 - diagnostic::SpanHandler::span_bug::he3912bc404042fc4LQF
   6:        0x10e40930d - session::Session::span_bug::h5801ed3acd26a48eY4l
   7:        0x10dbbfa8e - middle::pat_util::pat_bindings::closure.48598
   8:        0x10ef3a3f1 - ast_util::walk_pat::hbe1ce29526693031GsC
   9:        0x10daafca0 - trans::controlflow::trans_block::h956d3c669c21aa441Vd
  10:        0x10db6c487 - trans::base::trans_closure::h98002b90cdeb7941jSt
  11:        0x10daa4326 - trans::base::trans_fn::h68450a8b056829a432t
  12:        0x10da9faec - trans::base::trans_item::h8a58a6cf2c6184c8Vnu
  13:        0x10db72f18 - trans::base::trans_crate::h35254e15f256e4f14iv
  14:        0x10d870560 - driver::phase_4_translate_to_llvm::h2943144b3698b013mDa
  15:        0x10d8478b3 - driver::compile_input::hd01e9035001db87cwba
  16:        0x10d9e5d54 - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h356901253070274503
  17:        0x10d9e2670 - rt::unwind::try::try_fn::h13338831715023405046
  18:        0x11115b029 - rust_try_inner
  19:        0x11115b016 - rust_try
  20:        0x10d9e2d6b - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h15972762549593096795
  21:        0x1110e2de4 - sys::thread::thread_start::h719786e0e5fa53d4b1v
  22:     0x7fff8e9742fc - _pthread_body
  23:     0x7fff8e974279 - _pthread_body"><pre class="notranslate"><code class="notranslate">error: internal compiler error: debuginfo::create_local_var_metadata() - Referenced variable location is not an alloca!

thread 'rustc' panicked at 'Box&lt;Any&gt;', /Users/rustbuild/src/rust-buildbot/slave/nightly-mac/build/src/libsyntax/diagnostic.rs:123

stack backtrace:
   1:        0x1110d3460 - sys::backtrace::write::hd64c72d07de40cf8tbt
   2:        0x1110f3817 - failure::on_fail::h646e1201dbb0ef3bNhz
   3:        0x11106570a - rt::unwind::begin_unwind_inner::hec294e47b94ba78aiZy
   4:        0x10ef6fc57 - rt::unwind::begin_unwind::h558350071601703502
   5:        0x10ef6fbe4 - diagnostic::SpanHandler::span_bug::he3912bc404042fc4LQF
   6:        0x10e40930d - session::Session::span_bug::h5801ed3acd26a48eY4l
   7:        0x10dbbfa8e - middle::pat_util::pat_bindings::closure.48598
   8:        0x10ef3a3f1 - ast_util::walk_pat::hbe1ce29526693031GsC
   9:        0x10daafca0 - trans::controlflow::trans_block::h956d3c669c21aa441Vd
  10:        0x10db6c487 - trans::base::trans_closure::h98002b90cdeb7941jSt
  11:        0x10daa4326 - trans::base::trans_fn::h68450a8b056829a432t
  12:        0x10da9faec - trans::base::trans_item::h8a58a6cf2c6184c8Vnu
  13:        0x10db72f18 - trans::base::trans_crate::h35254e15f256e4f14iv
  14:        0x10d870560 - driver::phase_4_translate_to_llvm::h2943144b3698b013mDa
  15:        0x10d8478b3 - driver::compile_input::hd01e9035001db87cwba
  16:        0x10d9e5d54 - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h356901253070274503
  17:        0x10d9e2670 - rt::unwind::try::try_fn::h13338831715023405046
  18:        0x11115b029 - rust_try_inner
  19:        0x11115b016 - rust_try
  20:        0x10d9e2d6b - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h15972762549593096795
  21:        0x1110e2de4 - sys::thread::thread_start::h719786e0e5fa53d4b1v
  22:     0x7fff8e9742fc - _pthread_body
  23:     0x7fff8e974279 - _pthread_body
</code></pre></div>