diff options
| author | Sam Clegg <sbc@chromium.org> | 2019-02-04 23:07:34 +0000 |
|---|---|---|
| committer | Sam Clegg <sbc@chromium.org> | 2019-02-04 23:07:34 +0000 |
| commit | 313f9f54f5a85790ae09cc48c1df54a4c635a3e3 (patch) | |
| tree | 310e330d55647af41f5902b5d5e096b6266439b3 /llvm/test/MC/WebAssembly | |
| parent | 7c907bac6fd51835ed4410845cc25b44cdd08c95 (diff) | |
| download | bcm5719-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.ll | 32 |
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: ] |

