diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2014-02-22 12:21:11 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2014-02-22 12:21:11 +0100 |
commit | 63d4dfaf7cf25f2cf5c00c97986d3d060733268f (patch) | |
tree | 17c4b8a833e6945a13cb1bf158319d5c7cd2d6a2 /src/compiler | |
parent | 00624a39ed84c3fd245dd9df7454d4cec4399e13 (diff) | |
parent | 64ed64ed5c2f64ee83a7963273bedf490926050e (diff) | |
download | scala-63d4dfaf7cf25f2cf5c00c97986d3d060733268f.tar.gz scala-63d4dfaf7cf25f2cf5c00c97986d3d060733268f.tar.bz2 scala-63d4dfaf7cf25f2cf5c00c97986d3d060733268f.zip |
Merge pull request #3567 from retronym/ticket/8315
SI-8315 Fix crash in dead code elimination
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/Global.scala | 4 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala index 03b76ed99e..6b14461cac 100644 --- a/src/compiler/scala/tools/nsc/Global.scala +++ b/src/compiler/scala/tools/nsc/Global.scala @@ -1798,10 +1798,8 @@ class Global(var currentSettings: Settings, var reporter: Reporter) private def writeICode() { val printer = new icodes.TextPrinter(null, icodes.linearizer) icodes.classes.values.foreach((cls) => { - val suffix = if (cls.symbol.hasModuleFlag) "$.icode" else ".icode" + val suffix = s"${if (cls.symbol.hasModuleFlag) "$" else ""}_${phase}.icode" val file = getFile(cls.symbol, suffix) -// if (file.exists()) -// file = new File(file.getParentFile(), file.getName() + "1") try { val stream = new FileOutputStream(file) printer.setWriter(new PrintWriter(stream, true)) diff --git a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala index 0f317422ac..b39fee65bb 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala @@ -95,8 +95,10 @@ abstract class DeadCodeElimination extends SubComponent { localStores.clear() clobbers.clear() m.code.blocks.clear() + m.code.touched = true accessedLocals = m.params.reverse m.code.blocks ++= linearizer.linearize(m) + m.code.touched = true collectRDef(m) mark() sweep(m) |