summaryrefslogtreecommitdiff
path: root/src/compiler/scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2016-10-18 23:11:54 +1100
committerGitHub <noreply@github.com>2016-10-18 23:11:54 +1100
commit7aeb1bfa4199e18ffd8a6cadcdaebfac2c5c8066 (patch)
tree6716ec9a7add1cfeb7187dabf425fc644a33256b /src/compiler/scala
parentb7d43cf9265bb3afb40c2cd7548681a5a2a3f96f (diff)
parent9b6a65bc890081b48a86e72aa3eb49aaf2d69d09 (diff)
downloadscala-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')
-rw-r--r--src/compiler/scala/tools/nsc/backend/opt/ConstantOptimization.scala4
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
}