diff options
Diffstat (limited to 'src/ir/effects.h')
-rw-r--r-- | src/ir/effects.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ir/effects.h b/src/ir/effects.h index 1156cd823..3ff320a88 100644 --- a/src/ir/effects.h +++ b/src/ir/effects.h @@ -973,6 +973,19 @@ private: // traps when ref is null. parent.implicitTrap = true; } + + void visitResume(Resume* curr) { + // This acts as a kitchen sink effect. + parent.calls = true; + + // resume instructions accept nullable continuation references and trap + // on null. + parent.implicitTrap = true; + + if (parent.features.hasExceptionHandling() && parent.tryDepth == 0) { + parent.throws_ = true; + } + } }; public: |