New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Backend crasher #7060
Comments
Imported From: https://issues.scala-lang.org/browse/SI-7060?orig=1 |
@VladUreche said (edited on Feb 3, 2013 9:37:06 PM UTC): $ ../scala-trunk/build/quick/bin/scalac -version
Scala compiler version 2.10.1-20130117-000838-b17980666d -- Copyright 2002-2013, LAMP/EPFL
$ ../scala-trunk/build/quick/bin/scalac -Ydead-code src/main/scala/Test.scala -d target/scala-2.10/classes/
$ ../scala-trunk/build/quick/bin/scalac -Yinline src/main/scala/Test.scala -d target/scala-2.10/classes/
$ ../scala-trunk/build/quick/bin/scalac -Ydead-code -Yinline src/main/scala/Test.scala -d target/scala-2.10/classes/
error:
while compiling: src/main/scala/Test.scala
during phase: jvm
library version: version 2.10.1-20130117-000838-b17980666d
compiler version: version 2.10.1-20130117-000838-b17980666d
reconstructed args: -d target/scala-2.10/classes/ -Ydead-code -Yinline
last tree to typer: TypeTree(trait App)
symbol: trait App in package scala (flags: <interface> abstract <trait> <lateinterface>)
symbol definition: abstract trait App extends DelayedInit
tpe: App
symbol owners: trait App -> package scala
context owners: object Test -> package <empty>
== Enclosing template or block ==
...
== Expanded type of tree ==
TypeRef(TypeSymbol(abstract trait App extends DelayedInit))
uncaught exception during compilation: java.lang.ArrayIndexOutOfBoundsException
error: java.lang.ArrayIndexOutOfBoundsException: 0
at scala.tools.asm.Frame.merge(Unknown Source)
at scala.tools.asm.Frame.merge(Unknown Source)
at scala.tools.asm.MethodWriter.visitMaxs(Unknown Source)
at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.genMethod(GenASM.scala:1565)
at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder$$anonfun$genClass$5.apply(GenASM.scala:1398)
at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder$$anonfun$genClass$5.apply(GenASM.scala:1398)
at scala.collection.immutable.List.foreach(List.scala:309)
at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.genClass(GenASM.scala:1398)
at scala.tools.nsc.backend.jvm.GenASM$AsmPhase.run(GenASM.scala:119)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1582)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1556)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1552)
at scala.tools.nsc.Global$Run.compile(Global.scala:1661)
at scala.tools.nsc.Driver.doCompile(Driver.scala:33)
at scala.tools.nsc.Main$.doCompile(Main.scala:79)
at scala.tools.nsc.Driver.process(Driver.scala:54)
at scala.tools.nsc.Driver.main(Driver.scala:67)
at scala.tools.nsc.Main.main(Main.scala)
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at scala.tools.asm.Frame.merge(Unknown Source)
at scala.tools.asm.Frame.merge(Unknown Source)
at scala.tools.asm.MethodWriter.visitMaxs(Unknown Source)
at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.genMethod(GenASM.scala:1565)
at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder$$anonfun$genClass$5.apply(GenASM.scala:1398)
at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder$$anonfun$genClass$5.apply(GenASM.scala:1398)
at scala.collection.immutable.List.foreach(List.scala:309)
at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.genClass(GenASM.scala:1398)
at scala.tools.nsc.backend.jvm.GenASM$AsmPhase.run(GenASM.scala:119)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1582)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1556)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1552)
at scala.tools.nsc.Global$Run.compile(Global.scala:1661)
at scala.tools.nsc.Driver.doCompile(Driver.scala:33)
at scala.tools.nsc.Main$.doCompile(Main.scala:79)
at scala.tools.nsc.Driver.process(Driver.scala:54)
at scala.tools.nsc.Driver.main(Driver.scala:67)
at scala.tools.nsc.Main.main(Main.scala)
|
@VladUreche said: >
> ++ 2.11.0-SNAPSHOT compile
Setting version to 2.11.0-SNAPSHOT
[info] Set current project to default-5d6c1b (in build file:/mnt/data-local/Work/Workspace/dev/backend-bug/)
[info] Compiling 1 Scala source to /mnt/data-local/Work/Workspace/dev/backend-bug/target/scala-2.11.0-SNAPSHOT/classes...
[error]
[error] while compiling: /mnt/data-local/Work/Workspace/dev/backend-bug/src/main/scala/Test.scala
[error] during phase: jvm
[error] library version: version 2.11.0-20130202-121752-e67a039ec2
[error] compiler version: version 2.11.0-20130202-121752-e67a039ec2
[error] reconstructed args: -d /mnt/data-local/Work/Workspace/dev/backend-bug/target/scala-2.11.0-SNAPSHOT/classes -Ydead-code -optimise -classpath /mnt/data-local/Work/Workspace/dev/backend-bug/target/scala-2.11.0-SNAPSHOT/classes -Yinline -Yclosure-elim -Yinline-handlers -bootclasspath /usr/lib/jvm/java-7-oracle/jre/lib/resources.jar:/usr/lib/jvm/java-7-oracle/jre/lib/rt.jar:/usr/lib/jvm/java-7-oracle/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-7-oracle/jre/lib/jsse.jar:/usr/lib/jvm/java-7-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-7-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-7-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-7-oracle/jre/classes:/home/sun/.sbt/boot/scala-2.11.0-SNAPSHOT/lib/scala-library.jar |
@VladUreche said (edited on Feb 3, 2013 9:50:17 PM UTC): $ ../scala-trunk/build/quick/bin/scalac src/main/scala/Test.scala -Yinline -Xprint-icode:dce -Ystop-after:dce -Ydead-code
$ mv Test\$.icode Test\$.icode-dce
$ ../scala-trunk/build/quick/bin/scalac src/main/scala/Test.scala -Yinline -Xprint-icode:dce -Ystop-after:dce
$ mv Test\$.icode Test\$.icode-nodce
$ diff Test\$.icode-dce Test\$.icode-nodce
37c37
< locals: variable tag1, variable array1
---
> locals: variable array1, variable tag1, variable $inlThis1, variable $retVal1
41a42,44
> 10 THIS(Test)
> 10 CONSTANT(null)
> 10 DROP REF(class Null)
45a49
> 10 STORE_LOCAL(variable $inlThis1)
62c66
< 10 DROP BYTE
---
> 10 CALL_PRIMITIVE(Conversion(BYTE,LONG)) The breaker is here: < 10 DROP BYTE
---
> 10 CALL_PRIMITIVE(Conversion(BYTE,LONG)) |
@VladUreche said (edited on Feb 3, 2013 10:02:24 PM UTC): |
@retronym said: |
@VladUreche said: |
@JamesIry: I assigned the bug to you, but feel free to bounce it back if you don't have time. Thanks
Btw, it's a regression from 2.9 (or a bug specific to the asm backend?)
Here goes, compiled via sbt to try different versions of the compiler:
The text was updated successfully, but these errors were encountered: