transcribe non-overwritten reserved slots into "goto next" instructions

This commit is contained in:
Martin Mohr 2015-02-13 15:59:51 +01:00
parent b1c10b642f
commit 80fd657675
1 changed files with 5 additions and 3 deletions

View File

@ -43,6 +43,7 @@
package com.ibm.wala.ipa.summaries;
import com.ibm.wala.ipa.summaries.MethodSummary;
import com.ibm.wala.ssa.SSAGotoInstruction;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.SSAInstructionFactory;
import com.ibm.wala.ssa.SymbolTable;
@ -289,13 +290,14 @@ public class VolatileMethodSummary {
"to the constructor. This behavior is not supported!");
}
this.locked = true;
for (int i = 0; i < this.instructions.size(); ++i) {
final SSAInstruction inst = this.instructions.get(i);
if ((inst == null) || (inst == RESERVED)) {
if (inst == null) {
if (DEBUG) { System.err.printf("No instruction at iindex {}", i); }
this.summary.addStatement(null);
} else if (inst == RESERVED) {
// replace reserved slots by 'goto next' statements
this.summary.addStatement(new SSAGotoInstruction(i, i+1));
} else {
if (DEBUG) { System.err.printf("Adding @{}: ", inst); }
this.summary.addStatement(inst);