Buggy code:
public final class CheckFlowLessWithAlias { public static class CheckFlowConfig { public static final String DEFAULT_TMP_OUT_DIR = ".//out//" ; public static final String DEFAULT_LIB_DIR = "..//jSDG//lib//" ; public final String bin ; public final String [ ] src ; public final String tmpDir ; public final String libDir ; public final PrintStream out ; public final FlowCheckResultConsumer results ; public final IProgressMonitor progress ; public boolean printStatistics = true ; public AnalysisScope scope = null ; public CheckFlowConfig ( final String bin , final String [ ] src ) { } public CheckFlowConfig ( final String bin , final String [ ] src , final PrintStream out ) { } public CheckFlowConfig ( final String bin , final String [ ] src , final String tmpDir , final String libDir , final PrintStream out , final FlowCheckResultConsumer results , IProgressMonitor progress ) { } public String toString ( ) { } } @ SuppressWarnings ( "resource" ) public static PrintStream createPrintStream ( final String file ) { } public static void main ( String [ ] argv ) { } private final CheckFlowLessWithAlias . CheckFlowConfig cfc ; public CheckFlowLessWithAlias ( final CheckFlowLessWithAlias . CheckFlowConfig cfc ) { } private static final String WITH_EXC_SUFFIX = "cf_with_exc" ; private static final String NO_EXC_SUFFIX = "cf_no_exc" ; private final boolean printStatistics ; private long timePreprareSDG = 0 ; private long numPreparedSDGs = 0 ; private long timeAdjustSDG = 0 ; private long numAdjustSDGs = 0 ; private long startPrepareTime ; private long endPrepareTime ; private long startAdjustTime ; private long endAdjustTime ; public void runCheckFlowLess ( ) throws ClassHierarchyException , CancelException , UnsoundGraphException , IOException , IllegalArgumentException { } private void checkFlowLessForMethod ( final IMethod im , final MethodResult m , final MoJo mojo , final Config cfg , final IProgressMonitor progress ) throws ClassHierarchyException , CancelException , UnsoundGraphException , IOException , IllegalArgumentException { if ( printStatistics ) { startPrepareTime = System . currentTimeMillis ( ) ; } cfc . out . println ( ( ( "Checking<seq2seq4repair_space>'" + m ) + "'" ) ) ; final Aliasing minMax = mojo . computeMinMaxAliasing ( im ) ; final PointsTo ptsMax = MoJo . computePointsTo ( minMax . upperBound ) ; final AnalysisOptions opt = mojo . createAnalysisOptionsWithPTS ( ptsMax , im ) ; final CallGraphResult cgr ; switch ( cfg . pts ) { case TYPE_BASED : <START_BUG> cgr = mojo . computeContextSensitiveCallGraph ( opt ) ; <END_BUG> break ; case INSTANCE_BASED : cgr = mojo . computeContextSensitiveCallGraph ( opt ) ; break ; case OBJECT_SENSITIVE : cgr = mojo . computeObjectSensitiveCallGraph ( opt , cfg . objSensFilter ) ; break ; default : throw new IllegalStateException ( ) ; } final SDG sdg = create ( cfc . out , opt . getAnalysisScope ( ) , mojo , cgr , im , cfg . outputDir , cfg ) ; final AliasSDG alias = AliasSDG . create ( sdg ) ; alias . precomputeSummary ( progress ) ; boolean resetNeeded = false ; if ( printStatistics ) { endPrepareTime = System . currentTimeMillis ( ) ; ( numPreparedSDGs ) ++ ; timePreprareSDG += ( endPrepareTime ) - ( startPrepareTime ) ; } for ( final IFCStmt stmt : m . getInfo ( ) . getIFCStmts ( ) ) { cfc . out . print ( ( ( "IFC<seq2seq4repair_space>check<seq2seq4repair_space>'" + stmt ) + "':<seq2seq4repair_space>" ) ) ; if ( resetNeeded ) { alias . reset ( ) ; resetNeeded = false ; } final FlowStmtResult stmtResult = m . findOrCreateStmtResult ( stmt ) ; try { final List < BasicIFCStmt > simplified = FlowLessSimplifier . simplify ( stmt ) ; final Matcher match = FlowLess2SDGMatcher . findMatchingNodes ( sdg , sdg . getRoot ( ) , stmt ) ; if ( simplified . isEmpty ( ) ) { cfc . out . println ( "ERROR(empty<seq2seq4repair_space>simplified<seq2seq4repair_space>statements)" ) ; stmtResult . addPart ( new FlowStmtResultPart ( null , "ERROR(empty<seq2seq4repair_space>simplified<seq2seq4repair_space>statements)" , false , false , cfg . exceptions , sdg . getFileName ( ) ) ) ; } else { checkBasicIFCStmts ( alias , match , simplified , m . getInfo ( ) , stmtResult , cfg . exceptions , progress ) ; } } catch ( FlowAstException e ) { cfc . out . println ( ( ( "ERROR(" + ( e . getMessage ( ) ) ) + ")" ) ) ; stmtResult . addPart ( new FlowStmtResultPart ( null , ( ( "ERROR(" + ( e . getMessage ( ) ) ) + ")" ) , false , false , cfg . exceptions , sdg . getFileName ( ) ) ) ; } resetNeeded = true ; } } public static class EntityNotFoundException extends FlowAstException { public EntityNotFoundException ( String message ) { } private static final long serialVersionUID = - 1553942031552394940L ; } private void checkBasicIFCStmts ( final AliasSDG alias , final Matcher match , final List < BasicIFCStmt > stmts , final MethodInfo mInfo , final FlowStmtResult stmtResult , final ExceptionAnalysis excCfg , final IProgressMonitor progress ) throws CancelException , CheckFlowLessWithAlias . EntityNotFoundException { } public static ProgramSourcePositions sliceIFCStmt ( final IFCStmt stmt , final FlowStmtResultPart fp , final String tmpDir , final IProgressMonitor progress ) throws CancelException , FlowAstException , IOException { } private static boolean hasIllegalFlow ( final ExplicitFlowStmt fl , final Matcher match , final SummarySlicerBackward ssb , final AliasSDG sdg ) { } private enum ParamKind { IN , OUT ; } private static void adjustSetWithPotentialAliases ( final AliasSDG alias , final CheckFlowLessWithAlias . ParamKind kind , final Set < SDGNode > toAdjust ) { } private static void addSubFieldsToSet ( final SDG sdg , final CheckFlowLessWithAlias . ParamKind kind , final SDGNode n , final Set < SDGNode > set ) { } private static boolean isInput ( final SDGNode n ) { } private static SDGNode findParamRoot ( final SDG sdg , final SDGNode n ) { } private static boolean isRootParam ( final SDGNode n ) { }

Fix:
cgr = mojo . computeContextInsensitiveCallGraph ( opt ) ;