From: Jorge Aparicio Date: Fri, 29 Jun 2018 21:00:34 +0000 (-0500) Subject: improve the error message when `#[panic_implementation]` is missing X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=faaf250a912dd6e203b232ed4b4137eebc8b5c78;p=rust.git improve the error message when `#[panic_implementation]` is missing closes #51341 --- diff --git a/src/librustc/middle/weak_lang_items.rs b/src/librustc/middle/weak_lang_items.rs index 1d147eef054..180e75df1a6 100644 --- a/src/librustc/middle/weak_lang_items.rs +++ b/src/librustc/middle/weak_lang_items.rs @@ -112,9 +112,13 @@ fn verify<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, 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))); + } } )* } diff --git a/src/test/compile-fail/panic-implementation-missing.rs b/src/test/compile-fail/panic-implementation-missing.rs new file mode 100644 index 00000000000..b11081a3e3b --- /dev/null +++ b/src/test/compile-fail/panic-implementation-missing.rs @@ -0,0 +1,18 @@ +// 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 or the MIT license +// , 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() {}