summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp6
-rw-r--r--llvm/test/CodeGen/WebAssembly/block-mismatch.mir18
-rw-r--r--llvm/test/MC/WebAssembly/block-mismatch.s13
3 files changed, 15 insertions, 22 deletions
diff --git a/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp b/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
index e26cf1d8cf4..33b224adc6e 100644
--- a/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
+++ b/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
@@ -85,14 +85,12 @@ void WebAssemblyInstPrinter::printInst(const MCInst *MI, raw_ostream &OS,
break;
case WebAssembly::END_LOOP:
case WebAssembly::END_LOOP_S:
- if (ControlFlowStack.empty())
- report_fatal_error("End marker mismatch!");
+ assert(!ControlFlowStack.empty() && "End marker mismatch!");
ControlFlowStack.pop_back();
break;
case WebAssembly::END_BLOCK:
case WebAssembly::END_BLOCK_S:
- if (ControlFlowStack.empty())
- report_fatal_error("END marker mismatch!");
+ assert(!ControlFlowStack.empty() && "End marker mismatch!");
printAnnotation(
OS, "label" + utostr(ControlFlowStack.pop_back_val().first) + ':');
break;
diff --git a/llvm/test/CodeGen/WebAssembly/block-mismatch.mir b/llvm/test/CodeGen/WebAssembly/block-mismatch.mir
deleted file mode 100644
index 0da58e9ddb8..00000000000
--- a/llvm/test/CodeGen/WebAssembly/block-mismatch.mir
+++ /dev/null
@@ -1,18 +0,0 @@
-# RUN: not llc -mtriple=wasm32-unknown-unknown -start-after xray-instrumentation %s -o /dev/null 2>&1 | FileCheck %s
-
-# This tests if there are block/loop marker mismatches, the program crashes.
-
----
-name: block_mismatch
-liveins:
- - { reg: '$arguments', reg: '$value_stack' }
-tracksRegLiveness: true
-body: |
- bb.0:
- liveins: $arguments, $value_stack
- BLOCK 64, implicit-def $value_stack, implicit $value_stack
- END_BLOCK implicit-def $value_stack, implicit $value_stack
- ; CHECK: LLVM ERROR: END marker mismatch!
- END_BLOCK implicit-def $value_stack, implicit $value_stack
- RETURN_VOID implicit-def dead $arguments
-...
diff --git a/llvm/test/MC/WebAssembly/block-mismatch.s b/llvm/test/MC/WebAssembly/block-mismatch.s
new file mode 100644
index 00000000000..586407a054a
--- /dev/null
+++ b/llvm/test/MC/WebAssembly/block-mismatch.s
@@ -0,0 +1,13 @@
+# RUN: not llvm-mc -triple=wasm32-unknown-unknown %s -o - 2>&1 | FileCheck %s
+
+# This tests if there are block/loop marker mismatches, the program crashes.
+ .text
+ .type test0,@function
+test0:
+ block
+ end_block
+ # CHECK: End marker mismatch!
+ end_block
+ end_function
+.Lfunc_end1:
+ .size test1, .Lfunc_end1-test1
OpenPOWER on IntegriCloud