about summary refs log tree commit diff
path: root/src/test/debug-info
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-01-08 11:26:30 -0800
committerbors <bors@rust-lang.org>2014-01-08 11:26:30 -0800
commit97005c0068f22032cbc30205a25dc88851eba424 (patch)
tree9482417e40b6bf7f9406ff1d763a4440c731628b /src/test/debug-info
parent430652c970db41f718936bb649516c401b02964b (diff)
parentad3a179954fb8e04794ad22584adc071c6a1d86d (diff)
auto merge of #11401 : michaelwoerister/rust/issue11322, r=alexcrichton
`expand_include_str()` in libsyntax seems to have corrupted the CodeMap by always setting the BytePos of any included files to zero. It now uses `CodeMap::new_filemap()` which should set everything properly. This should fix issue #11322 but I don't want to close it before I have confirmation from the reporters that the problem is indeed fixed.
Diffstat (limited to 'src/test/debug-info')
-rw-r--r--src/test/debug-info/include_string.rs37
-rw-r--r--src/test/debug-info/text-to-include-1.txt1
-rw-r--r--src/test/debug-info/text-to-include-2.txt1
-rw-r--r--src/test/debug-info/text-to-include-3.txt1
4 files changed, 40 insertions, 0 deletions
diff --git a/src/test/debug-info/include_string.rs b/src/test/debug-info/include_string.rs
new file mode 100644
index 00000000000..a13dde22710
--- /dev/null
+++ b/src/test/debug-info/include_string.rs
@@ -0,0 +1,37 @@
+// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// xfail-android: FIXME(#10381)
+
+// compile-flags:-Z extra-debug-info
+// debugger:rbreak zzz
+// debugger:run
+// debugger:finish
+// debugger:print string1
+// check:$1 = [...]"some text to include in another file as string 1", length = 48}
+// debugger:print string2
+// check:$2 = [...]"some text to include in another file as string 2", length = 48}
+// debugger:print string3
+// check:$3 = [...]"some text to include in another file as string 3", length = 48}
+// debugger:continue
+
+#[allow(unused_variable)];
+
+// This test case makes sure that debug info does not ICE when include_str is 
+// used multiple times (see issue #11322).
+
+fn main() {
+    let string1 = include_str!("text-to-include-1.txt");
+    let string2 = include_str!("text-to-include-2.txt");
+    let string3 = include_str!("text-to-include-3.txt");
+    zzz();
+}
+
+fn zzz() {()}
diff --git a/src/test/debug-info/text-to-include-1.txt b/src/test/debug-info/text-to-include-1.txt
new file mode 100644
index 00000000000..ba055272a3f
--- /dev/null
+++ b/src/test/debug-info/text-to-include-1.txt
@@ -0,0 +1 @@
+some text to include in another file as string 1
\ No newline at end of file
diff --git a/src/test/debug-info/text-to-include-2.txt b/src/test/debug-info/text-to-include-2.txt
new file mode 100644
index 00000000000..a2caa5e7141
--- /dev/null
+++ b/src/test/debug-info/text-to-include-2.txt
@@ -0,0 +1 @@
+some text to include in another file as string 2
\ No newline at end of file
diff --git a/src/test/debug-info/text-to-include-3.txt b/src/test/debug-info/text-to-include-3.txt
new file mode 100644
index 00000000000..9933e6c1b0b
--- /dev/null
+++ b/src/test/debug-info/text-to-include-3.txt
@@ -0,0 +1 @@
+some text to include in another file as string 3
\ No newline at end of file