rustc: Fix ICE in native library error reporting
This commit is contained in:
parent
ef9b49881b
commit
c82a3706f7
3 changed files with 16 additions and 4 deletions
|
@ -418,10 +418,11 @@ impl<'tcx> Collector<'tcx> {
|
||||||
// involved or not, library reordering and kind overriding without
|
// involved or not, library reordering and kind overriding without
|
||||||
// explicit `:rename` in particular.
|
// explicit `:rename` in particular.
|
||||||
if lib.has_modifiers() || passed_lib.has_modifiers() {
|
if lib.has_modifiers() || passed_lib.has_modifiers() {
|
||||||
self.tcx.sess.span_err(
|
let msg = "overriding linking modifiers from command line is not supported";
|
||||||
self.tcx.def_span(lib.foreign_module.unwrap()),
|
match lib.foreign_module {
|
||||||
"overriding linking modifiers from command line is not supported"
|
Some(def_id) => self.tcx.sess.span_err(self.tcx.def_span(def_id), msg),
|
||||||
);
|
None => self.tcx.sess.err(msg),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
if passed_lib.kind != NativeLibKind::Unspecified {
|
if passed_lib.kind != NativeLibKind::Unspecified {
|
||||||
lib.kind = passed_lib.kind;
|
lib.kind = passed_lib.kind;
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
// Regression test for issue #97299, one command line library with modifiers
|
||||||
|
// overrides another command line library with modifiers.
|
||||||
|
|
||||||
|
// compile-flags:-lstatic:+whole-archive=foo -lstatic:+whole-archive=foo
|
||||||
|
// error-pattern: overriding linking modifiers from command line is not supported
|
||||||
|
|
||||||
|
fn main() {}
|
|
@ -0,0 +1,4 @@
|
||||||
|
error: overriding linking modifiers from command line is not supported
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue