summaryrefslogtreecommitdiff
path: root/src/passes/I64ToI32Lowering.cpp
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-12-05 13:09:21 -0600
committerGitHub <noreply@github.com>2019-12-05 13:09:21 -0600
commita28343a33ed28b4d5c83c37e350aceaf09b5246f (patch)
tree084a487cdf79e8025246d2a85d5578c113c9ad51 /src/passes/I64ToI32Lowering.cpp
parentcbf121df96cfce5038f52ed04f9780e19ed3b762 (diff)
downloadbinaryen-a28343a33ed28b4d5c83c37e350aceaf09b5246f.tar.gz
binaryen-a28343a33ed28b4d5c83c37e350aceaf09b5246f.tar.bz2
binaryen-a28343a33ed28b4d5c83c37e350aceaf09b5246f.zip
Add string parameter to WASM_UNREACHABLE (#2499)
This works more like llvm's unreachable handler in that is preserves information even in release builds.
Diffstat (limited to 'src/passes/I64ToI32Lowering.cpp')
-rw-r--r--src/passes/I64ToI32Lowering.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/passes/I64ToI32Lowering.cpp b/src/passes/I64ToI32Lowering.cpp
index b51858474..e2f744957 100644
--- a/src/passes/I64ToI32Lowering.cpp
+++ b/src/passes/I64ToI32Lowering.cpp
@@ -130,7 +130,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> {
} else if (auto* get = curr->init->dynCast<GlobalGet>()) {
high->init = builder->makeGlobalGet(makeHighName(get->name), i32);
} else {
- WASM_UNREACHABLE();
+ WASM_UNREACHABLE("unexpected expression type");
}
curr->init->type = i32;
}
@@ -752,8 +752,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> {
lower(result, ClzInt32, std::move(highBits), std::move(lowBits));
break;
case CtzInt64:
- std::cerr << "i64.ctz should be removed already" << std::endl;
- WASM_UNREACHABLE();
+ WASM_UNREACHABLE("i64.ctz should be removed already");
break;
default:
abort();
@@ -829,8 +828,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> {
lowerConvertIntToFloat(curr);
break;
case PopcntInt64:
- std::cerr << "i64.popcnt should already be removed" << std::endl;
- WASM_UNREACHABLE();
+ WASM_UNREACHABLE("i64.popcnt should already be removed");
default:
std::cerr << "Unhandled unary operator: " << curr->op << std::endl;
abort();
@@ -1328,9 +1326,7 @@ struct I64ToI32Lowering : public WalkerPass<PostWalker<I64ToI32Lowering>> {
case RemUInt64:
case RotLInt64:
case RotRInt64:
- std::cerr << "should have been removed by now " << curr->op
- << std::endl;
- WASM_UNREACHABLE();
+ WASM_UNREACHABLE("should have been removed by now");
case AndInt64:
case OrInt64: