diff options
Diffstat (limited to 'tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs')
| -rw-r--r-- | tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs b/tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs new file mode 100644 index 00000000000..91edbc10dc0 --- /dev/null +++ b/tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs @@ -0,0 +1,20 @@ +// edition:2018 +// revisions: no_drop_tracking drop_tracking +// [drop_tracking] check-pass +// [drop_tracking] compile-flags: -Zdrop-tracking=yes +// [no_drop_tracking] compile-flags: -Zdrop-tracking=no + +struct Foo(*const u8); + +unsafe impl Send for Foo {} + +async fn bar(_: Foo) {} + +fn assert_send<T: Send>(_: T) {} + +fn main() { + assert_send(async { + //[no_drop_tracking]~^ ERROR future cannot be sent between threads safely + bar(Foo(std::ptr::null())).await; + }) +} |
