@Override public void visitGet(SSAGetInstruction instruction) { if (!includePrimOps && instruction.getDeclaredFieldType().isPrimitiveType()) { return; } FieldReference fr = instruction.getDeclaredField(); IField f = cha.resolveField(fr); if (f == null) { return; } Set<MemoryAccess> s = MapUtil.findOrCreateSet(readMap, f); MemoryAccess fa = new MemoryAccess(instructionIndex, node); s.add(fa); }
@Override public void visitGet(SSAGetInstruction instruction) { if (!includePrimOps && instruction.getDeclaredFieldType().isPrimitiveType()) { return; } FieldReference fr = instruction.getDeclaredField(); IField f = cha.resolveField(fr); if (f == null) { return; } Set<MemoryAccess> s = MapUtil.findOrCreateSet(readMap, f); MemoryAccess fa = new MemoryAccess(instructionIndex, node); s.add(fa); }
TypeReference fieldType = instruction.getDeclaredFieldType(); TypeReference classType = instruction.getDeclaredField() .getDeclaringClass();
@Override public void visitGet(SSAGetInstruction instruction) { TypeReference type = instruction.getDeclaredFieldType(); if (doPrimitives && type.isPrimitiveType()) { PrimitiveType p = language.getPrimitive(type); assert p != null : "no type for " + type; result = new DeclaredTypeOperator(p); } else { IClass klass = cha.lookupClass(type); if (klass == null) { // get from a field of a type that cannot be loaded. // be pessimistic result = new DeclaredTypeOperator(BOTTOM); } else { result = new DeclaredTypeOperator(new ConeType(klass)); } } }
@Override public void visitGet(SSAGetInstruction instruction) { TypeReference type = instruction.getDeclaredFieldType(); if (doPrimitives && type.isPrimitiveType()) { PrimitiveType p = language.getPrimitive(type); assert p != null : "no type for " + type; result = new DeclaredTypeOperator(p); } else { IClass klass = cha.lookupClass(type); if (klass == null) { // get from a field of a type that cannot be loaded. // be pessimistic result = new DeclaredTypeOperator(BOTTOM); } else { result = new DeclaredTypeOperator(new ConeType(klass)); } } }