Skip to content

Commit 2eb3b37

Browse files
committed
Auto merge of #1938 - RalfJung:test, r=RalfJung
add regression test Adds a regression test for rust-lang/rust#91636 (which was fixed by rust-lang/rust#91856)
2 parents 65cbcb0 + 4da3829 commit 2eb3b37

File tree

4 files changed

+23
-5
lines changed

4 files changed

+23
-5
lines changed

rust-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
404c8471aba60c2d837fa728e7c729a0f52d5830
1+
c5ecc157043ba413568b09292001a4a74b541a4e

src/shims/foreign_items.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
176176
if let Some((original_instance, original_cnum)) = instance_and_crate {
177177
// Make sure we are consistent wrt what is 'first' and 'second'.
178178
let original_span = tcx.def_span(original_instance.def_id()).data();
179-
let span = tcx.def_span(def_id).data();
179+
let span = tcx.def_span(def_id).data();
180180
if original_span < span {
181181
throw_machine_stop!(TerminationInfo::MultipleSymbolDefinitions {
182182
link_name,

test-cargo-miri/build.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![feature(asm)]
2-
31
use std::env;
42

53
#[cfg(miri)]
@@ -9,7 +7,7 @@ fn not_in_miri() -> i32 {
97
// Inline assembly definitely does not work in Miri.
108
let mut dummy = 42;
119
unsafe {
12-
asm!("/* {} */", in(reg) &mut dummy);
10+
std::arch::asm!("/* {} */", in(reg) &mut dummy);
1311
}
1412
return dummy;
1513
}

tests/run-pass/issue-91636.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
type BuiltIn = for<'a> fn(&str);
2+
3+
struct Function {
4+
inner: BuiltIn,
5+
}
6+
7+
impl Function {
8+
fn new(subr: BuiltIn) -> Self {
9+
Self { inner: subr }
10+
}
11+
}
12+
13+
fn dummy(_: &str) {}
14+
15+
fn main() {
16+
let func1 = Function::new(dummy);
17+
let func2 = Function::new(dummy);
18+
let inner: fn(&'static _) -> _ = func1.inner;
19+
assert!(inner == func2.inner);
20+
}

0 commit comments

Comments
 (0)