diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2016-10-18 23:11:54 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-18 23:11:54 +1100 |
commit | 7aeb1bfa4199e18ffd8a6cadcdaebfac2c5c8066 (patch) | |
tree | 6716ec9a7add1cfeb7187dabf425fc644a33256b /src/compiler/scala/tools/nsc/backend/opt/ConstantOptimization.scala | |
parent | b7d43cf9265bb3afb40c2cd7548681a5a2a3f96f (diff) | |
parent | 9b6a65bc890081b48a86e72aa3eb49aaf2d69d09 (diff) | |
download | scala-7aeb1bfa4199e18ffd8a6cadcdaebfac2c5c8066.tar.gz scala-7aeb1bfa4199e18ffd8a6cadcdaebfac2c5c8066.tar.bz2 scala-7aeb1bfa4199e18ffd8a6cadcdaebfac2c5c8066.zip |
Merge pull request #5218 from retronym/ticket/9806
SI-9806 Fix incorrect codegen with optimizer, constants, try/catch
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/opt/ConstantOptimization.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/opt/ConstantOptimization.scala | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/opt/ConstantOptimization.scala b/src/compiler/scala/tools/nsc/backend/opt/ConstantOptimization.scala index a7ce7dfa04..eafaf41932 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/ConstantOptimization.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/ConstantOptimization.scala @@ -539,14 +539,14 @@ abstract class ConstantOptimization extends SubComponent { // number of instructions excluding the last one val normalCount = block.size - 1 - val exceptionState = in.cleanStack + var exceptionState = in.cleanStack var normalExitState = in var idx = 0 while (idx < normalCount) { val inst = block(idx) normalExitState = interpretInst(normalExitState, inst) if (normalExitState.locals ne exceptionState.locals) - exceptionState.copy(locals = exceptionState mergeLocals normalExitState.locals) + exceptionState = exceptionState.copy(locals = exceptionState mergeLocals normalExitState.locals) idx += 1 } |