summaryrefslogtreecommitdiffstats
path: root/llvm/test/Assembler
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2018-01-12 17:03:43 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2018-01-12 17:03:43 +0000
commit3b9843f0ffbbef83eeecffb6d97cf9b3be3b159f (patch)
tree14df8a4d75e1eb23f82f3936b92c374c99f38fc1 /llvm/test/Assembler
parent84652cc63cce8e0afd445de0d6803d19f59cfbee (diff)
downloadbcm5719-llvm-3b9843f0ffbbef83eeecffb6d97cf9b3be3b159f.tar.gz
bcm5719-llvm-3b9843f0ffbbef83eeecffb6d97cf9b3be3b159f.zip
Allow dso_local on ifunc.
It was never fully disallowed. We were rejecting it in the asm parser, but not in the verifier. Currently TargetMachine::shouldAssumeDSOLocal returns true for hidden ifuncs. I considered changing it and moving the check from the asm parser to the verifier. The reason for deciding to allow it instead is that all linkers handle a direct reference just fine. They use the plt address as the address of the function. In fact doing that means that clang doesn't have the same bug as gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83782. This patch then removes the check from the asm parser and updates the bitcode reader and writer. llvm-svn: 322378
Diffstat (limited to 'llvm/test/Assembler')
-rw-r--r--llvm/test/Assembler/ifunc-dsolocal.ll (renamed from llvm/test/Assembler/ifunc-dsolocal-daig.ll)4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/test/Assembler/ifunc-dsolocal-daig.ll b/llvm/test/Assembler/ifunc-dsolocal.ll
index 86e941d6cac..63242cb3f24 100644
--- a/llvm/test/Assembler/ifunc-dsolocal-daig.ll
+++ b/llvm/test/Assembler/ifunc-dsolocal.ll
@@ -1,7 +1,7 @@
-; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+; RUN: llvm-as < %s | llvm-dis | FileCheck %s
@foo = dso_local ifunc i32 (i32), i64 ()* @foo_ifunc
-; CHECK: error: dso_local is invalid on ifunc
+; CHECK: @foo = dso_local ifunc i32 (i32), i64 ()* @foo_ifunc
define internal i64 @foo_ifunc() {
entry:
OpenPOWER on IntegriCloud