about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 {}