regression test for issue 111888.
This commit is contained in:
parent
3000c24afc
commit
7a0e2ee133
9
tests/ui/proc-macro/auxiliary/exports_no_mangle.rs
Normal file
9
tests/ui/proc-macro/auxiliary/exports_no_mangle.rs
Normal file
@ -0,0 +1,9 @@
|
||||
#![crate_type="lib"]
|
||||
|
||||
// Issue 111888: this crate (1.) is imported by a proc-macro crate and (2.)
|
||||
// exports a no_mangle function; that combination of acts was broken for some
|
||||
// period of time. See further discussion in the test file that imports this
|
||||
// crate.
|
||||
|
||||
#[no_mangle]
|
||||
pub fn some_no_mangle_function() { }
|
20
tests/ui/proc-macro/no-mangle-in-proc-macro-issue-111888.rs
Normal file
20
tests/ui/proc-macro/no-mangle-in-proc-macro-issue-111888.rs
Normal file
@ -0,0 +1,20 @@
|
||||
// run-pass
|
||||
// aux-build:exports_no_mangle.rs
|
||||
#![crate_type = "proc-macro"]
|
||||
|
||||
// Issue #111888: this proc-macro crate imports another crate that itself
|
||||
// exports a no_mangle function.
|
||||
//
|
||||
// That combination was broken for a period of time, because:
|
||||
//
|
||||
// In PR #99944 we *stopped* exporting no_mangle symbols from
|
||||
// proc-macro crates. The constructed linker version script still referred
|
||||
// to them, but resolving that discrepancy was left as a FIXME in the code.
|
||||
//
|
||||
// In PR #108017 we started telling the linker to check (via the
|
||||
// `--no-undefined-version` linker invocation flag) that every symbol referenced
|
||||
// in the "linker version script" is actually present in the linker input. So
|
||||
// the unresolved discrepancy from #99944 started surfacing as a compile-time
|
||||
// error.
|
||||
|
||||
extern crate exports_no_mangle;
|
Loading…
Reference in New Issue
Block a user