From 277f898a4d155cbf79b017f163f7f6671c5acf73 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Thu, 14 Jun 2018 18:48:19 +0000 Subject: [WebAssembly] Ignore explicit section names for functions WebAssembly doesn't support more than one function per section and we rely on function sections being unique. This change ignores the section provided by the function to avoid two functions being in the same section. Without this change the object writer produces the following error for this test: LLVM ERROR: section already has a defining function: baz Differential Revision: https://reviews.llvm.org/D48178 llvm-svn: 334752 --- llvm/test/MC/WebAssembly/function-sections.ll | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 llvm/test/MC/WebAssembly/function-sections.ll (limited to 'llvm/test') diff --git a/llvm/test/MC/WebAssembly/function-sections.ll b/llvm/test/MC/WebAssembly/function-sections.ll new file mode 100644 index 00000000000..8f1e29adccf --- /dev/null +++ b/llvm/test/MC/WebAssembly/function-sections.ll @@ -0,0 +1,28 @@ +; RUN: llc -filetype=obj %s -o - | obj2yaml | FileCheck %s + +target triple = "wasm32-unknown-unknown" + +define hidden i32 @foo() section "baz" { +entry: + ret i32 2 +} + +define hidden i32 @bar() section "baz" { +entry: + ret i32 1 +} + +; CHECK: - Type: CUSTOM +; CHECK-NEXT: Name: linking +; CHECK-NEXT: Version: 1 +; CHECK-NEXT: SymbolTable: +; CHECK-NEXT: - Index: 0 +; CHECK-NEXT: Kind: FUNCTION +; CHECK-NEXT: Name: foo +; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ] +; CHECK-NEXT: Function: 0 +; CHECK-NEXT: - Index: 1 +; CHECK-NEXT: Kind: FUNCTION +; CHECK-NEXT: Name: bar +; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ] +; CHECK-NEXT: Function: 1 -- cgit v1.2.3