summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2014-05-19 12:56:09 +0200
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-05-19 12:56:09 +0200
commitc3d61574c908d7fee5d16b300449c2958adad9fb (patch)
tree5d3fdb3fe8aca4e7401c2c650305b2d47fa9ffaf
parent0e87b12bcf68d9f52d2dee92ff19d04019641110 (diff)
downloadscala-c3d61574c908d7fee5d16b300449c2958adad9fb.tar.gz
scala-c3d61574c908d7fee5d16b300449c2958adad9fb.tar.bz2
scala-c3d61574c908d7fee5d16b300449c2958adad9fb.zip
Revert "SI-8601 Don't treat newarray as dead code"
This reverts commit 70b912a87433c9589af33e4f8b33dca39abb66e5.
-rw-r--r--src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala2
-rw-r--r--test/files/run/t8601b.scala3
2 files changed, 1 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala
index 245894a4af..64aed19bf0 100644
--- a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala
+++ b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala
@@ -169,7 +169,7 @@ abstract class DeadCodeElimination extends SubComponent {
case RETURN(_) | JUMP(_) | CJUMP(_, _, _, _) | CZJUMP(_, _, _, _) | STORE_FIELD(_, _) | LOAD_FIELD(_, _) | // Why LOAD_FIELD? It can NPE!
THROW(_) | LOAD_ARRAY_ITEM(_) | STORE_ARRAY_ITEM(_) | SCOPE_ENTER(_) | SCOPE_EXIT(_) | STORE_THIS(_) |
- LOAD_EXCEPTION(_) | SWITCH(_, _) | MONITOR_ENTER() | MONITOR_EXIT() | CHECK_CAST(_) | CREATE_ARRAY(_, _) =>
+ LOAD_EXCEPTION(_) | SWITCH(_, _) | MONITOR_ENTER() | MONITOR_EXIT() | CHECK_CAST(_) =>
moveToWorkList()
case CALL_METHOD(m1, _) if isSideEffecting(m1) =>
diff --git a/test/files/run/t8601b.scala b/test/files/run/t8601b.scala
index 9c37ce33d6..c01caa57d0 100644
--- a/test/files/run/t8601b.scala
+++ b/test/files/run/t8601b.scala
@@ -1,14 +1,11 @@
object Test {
def len(x: Array[String]): Unit = x.length
def load(x: Array[String]): Unit = x(0)
- def newarray(i: Int): Unit = new Array[Int](i)
def check(x: => Any) = try { x; sys.error("failed to throw NPE!") } catch { case _: NullPointerException => }
- def checkNegSize(x: => Any) = try { x; sys.error("failed to throw NegativeArraySizeException!") } catch { case _: NegativeArraySizeException => }
def main(args: Array[String]) {
check(len(null)) // bug: did not NPE
check(load(null))
- checkNegSize(newarray(-1))
}
}