about summary refs log tree commit diff
diff options
context:
space:
mode:
authorklutzy <klutzytheklutzy@gmail.com>2013-12-20 00:29:39 +0900
committerklutzy <klutzytheklutzy@gmail.com>2013-12-20 01:53:41 +0900
commit2afa97a346650f2cfd2db892e2dd7eb98642ffc8 (patch)
tree395c81c3d3b4a6519b88f9d37314a9d63223050e
parente86cdaf23ded0d25582a33fea761963cf0eb4f41 (diff)
downloadrust-2afa97a346650f2cfd2db892e2dd7eb98642ffc8.tar.gz
rust-2afa97a346650f2cfd2db892e2dd7eb98642ffc8.zip
rustc: Handle `#[link(name = "")]` error
-rw-r--r--src/librustc/metadata/creader.rs6
-rw-r--r--src/test/compile-fail/bad-extern-link-attrs.rs1
2 files changed, 6 insertions, 1 deletions
diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs
index 955ba54a404..ec651b2c02a 100644
--- a/src/librustc/metadata/creader.rs
+++ b/src/librustc/metadata/creader.rs
@@ -219,7 +219,11 @@ fn visit_item(e: &Env, i: @ast::item) {
                                 @"foo"
                             }
                         };
-                        cstore::add_used_library(cstore, n.to_owned(), kind);
+                        if n.is_empty() {
+                            e.sess.span_err(m.span, "#[link(name = \"\")] given with empty name");
+                        } else {
+                            cstore::add_used_library(cstore, n.to_owned(), kind);
+                        }
                     }
                     None => {}
                 }
diff --git a/src/test/compile-fail/bad-extern-link-attrs.rs b/src/test/compile-fail/bad-extern-link-attrs.rs
index 0616da26602..ff63d4b739a 100644
--- a/src/test/compile-fail/bad-extern-link-attrs.rs
+++ b/src/test/compile-fail/bad-extern-link-attrs.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 #[link()] //~ ERROR: specified without `name =
+#[link(name = "")] //~ ERROR: with empty name
 #[link(name = "foo")]
 #[link(name = "foo", kind = "bar")] //~ ERROR: unknown kind
 extern {}