It does not check for correct types on the OperandStack or in the LocalVariables; nor does it check their sizes are sufficiently big. Thus, to use this Visitor for bytecode verifying, you have to make sure externally that the type constraints of the Java Virtual Machine instructions are satisfied. An InstConstraintVisitor may be used for this. Anyway, this Visitor does not mandate it. For example, when you visitIADD(IADD o), then there are two stack slots popped and one stack slot containing a Type.INT is pushed (where you could also pop only one slot if you know there are two Type.INT on top of the stack). Monitor-specific behavior is not simulated.
Conventions:Type.VOID will never be pushed onto the stack. Type.DOUBLE and Type.LONG that would normally take up two stack slots (like Double_HIGH and Double_LOW) are represented by a simple single Type.DOUBLE or Type.LONG object on the stack here.
If a two-slot type is stored into a local variable, the next variable is given the type Type.UNKNOWN.
visitDSTORE(DSTORE o), InstConstraintVisitor
| Modifier and Type | Field and Description |
|---|---|
| private ConstantPoolGen | cpg
The ConstantPoolGen we're working with. |
| private Frame | frame
The executionframe we're operating on. |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| private LocalVariables | |
| public void | setConstantPoolGen(final ConstantPoolGen cpg)
Sets the ConstantPoolGen needed for symbolic execution. |
| public void | |
| private OperandStack | |
| public void | visitAALOAD(final AALOAD o)
Overrides org. Implements org. |
| public void | visitAASTORE(final AASTORE o)
Overrides org. Implements org. |
| public void | visitACONST_NULL(final ACONST_NULL o)
Overrides org. Implements org. |
| public void | visitALOAD(final ALOAD o)
Overrides org. Implements org. |
| public void | visitANEWARRAY(final ANEWARRAY o)
Overrides org. Implements org. |
| public void | visitARETURN(final ARETURN o)
Overrides org. Implements org. |
| public void | visitARRAYLENGTH(final ARRAYLENGTH o)
Overrides org. Implements org. |
| public void | visitASTORE(final ASTORE o)
Overrides org. Implements org. |
| public void | visitATHROW(final ATHROW o)
Overrides org. Implements org. |
| public void | visitBALOAD(final BALOAD o)
Overrides org. Implements org. |
| public void | visitBASTORE(final BASTORE o)
Overrides org. Implements org. |
| public void | visitBIPUSH(final BIPUSH o)
Overrides org. Implements org. |
| public void | visitCALOAD(final CALOAD o)
Overrides org. Implements org. |
| public void | visitCASTORE(final CASTORE o)
Overrides org. Implements org. |
| public void | visitCHECKCAST(final CHECKCAST o)
Overrides org. Implements org. |
| public void | visitD2F(final D2F o)
Overrides org. Implements org. |
| public void | visitD2I(final D2I o)
Overrides org. Implements org. |
| public void | visitD2L(final D2L o)
Overrides org. Implements org. |
| public void | visitDADD(final DADD o)
Overrides org. Implements org. |
| public void | visitDALOAD(final DALOAD o)
Overrides org. Implements org. |
| public void | visitDASTORE(final DASTORE o)
Overrides org. Implements org. |
| public void | visitDCMPG(final DCMPG o)
Overrides org. Implements org. |
| public void | visitDCMPL(final DCMPL o)
Overrides org. Implements org. |
| public void | visitDCONST(final DCONST o)
Overrides org. Implements org. |
| public void | visitDDIV(final DDIV o)
Overrides org. Implements org. |
| public void | visitDLOAD(final DLOAD o)
Overrides org. Implements org. |
| public void | visitDMUL(final DMUL o)
Overrides org. Implements org. |
| public void | visitDNEG(final DNEG o)
Overrides org. Implements org. |
| public void | visitDREM(final DREM o)
Overrides org. Implements org. |
| public void | visitDRETURN(final DRETURN o)
Overrides org. Implements org. |
| public void | visitDSTORE(final DSTORE o)
Overrides org. Implements org. |
| public void | visitDSUB(final DSUB o)
Overrides org. Implements org. |
| public void | visitDUP(final DUP o)
Overrides org. Implements org. |
| public void | visitDUP2(final DUP2 o)
Overrides org. Implements org. |
| public void | visitDUP2_X1(final DUP2_X1 o)
Overrides org. Implements org. |
| public void | visitDUP2_X2(final DUP2_X2 o)
Overrides org. Implements org. |
| public void | visitDUP_X1(final DUP_X1 o)
Overrides org. Implements org. |
| public void | visitDUP_X2(final DUP_X2 o)
Overrides org. Implements org. |
| public void | visitF2D(final F2D o)
Overrides org. Implements org. |
| public void | visitF2I(final F2I o)
Overrides org. Implements org. |
| public void | visitF2L(final F2L o)
Overrides org. Implements org. |
| public void | visitFADD(final FADD o)
Overrides org. Implements org. |
| public void | visitFALOAD(final FALOAD o)
Overrides org. Implements org. |
| public void | visitFASTORE(final FASTORE o)
Overrides org. Implements org. |
| public void | visitFCMPG(final FCMPG o)
Overrides org. Implements org. |
| public void | visitFCMPL(final FCMPL o)
Overrides org. Implements org. |
| public void | visitFCONST(final FCONST o)
Overrides org. Implements org. |
| public void | visitFDIV(final FDIV o)
Overrides org. Implements org. |
| public void | visitFLOAD(final FLOAD o)
Overrides org. Implements org. |
| public void | visitFMUL(final FMUL o)
Overrides org. Implements org. |
| public void | visitFNEG(final FNEG o)
Overrides org. Implements org. |
| public void | visitFREM(final FREM o)
Overrides org. Implements org. |
| public void | visitFRETURN(final FRETURN o)
Overrides org. Implements org. |
| public void | visitFSTORE(final FSTORE o)
Overrides org. Implements org. |
| public void | visitFSUB(final FSUB o)
Overrides org. Implements org. |
| public void | visitGETFIELD(final GETFIELD o)
Overrides org. Implements org. |
| public void | visitGETSTATIC(final GETSTATIC o)
Overrides org. Implements org. |
| public void | visitGOTO(final GOTO o)
Overrides org. Implements org. |
| public void | visitGOTO_W(final GOTO_W o)
Overrides org. Implements org. |
| public void | visitI2B(final I2B o)
Overrides org. Implements org. |
| public void | visitI2C(final I2C o)
Overrides org. Implements org. |
| public void | visitI2D(final I2D o)
Overrides org. Implements org. |
| public void | visitI2F(final I2F o)
Overrides org. Implements org. |
| public void | visitI2L(final I2L o)
Overrides org. Implements org. |
| public void | visitI2S(final I2S o)
Overrides org. Implements org. |
| public void | visitIADD(final IADD o)
Overrides org. Implements org. |
| public void | visitIALOAD(final IALOAD o)
Overrides org. Implements org. |
| public void | visitIAND(final IAND o)
Overrides org. Implements org. |
| public void | visitIASTORE(final IASTORE o)
Overrides org. Implements org. |
| public void | visitICONST(final ICONST o)
Overrides org. Implements org. |
| public void | visitIDIV(final IDIV o)
Overrides org. Implements org. |
| public void | visitIF_ACMPEQ(final IF_ACMPEQ o)
Overrides org. Implements org. |
| public void | visitIF_ACMPNE(final IF_ACMPNE o)
Overrides org. Implements org. |
| public void | visitIF_ICMPEQ(final IF_ICMPEQ o)
Overrides org. Implements org. |
| public void | visitIF_ICMPGE(final IF_ICMPGE o)
Overrides org. Implements org. |
| public void | visitIF_ICMPGT(final IF_ICMPGT o)
Overrides org. Implements org. |
| public void | visitIF_ICMPLE(final IF_ICMPLE o)
Overrides org. Implements org. |
| public void | visitIF_ICMPLT(final IF_ICMPLT o)
Overrides org. Implements org. |
| public void | visitIF_ICMPNE(final IF_ICMPNE o)
Overrides org. Implements org. |
| public void | visitIFEQ(final IFEQ o)
Overrides org. Implements org. |
| public void | visitIFGE(final IFGE o)
Overrides org. Implements org. |
| public void | visitIFGT(final IFGT o)
Overrides org. Implements org. |
| public void | visitIFLE(final IFLE o)
Overrides org. Implements org. |
| public void | visitIFLT(final IFLT o)
Overrides org. Implements org. |
| public void | visitIFNE(final IFNE o)
Overrides org. Implements org. |
| public void | visitIFNONNULL(final IFNONNULL o)
Overrides org. Implements org. |
| public void | visitIFNULL(final IFNULL o)
Overrides org. Implements org. |
| public void | visitIINC(final IINC o)
Overrides org. Implements org. |
| public void | visitILOAD(final ILOAD o)
Overrides org. Implements org. |
| public void | visitIMUL(final IMUL o)
Overrides org. Implements org. |
| public void | visitINEG(final INEG o)
Overrides org. Implements org. |
| public void | visitINSTANCEOF(final INSTANCEOF o)
Overrides org. Implements org. |
| private void | |
| public void | visitINVOKEDYNAMIC(final INVOKEDYNAMIC o)
Overrides org. Implements org. |
| public void | visitINVOKEINTERFACE(final INVOKEINTERFACE o)
Overrides org. Implements org. |
| public void | visitINVOKESPECIAL(final INVOKESPECIAL o)
Overrides org. Implements org. |
| public void | visitINVOKESTATIC(final INVOKESTATIC o)
Overrides org. Implements org. |
| public void | visitINVOKEVIRTUAL(final INVOKEVIRTUAL o)
Overrides org. Implements org. |
| public void | visitIOR(final IOR o)
Overrides org. Implements org. |
| public void | visitIREM(final IREM o)
Overrides org. Implements org. |
| public void | visitIRETURN(final IRETURN o)
Overrides org. Implements org. |
| public void | visitISHL(final ISHL o)
Overrides org. Implements org. |
| public void | visitISHR(final ISHR o)
Overrides org. Implements org. |
| public void | visitISTORE(final ISTORE o)
Overrides org. Implements org. |
| public void | visitISUB(final ISUB o)
Overrides org. Implements org. |
| public void | visitIUSHR(final IUSHR o)
Overrides org. Implements org. |
| public void | visitIXOR(final IXOR o)
Overrides org. Implements org. |
| public void | visitJSR(final JSR o)
Overrides org. Implements org. |
| public void | visitJSR_W(final JSR_W o)
Overrides org. Implements org. |
| public void | visitL2D(final L2D o)
Overrides org. Implements org. |
| public void | visitL2F(final L2F o)
Overrides org. Implements org. |
| public void | visitL2I(final L2I o)
Overrides org. Implements org. |
| public void | visitLADD(final LADD o)
Overrides org. Implements org. |
| public void | visitLALOAD(final LALOAD o)
Overrides org. Implements org. |
| public void | visitLAND(final LAND o)
Overrides org. Implements org. |
| public void | visitLASTORE(final LASTORE o)
Overrides org. Implements org. |
| public void | visitLCMP(final LCMP o)
Overrides org. Implements org. |
| public void | visitLCONST(final LCONST o)
Overrides org. Implements org. |
| public void | visitLDC(final LDC o)
Overrides org. Implements org. |
| public void | visitLDC2_W(final LDC2_W o)
Overrides org. Implements org. |
| public void | |
| public void | visitLDIV(final LDIV o)
Overrides org. Implements org. |
| public void | visitLLOAD(final LLOAD o)
Overrides org. Implements org. |
| public void | visitLMUL(final LMUL o)
Overrides org. Implements org. |
| public void | visitLNEG(final LNEG o)
Overrides org. Implements org. |
| public void | visitLOOKUPSWITCH(final LOOKUPSWITCH o)
Overrides org. Implements org. |
| public void | visitLOR(final LOR o)
Overrides org. Implements org. |
| public void | visitLREM(final LREM o)
Overrides org. Implements org. |
| public void | visitLRETURN(final LRETURN o)
Overrides org. Implements org. |
| public void | visitLSHL(final LSHL o)
Overrides org. Implements org. |
| public void | visitLSHR(final LSHR o)
Overrides org. Implements org. |
| public void | visitLSTORE(final LSTORE o)
Overrides org. Implements org. |
| public void | visitLSUB(final LSUB o)
Overrides org. Implements org. |
| public void | visitLUSHR(final LUSHR o)
Overrides org. Implements org. |
| public void | visitLXOR(final LXOR o)
Overrides org. Implements org. |
| public void | visitMONITORENTER(final MONITORENTER o)
Overrides org. Implements org. |
| public void | visitMONITOREXIT(final MONITOREXIT o)
Overrides org. Implements org. |
| public void | visitMULTIANEWARRAY(final MULTIANEWARRAY o)
Overrides org. Implements org. |
| public void | visitNEW(final NEW o)
Overrides org. Implements org. |
| public void | visitNEWARRAY(final NEWARRAY o)
Overrides org. Implements org. |
| public void | visitNOP(final NOP o)
Overrides org. Implements org. |
| public void | visitPOP(final POP o)
Overrides org. Implements org. |
| public void | visitPOP2(final POP2 o)
Overrides org. Implements org. |
| public void | visitPUTFIELD(final PUTFIELD o)
Overrides org. Implements org. |
| public void | visitPUTSTATIC(final PUTSTATIC o)
Overrides org. Implements org. |
| public void | visitRET(final RET o)
Overrides org. Implements org. |
| public void | visitRETURN(final RETURN o)
Overrides org. Implements org. |
| public void | visitSALOAD(final SALOAD o)
Overrides org. Implements org. |
| public void | visitSASTORE(final SASTORE o)
Overrides org. Implements org. |
| public void | visitSIPUSH(final SIPUSH o)
Overrides org. Implements org. |
| public void | visitSWAP(final SWAP o)
Overrides org. Implements org. |
| public void | visitTABLESWITCH(final TABLESWITCH o)
Overrides org. Implements org. |