if missing.contains(&lang_items::$item) &&
!whitelisted(tcx, lang_items::$item) &&
items.$name().is_none() {
- tcx.sess.err(&format!("language item required, but not found: `{}`",
- stringify!($name)));
-
+ if lang_items::$item == lang_items::PanicImplLangItem {
+ tcx.sess.err(&format!("`#[panic_implementation]` function required, \
+ but not found"));
+ } else {
+ tcx.sess.err(&format!("language item required, but not found: `{}`",
+ stringify!($name)));
+ }
}
)*
}
--- /dev/null
+// Copyright 2018 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.
+
+// error-pattern: `#[panic_implementation]` function required, but not found
+
+#![feature(lang_items)]
+#![no_main]
+#![no_std]
+
+#[lang = "eh_personality"]
+fn eh() {}