summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tools/fuzzing.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/tools/fuzzing.h b/src/tools/fuzzing.h
index 088aa3c96..475747056 100644
--- a/src/tools/fuzzing.h
+++ b/src/tools/fuzzing.h
@@ -729,6 +729,8 @@ private:
void visitBreak(Break* curr) { replaceIfInvalid(curr->name); }
+ void visitBrOnExn(BrOnExn* curr) { replaceIfInvalid(curr->name); }
+
bool replaceIfInvalid(Name target) {
if (!hasBreakTarget(target)) {
// There is no valid parent, replace with something trivially safe.
@@ -747,17 +749,17 @@ private:
Index i = controlFlowStack.size() - 1;
while (1) {
auto* curr = controlFlowStack[i];
- if (Block* block = curr->dynCast<Block>()) {
+ if (auto* block = curr->dynCast<Block>()) {
if (name == block->name) {
return true;
}
- } else if (Loop* loop = curr->dynCast<Loop>()) {
+ } else if (auto* loop = curr->dynCast<Loop>()) {
if (name == loop->name) {
return true;
}
} else {
- // an if, ignorable
- assert(curr->is<If>());
+ // an if or a try, ignorable
+ assert(curr->is<If>() || curr->is<Try>());
}
if (i == 0) {
return false;