.addReferencedField(lastFieldSeen));
);
         public void sawOpcode(int seen) {		// System.out.println("PC: " + PC + ", stage: " + stage1);		switch (seen) {		case ALOAD_0:		case ALOAD_1:		case ALOAD_2:		case ALOAD_3:		case ALOAD:			if (DEBUG) System.out.println("   ALOAD at PC " + getPC());			start = getPC();			stage = 1;			break;		case GETSTATIC:			if (DEBUG) System.out.println("   getfield in stage " + stage);			lastFieldSeen = FieldAnnotation.fromReferencedField(this);			start = getPC();			stage = 2;			break;		case GETFIELD:			if (DEBUG) System.out.println("   getfield in stage " + stage);			lastFieldSeen = FieldAnnotation.fromReferencedField(this);			if (stage == 1 || stage == 2 ) {				stage = 2;			} else				stage = 0;			break;		case GOTO:		case IFNE:		case IFEQ:		case IFNULL:		case IFNONNULL:			if (DEBUG) System.out.println("   conditional branch in stage " + stage + " to " + getBranchTarget());			if (stage == 2 && getBranchTarget() == start) {				bugReporter.reportBug(new BugInstance(this, "SP_SPIN_ON_FIELD", NORMAL_PRIORITY)				        .addClassAndMethod(this)				        .addSourceLine(this, start)				        .addReferencedField(lastFieldSeen));				stage = 0;			} else if (getBranchTarget() < getPC())				stage = 0;			break;		default:			stage = 0;			break;		}	}