[llvm] dbc5900 - [WebAssembly] Fix .functype directives in tests (#108748)

via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 16 15:14:38 PDT 2024


Author: Heejin Ahn
Date: 2024-09-16T15:14:36-07:00
New Revision: dbc590073d2cc2a0bd3260b9a3156a966935c6a1

URL: https://github.com/llvm/llvm-project/commit/dbc590073d2cc2a0bd3260b9a3156a966935c6a1
DIFF: https://github.com/llvm/llvm-project/commit/dbc590073d2cc2a0bd3260b9a3156a966935c6a1.diff

LOG: [WebAssembly] Fix .functype directives in tests (#108748)

For defined functions, it appears `.functype` directive should be after
the function label. Otherwise binary generation does not seem to work
correctly. Also this fixes a case that the `.functype` directive's name
is incorrect.

Added: 
    

Modified: 
    llvm/test/MC/WebAssembly/eh-assembly-legacy.s
    llvm/test/MC/WebAssembly/func-end-errors.s
    llvm/test/MC/WebAssembly/funcref-from-table.s
    llvm/test/MC/WebAssembly/type-checker-br.s

Removed: 
    


################################################################################
diff  --git a/llvm/test/MC/WebAssembly/eh-assembly-legacy.s b/llvm/test/MC/WebAssembly/eh-assembly-legacy.s
index cd33d198f8d9f5..deba6cc683f035 100644
--- a/llvm/test/MC/WebAssembly/eh-assembly-legacy.s
+++ b/llvm/test/MC/WebAssembly/eh-assembly-legacy.s
@@ -4,10 +4,11 @@
 
   .tagtype  __cpp_exception i32
   .tagtype  __c_longjmp i32
-  .functype  eh_legacy_test () -> ()
   .functype  foo () -> ()
 
 eh_legacy_test:
+  .functype  eh_legacy_test () -> ()
+
   # try-catch with catch, catch_all, throw, and rethrow
   try
     i32.const 3
@@ -55,7 +56,7 @@ eh_legacy_test:
   end_function
 
 # CHECK-LABEL: eh_legacy_test:
-# CHECK-NEXT:    try
+# CHECK:         try
 # CHECK-NEXT:    i32.const       3
 # CHECK-NEXT:    throw           __cpp_exception
 # CHECK-NEXT:    catch           __cpp_exception

diff  --git a/llvm/test/MC/WebAssembly/func-end-errors.s b/llvm/test/MC/WebAssembly/func-end-errors.s
index dda91654c83c93..42d581fbccaa43 100644
--- a/llvm/test/MC/WebAssembly/func-end-errors.s
+++ b/llvm/test/MC/WebAssembly/func-end-errors.s
@@ -4,14 +4,14 @@
 # assembly. This causes the parser to properly wrap up function info when there
 # is no other instructions present.
 
-.functype test0 () -> ()
 test0:
+  .functype test0 () -> ()
 
-.functype test1 () -> ()
-# CHECK: [[@LINE+1]]:1: error: Unmatched block construct(s) at function end: function
 test1:
+# CHECK: [[@LINE+1]]:{{.*}}: error: Unmatched block construct(s) at function end: function
+  .functype test1 () -> ()
   end_function
 
-.functype test2 () -> ()
 test2:
-# CHECK: [[@LINE+1]]:1: error: Unmatched block construct(s) at function end: function
+  .functype test2 () -> ()
+# CHECK: [[@LINE+1]]:{{.*}}: error: Unmatched block construct(s) at function end: function

diff  --git a/llvm/test/MC/WebAssembly/funcref-from-table.s b/llvm/test/MC/WebAssembly/funcref-from-table.s
index 62c817c8b76bca..3b6e0102698c3a 100644
--- a/llvm/test/MC/WebAssembly/funcref-from-table.s
+++ b/llvm/test/MC/WebAssembly/funcref-from-table.s
@@ -6,7 +6,7 @@
 .globl obtain_funcref_from_table_index
 
 obtain_funcref_from_table_index:
-  .functype obtain_funcref_from_table_index(i32) -> (funcref)
+  .functype obtain_funcref_from_table_index (i32) -> (funcref)
   local.get 0
   table.get __indirect_function_table
   end_function

diff  --git a/llvm/test/MC/WebAssembly/type-checker-br.s b/llvm/test/MC/WebAssembly/type-checker-br.s
index df3f88f9685e1a..859e9c52547336 100644
--- a/llvm/test/MC/WebAssembly/type-checker-br.s
+++ b/llvm/test/MC/WebAssembly/type-checker-br.s
@@ -16,7 +16,7 @@ br_block:
   end_function
 
 br_func:
-  .functype br_block () -> ()
+  .functype br_func () -> ()
   block i32
     br 1
     i32.const 1


        


More information about the llvm-commits mailing list