summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/WebAssembly
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-02-04 23:07:34 +0000
committerSam Clegg <sbc@chromium.org>2019-02-04 23:07:34 +0000
commit313f9f54f5a85790ae09cc48c1df54a4c635a3e3 (patch)
tree310e330d55647af41f5902b5d5e096b6266439b3 /llvm/test/MC/WebAssembly
parent7c907bac6fd51835ed4410845cc25b44cdd08c95 (diff)
downloadbcm5719-llvm-313f9f54f5a85790ae09cc48c1df54a4c635a3e3.tar.gz
bcm5719-llvm-313f9f54f5a85790ae09cc48c1df54a4c635a3e3.zip
[WebAssembly] MC: Mark more function aliases as functions
Aliases of functions are now marked as function symbols even if they are bitcast to some other other non-function type. This is important for WebAssembly where object and function symbols can't alias each other. Fixes PR38866 Differential Revision: https://reviews.llvm.org/D57538 llvm-svn: 353109
Diffstat (limited to 'llvm/test/MC/WebAssembly')
-rw-r--r--llvm/test/MC/WebAssembly/function-alias.ll32
1 files changed, 32 insertions, 0 deletions
diff --git a/llvm/test/MC/WebAssembly/function-alias.ll b/llvm/test/MC/WebAssembly/function-alias.ll
new file mode 100644
index 00000000000..d4ed06f2e4b
--- /dev/null
+++ b/llvm/test/MC/WebAssembly/function-alias.ll
@@ -0,0 +1,32 @@
+; RUN: llc -filetype=obj %s -o - | llvm-readobj -symbols | FileCheck %s
+
+target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
+target triple = "wasm32-unknown-unknown-wasm"
+
+@foo = alias i8, bitcast (i8* ()* @func to i8*)
+@bar = alias i8* (), i8* ()* @func
+
+define i8* @func() {
+ ret i8* @foo;
+}
+
+; CHECK: Symbols [
+; CHECK-NEXT: Symbol {
+; CHECK-NEXT: Name: func
+; CHECK-NEXT: Type: FUNCTION (0x0)
+; CHECK-NEXT: Flags: 0x0
+; CHECK-NEXT: ElementIndex: 0x0
+; CHECK-NEXT: }
+; CHECK-NEXT: Symbol {
+; CHECK-NEXT: Name: foo
+; CHECK-NEXT: Type: FUNCTION (0x0)
+; CHECK-NEXT: Flags: 0x0
+; CHECK-NEXT: ElementIndex: 0x0
+; CHECK-NEXT: }
+; CHECK-NEXT: Symbol {
+; CHECK-NEXT: Name: bar
+; CHECK-NEXT: Type: FUNCTION (0x0)
+; CHECK-NEXT: Flags: 0x0
+; CHECK-NEXT: ElementIndex: 0x0
+; CHECK-NEXT: }
+; CHECK-NEXT: ]
OpenPOWER on IntegriCloud