diff options
author | Paul Phillips <paulp@improving.org> | 2010-04-04 02:58:11 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-04-04 02:58:11 +0000 |
commit | 081df6755b92b9041de405d872987b98d28ef646 (patch) | |
tree | 21b14785a9c04b261d76e0036655499dc5895085 /src | |
parent | 86af709d76936e70c4454deceaa1805f751a0d60 (diff) | |
download | scala-081df6755b92b9041de405d872987b98d28ef646.tar.gz scala-081df6755b92b9041de405d872987b98d28ef646.tar.bz2 scala-081df6755b92b9041de405d872987b98d28ef646.zip |
Nipped the infinite loop which is presently lau...
Nipped the infinite loop which is presently launched by an attempt to
run test.continuations.suite with -optimise. No review.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/icode/ICodes.scala | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/ICodes.scala b/src/compiler/scala/tools/nsc/backend/icode/ICodes.scala index 419edd8b83..0810a64f5d 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/ICodes.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/ICodes.scala @@ -54,8 +54,18 @@ abstract class ICodes extends AnyRef else global.abort("Unknown linearizer: " + global.settings.Xlinearizer.value) + /** Have to be careful because dump calls around, possibly + * re-entering methods which initiated the dump (like foreach + * in BasicBlocks) which leads to the icode output olympics. + */ + private var alreadyDumping = false + /** Print all classes and basic blocks. Used for debugging. */ + def dump { + if (alreadyDumping) return + else alreadyDumping = true + val printer = new TextPrinter(new PrintWriter(Console.out, true), new DumpLinearizer) |