Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
regression test for issue 111888.
  • Loading branch information
pnkfelix committed Aug 4, 2023
commit 7a0e2ee133dacf4e2dbda64a316a95746a469c58
9 changes: 9 additions & 0 deletions tests/ui/proc-macro/auxiliary/exports_no_mangle.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 20 additions & 0 deletions tests/ui/proc-macro/no-mangle-in-proc-macro-issue-111888.rs
Original file line number Diff line number Diff line change
@@ -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;