From a7d7f0bbe962811d2e5207762aa92c2059c33d1a Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 14 Apr 2020 00:21:19 +0200 Subject: Add tests for `#[ffi_const]` and `#[ffi_pure]` function attributes Based on the work of gnzlbg . --- src/test/codegen/ffi-const.rs | 12 ++++++++++++ src/test/codegen/ffi-pure.rs | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 src/test/codegen/ffi-const.rs create mode 100644 src/test/codegen/ffi-pure.rs (limited to 'src/test/codegen') diff --git a/src/test/codegen/ffi-const.rs b/src/test/codegen/ffi-const.rs new file mode 100644 index 00000000000..440d022a12c --- /dev/null +++ b/src/test/codegen/ffi-const.rs @@ -0,0 +1,12 @@ +// compile-flags: -C no-prepopulate-passes +#![crate_type = "lib"] +#![feature(ffi_const)] + +pub fn bar() { unsafe { foo() } } + +extern { + // CHECK-LABEL: declare void @foo() + // CHECK-SAME: [[ATTRS:#[0-9]+]] + // CHECK-DAG: attributes [[ATTRS]] = { {{.*}}readnone{{.*}} } + #[ffi_const] pub fn foo(); +} diff --git a/src/test/codegen/ffi-pure.rs b/src/test/codegen/ffi-pure.rs new file mode 100644 index 00000000000..f0ebc1caa09 --- /dev/null +++ b/src/test/codegen/ffi-pure.rs @@ -0,0 +1,12 @@ +// compile-flags: -C no-prepopulate-passes +#![crate_type = "lib"] +#![feature(ffi_pure)] + +pub fn bar() { unsafe { foo() } } + +extern { + // CHECK-LABEL: declare void @foo() + // CHECK-SAME: [[ATTRS:#[0-9]+]] + // CHECK-DAG: attributes [[ATTRS]] = { {{.*}}readonly{{.*}} } + #[ffi_pure] pub fn foo(); +} -- cgit 1.4.1-3-g733a5