1 19 20 package edu.umd.cs.findbugs.detect; 21 22 23 import edu.umd.cs.findbugs.*; 24 25 public class FindFloatMath extends BytecodeScanningDetector implements StatelessDetector { 26 private BugReporter bugReporter; 27 28 public FindFloatMath(BugReporter bugReporter) { 29 this.bugReporter = bugReporter; 30 } 31 32 33 34 @Override 35 public void sawOpcode(int seen) { 36 switch (seen) { 37 case FMUL: 38 case FDIV: 39 if (getFullyQualifiedMethodName().indexOf("float") == -1 40 && getFullyQualifiedMethodName().indexOf("Float") == -1 41 && getFullyQualifiedMethodName().indexOf("FLOAT") == -1) 42 bugReporter.reportBug(new BugInstance(this, "FL_MATH_USING_FLOAT_PRECISION", 43 LOW_PRIORITY) 44 .addClassAndMethod(this) 45 .addSourceLine(this)); 46 break; 47 case FCMPG: 48 case FCMPL: 49 break; 50 case FADD: 51 case FSUB: 52 case FREM: 53 if (getFullyQualifiedMethodName().indexOf("float") == -1 54 && getFullyQualifiedMethodName().indexOf("Float") == -1 55 && getFullyQualifiedMethodName().indexOf("FLOAT") == -1) 56 57 bugReporter.reportBug(new BugInstance(this, "FL_MATH_USING_FLOAT_PRECISION", 58 NORMAL_PRIORITY) 59 .addClassAndMethod(this) 60 .addSourceLine(this)); 61 break; 62 default: 63 break; 64 } 65 } 66 } 67 | Popular Tags |