about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-01-01 13:03:26 -0800
committerAlex Crichton <alex@alexcrichton.com>2014-01-01 13:20:00 -0800
commitdd33b145f3ec0806adec2ca5c9cfb5ccf297bd34 (patch)
tree160712eeda71bde4cb72e83b2b6845c170881b01
parentc34ef5d7e4f44f8e65600a2c3866f5861c401ea1 (diff)
downloadrust-dd33b145f3ec0806adec2ca5c9cfb5ccf297bd34.tar.gz
rust-dd33b145f3ec0806adec2ca5c9cfb5ccf297bd34.zip
Fix usage of rustc --ls on invalid files
Closes #11259
-rw-r--r--src/librustc/lib/llvm.rs2
-rw-r--r--src/test/run-make/ls-metadata/Makefile7
-rw-r--r--src/test/run-make/ls-metadata/foo.rs1
3 files changed, 9 insertions, 1 deletions
diff --git a/src/librustc/lib/llvm.rs b/src/librustc/lib/llvm.rs
index 0639526ffdb..f8d2edefd36 100644
--- a/src/librustc/lib/llvm.rs
+++ b/src/librustc/lib/llvm.rs
@@ -1936,7 +1936,7 @@ impl ObjectFile {
         unsafe {
             let llof = llvm::LLVMCreateObjectFile(llmb);
             if llof as int == 0 {
-                llvm::LLVMDisposeMemoryBuffer(llmb);
+                // LLVMCreateObjectFile took ownership of llmb
                 return None
             }
 
diff --git a/src/test/run-make/ls-metadata/Makefile b/src/test/run-make/ls-metadata/Makefile
new file mode 100644
index 00000000000..b568809156b
--- /dev/null
+++ b/src/test/run-make/ls-metadata/Makefile
@@ -0,0 +1,7 @@
+-include ../tools.mk
+
+all:
+	$(RUSTC) foo.rs
+	$(RUSTC) --ls $(TMPDIR)/foo
+	touch $(TMPDIR)/bar
+	$(RUSTC) --ls $(TMPDIR)/bar
diff --git a/src/test/run-make/ls-metadata/foo.rs b/src/test/run-make/ls-metadata/foo.rs
new file mode 100644
index 00000000000..f328e4d9d04
--- /dev/null
+++ b/src/test/run-make/ls-metadata/foo.rs
@@ -0,0 +1 @@
+fn main() {}