Mercurial > hg > graal-compiler
changeset 23042:cbe35e56ae82
Fix corner case when short-cutting gotos in the bytecode parser.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 20 Nov 2015 03:08:32 +0100 |
parents | 48da66152e59 |
children | c00fc84509da |
files | graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Fri Nov 20 02:12:52 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Fri Nov 20 03:08:32 2015 +0100 @@ -2911,9 +2911,10 @@ } int startBci = nextBlock.startBci; int targetAtStart = stream.readUByte(startBci); - if (targetAtStart == Bytecodes.GOTO) { + if (targetAtStart == Bytecodes.GOTO && nextBlock.getPredecessorCount() == 1) { // This is an empty block. Skip it. - appendGoto(nextBlock.successors.get(0)); + BciBlock successorBlock = nextBlock.successors.get(0); + appendGoto(successorBlock); assert nextBlock.numNormalSuccessors() == 1; } else { appendGoto(nextBlock);