xref: /llvm-project-15.0.7/llvm/test/MC/WebAssembly/annotations.s (revision 0d8dfbb4)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llvm-mc -triple=wasm32-unknown-unknown -mattr=+exception-handling < %s | FileCheck %s
2
3# Tests if block/loop/try/catch/end/branch/rethrow instructions are correctly
4# printed with their annotations.
5
6  .text
7  .section .text.test_annotation,"",@
8  .type    test_annotation,@function
9test_annotation:
10  .functype   test_annotation () -> ()
11  .eventtype  __cpp_exception i32
12  try
13  br        0
14  catch     __cpp_exception
15  block
16  br_if     0
17  loop
18  br_if     1
19  end_loop
20  end_block
21  try
22  rethrow   0
23  catch     __cpp_exception
24  block
25  try
26  br        0
27  catch_all
28  end_try
29  end_block
30  rethrow   0
31  end_try
32  end_try
33  end_function
34
35
36# CHECK:      test_annotation:
37# CHECK:        try
38# CHECK-NEXT:   br        0               # 0: down to label0
39# CHECK-NEXT:   catch     __cpp_exception # catch0:
40# CHECK-NEXT:   block
41# CHECK-NEXT:   br_if     0               # 0: down to label1
42# CHECK-NEXT:   loop                      # label2:
43# CHECK-NEXT:   br_if     1               # 1: down to label1
44# CHECK-NEXT:   end_loop
45# CHECK-NEXT:   end_block                 # label1:
46# CHECK-NEXT:   try
47# CHECK-NEXT:   rethrow   0               # down to catch3
48# CHECK-NEXT:   catch     __cpp_exception # catch3:
49# CHECK-NEXT:   block
50# CHECK-NEXT:   try
51# CHECK-NEXT:   br        0               # 0: down to label5
52# CHECK-NEXT:   catch_all                 # catch5:
53# CHECK-NEXT:   end_try                   # label5:
54# CHECK-NEXT:   end_block                 # label4:
55# CHECK-NEXT:   rethrow   0               # to caller
56# CHECK-NEXT:   end_try                   # label3:
57# CHECK-NEXT:   end_try                   # label0:
58# CHECK-NEXT:   end_function
59
60

served by {OpenGrok

Last Index Update: Fri May 15 20:09:11 GMT 2026