about summary refs log tree commit diff
path: root/src/test/codegen
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@posteo>2018-08-02 18:10:26 +0200
committerMichael Woerister <michaelwoerister@posteo>2018-08-07 14:48:20 +0200
commitb27a161939620626ca5fdcb9f4dd486a6ed1e827 (patch)
tree97f674eed7b3467f1de86dfefc8838d9601d336d /src/test/codegen
parentf2969ed6c3c067659b5a160de08e9a57450b1047 (diff)
downloadrust-b27a161939620626ca5fdcb9f4dd486a6ed1e827.tar.gz
rust-b27a161939620626ca5fdcb9f4dd486a6ed1e827.zip
Annotate functions in LLVM with target-cpu, same as Clang does.
Diffstat (limited to 'src/test/codegen')
-rw-r--r--src/test/codegen/target-cpu-on-functions.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test/codegen/target-cpu-on-functions.rs b/src/test/codegen/target-cpu-on-functions.rs
new file mode 100644
index 00000000000..c2765a46caa
--- /dev/null
+++ b/src/test/codegen/target-cpu-on-functions.rs
@@ -0,0 +1,28 @@
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// This test makes sure that functions get annotated with the proper
+// "target-cpu" attribute in LLVM.
+
+// only-x86_64
+// compile-flags: -C no-prepopulate-passes -C panic=abort
+
+#![crate_type = "staticlib"]
+
+// CHECK-LABEL: define {{.*}} @exported() {{.*}} #0
+#[no_mangle]
+pub extern fn exported() {
+    not_exported();
+}
+
+// CHECK-LABEL: define {{.*}} @_ZN23target_cpu_on_functions12not_exported{{.*}}() {{.*}} #0
+fn not_exported() {}
+
+// CHECK: attributes #0 = {{.*}} "target-cpu"="x86-64"