summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2018-07-17 22:40:08 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2018-07-17 22:40:08 +0000
commitbd9d313d5cf263b7248665be52fb68a5e2c2bbf9 (patch)
tree85b945603b475bac9c11bd5d0aa0c8d7e5f1bf7b /llvm/test
parent7027ffa85f2fa23f0eac20d169f09224e4db8262 (diff)
downloadbcm5719-llvm-bd9d313d5cf263b7248665be52fb68a5e2c2bbf9.tar.gz
bcm5719-llvm-bd9d313d5cf263b7248665be52fb68a5e2c2bbf9.zip
CodeGen: Add a target option for emitting .addrsig directives for all address-significant symbols.
Differential Revision: https://reviews.llvm.org/D48143 llvm-svn: 337331
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/X86/addrsig.ll36
1 files changed, 36 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/addrsig.ll b/llvm/test/CodeGen/X86/addrsig.ll
new file mode 100644
index 00000000000..c8759764ad6
--- /dev/null
+++ b/llvm/test/CodeGen/X86/addrsig.ll
@@ -0,0 +1,36 @@
+; RUN: llc < %s -mtriple=x86_64-unknown-linux | FileCheck --check-prefix=NO-ADDRSIG %s
+; RUN: llc < %s -mtriple=x86_64-unknown-linux -addrsig | FileCheck %s
+
+; NO-ADDRSIG-NOT: .addrsig
+
+; CHECK: .addrsig
+
+; CHECK: .addrsig_sym f1
+define void @f1() {
+ unreachable
+}
+
+; CHECK-NOT: .addrsig_sym f2
+define internal void @f2() local_unnamed_addr {
+ unreachable
+}
+
+; CHECK-NOT: .addrsig_sym f3
+declare void @f3() unnamed_addr
+
+; CHECK: .addrsig_sym g1
+@g1 = global i32 0
+; CHECK-NOT: .addrsig_sym g2
+@g2 = internal local_unnamed_addr global i32 0
+; CHECK-NOT: .addrsig_sym g3
+@g3 = external unnamed_addr global i32
+
+; CHECK: .addrsig_sym a1
+@a1 = alias i32, i32* @g1
+; CHECK-NOT: .addrsig_sym a2
+@a2 = internal local_unnamed_addr alias i32, i32* @g2
+
+; CHECK: .addrsig_sym i1
+@i1 = ifunc void(), void()* @f1
+; CHECK-NOT: .addrsig_sym i2
+@i2 = internal local_unnamed_addr ifunc void(), void()* @f2
OpenPOWER on IntegriCloud