derefValueNumber = ((SSAGetInstruction) instr).getRef(); } else if (instr instanceof SSAPutInstruction && !((SSAPutInstruction) instr).isStatic()) { derefValueNumber = ((SSAPutInstruction) instr).getRef(); } else if (instr instanceof SSAAbstractInvokeInstruction) {
/** * @see com.ibm.wala.ssa.SSAInstruction#getNumberOfUses() */ @Override public int getNumberOfUses() { return isStatic() ? 1 : 2; }
/** * @see com.ibm.wala.ssa.SSAInstruction#getNumberOfUses() */ @Override public int getNumberOfUses() { return isStatic() ? 1 : 2; }
@Override public void visitPut(SSAPutInstruction instruction) { if (!instruction.isStatic()) { this.varNumNew = instruction.getRef(); } }
@Override public void visitPut(SSAPutInstruction instruction) { if (!instruction.isStatic()) { this.varNumNew = instruction.getRef(); } }
@Override public void visitPut(SSAPutInstruction instruction) { visitPutInternal(instruction.getVal(), instruction.isStatic(), instruction.getDeclaredField()); }
@Override public void visitPut(SSAPutInstruction instruction) { visitPutInternal(instruction.getVal(), instruction.isStatic(), instruction.getDeclaredField()); }
@Override public void visitPut(SSAPutInstruction instruction) { visitPutInternal(instruction.getVal(), instruction.getRef(), instruction.isStatic(), instruction.getDeclaredField()); }
@Override public void visitPut(SSAPutInstruction instruction) { visitPutInternal(instruction.getVal(), instruction.getRef(), instruction.isStatic(), instruction.getDeclaredField()); }
@Override public void visitPut(SSAPutInstruction instruction) { visitPutInternal(instruction.getVal(), instruction.getRef(), instruction.isStatic(), instruction.getDeclaredField()); }
@Override public void visitPut(SSAPutInstruction instruction) { visitPutInternal(instruction.getVal(), instruction.getRef(), instruction.isStatic(), instruction.getDeclaredField()); }
@Override public void visitPut(SSAPutInstruction instruction) { visitPutInternal(instruction.getVal(), instruction.getRef(), instruction.isStatic(), instruction.getDeclaredField()); }
@Override public SSAInstruction copyForSSA(SSAInstructionFactory insts, int[] defs, int[] uses) { if (isStatic()) return insts.PutInstruction(iindex, uses == null ? val : uses[0], getDeclaredField()); else return insts.PutInstruction(iindex, uses == null ? getRef() : uses[0], uses == null ? val : uses[1], getDeclaredField()); }
@Override public SSAInstruction copyForSSA(SSAInstructionFactory insts, int[] defs, int[] uses) { if (isStatic()) return insts.PutInstruction(iindex, uses == null ? val : uses[0], getDeclaredField()); else return insts.PutInstruction(iindex, uses == null ? getRef() : uses[0], uses == null ? val : uses[1], getDeclaredField()); }
@Override public void visitPut(SSAPutInstruction instruction) { if (!instruction.isStatic()) { final int ssaVar = instruction.getRef(); noIdentity = true; transfer1 = NullPointerState.denullifyFunction(ssaVar); transfer2 = NullPointerState.nullifyFunction(ssaVar); } else { noIdentity = false; transfer1 = NullPointerState.identityFunction(); transfer2 = NullPointerState.identityFunction(); } }
@Override public void visitPut(SSAPutInstruction instruction) { if (!instruction.isStatic()) { final int ssaVar = instruction.getRef(); noIdentity = true; transfer1 = NullPointerState.denullifyFunction(ssaVar); transfer2 = NullPointerState.nullifyFunction(ssaVar); } else { noIdentity = false; transfer1 = NullPointerState.identityFunction(); transfer2 = NullPointerState.identityFunction(); } }
@Override public String toString(SymbolTable symbolTable) { if (isStatic()) { return "putstatic " + getDeclaredField() + " = " + getValueString(symbolTable, val); } else { return "putfield " + getValueString(symbolTable, getRef()) + '.' + getDeclaredField() + " = " + getValueString(symbolTable, val); } }
@Override public String toString(SymbolTable symbolTable) { if (isStatic()) { return "putstatic " + getDeclaredField() + " = " + getValueString(symbolTable, val); } else { return "putfield " + getValueString(symbolTable, getRef()) + '.' + getDeclaredField() + " = " + getValueString(symbolTable, val); } }