accrue.analysis.ctldep

## Class CtlDepAnalysisUtil

- java.lang.Object
- - accrue.analysis.interprocanalysis.AnalysisUtil<CDAbsVal>
  - - accrue.analysis.ctldep.CtlDepAnalysisUtil

-     public class CtlDepAnalysisUtil
      extends AnalysisUtil<CDAbsVal>

- - ### Field Summary

    - ### Fields inherited from class accrue.analysis.interprocanalysis.AnalysisUtil

      `extInfo, instanceInitializersChecked, workQueue`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CtlDepAnalysisUtil(WorkQueue<CDAbsVal> workQueue, AnalysisUnit currentAnalysisUnit, AccrueExtensionInfo extInfo)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ExitMap<CDAbsVal>` | `analyze(polyglot.ast.CodeNode n, CDAbsVal before)` Analyze the given code with the given current analysis results
    `ExitMap<CDAbsVal>` | `analyzeInitializers(CDAbsVal input)` Analyze the initializers for the current analysis unit given the current analysis results
    `ExitMap<CDAbsVal>` | `call(polyglot.ast.Call n)`
    `ExitMap<CDAbsVal>` | `call(polyglot.ast.ConstructorCall n)`
    `ExitMap<CDAbsVal>` | `call(polyglot.ast.New n)`
    `protected ExitMap<CDAbsVal>` | `callNonVirtual(polyglot.types.ProcedureInstance pi, AnalysisContext calleeContext, polyglot.ast.Node n)` A non-virtual call to a method instance
    `boolean` | `dropBackEdges()`

    - ### Methods inherited from class accrue.analysis.interprocanalysis.AnalysisUtil

      `abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocationsForArray, abstractLocationsForArray, abstractLocationsForArray, abstractLocationsImplicitTarget, analysisName, analyzeStaticInitializers, createExitMap, currentAnalysisUnit, currentClass, currentContext, extensionInfo, instanceInitializers, leq, maybeRecursiveCall, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsToGraph, pointsToThis, process, recordMissingCode, typeSystem, upperBound, workQueue`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CtlDepAnalysisUtil

          public CtlDepAnalysisUtil(WorkQueue<CDAbsVal> workQueue,
                            AnalysisUnit currentAnalysisUnit,
                            AccrueExtensionInfo extInfo)

  - ### Method Detail

    - #### analyze

          public ExitMap<CDAbsVal> analyze(polyglot.ast.CodeNode n,
                                  CDAbsVal before)
                                    throws polyglot.types.SemanticException

      Description copied from class: `AnalysisUtil`
      Analyze the given code with the given current analysis results
      Specified by:
        `analyze` in class `AnalysisUtil<CDAbsVal>`
      Parameters:
        `n` - Code to analyze
        `before` - analysis result before analyzing the given code
      Returns:
        Map from exit condition to analysis result
      Throws:
        `polyglot.types.SemanticException` - thrown if the analysis fails

    - #### analyzeInitializers

          public ExitMap<CDAbsVal> analyzeInitializers(CDAbsVal input)
                                                throws polyglot.types.SemanticException

      Description copied from class: `AnalysisUtil`
      Analyze the initializers for the current analysis unit given the current analysis results
      Overrides:
        `analyzeInitializers` in class `AnalysisUtil<CDAbsVal>`
      Parameters:
        `input` - current analysis results
      Returns:
        Map from exit condition to analysis result
      Throws:
        `polyglot.types.SemanticException` - thrown if the analysis fails

    - #### call

          public ExitMap<CDAbsVal> call(polyglot.ast.Call n)

    - #### call

          public ExitMap<CDAbsVal> call(polyglot.ast.New n)

    - #### call

          public ExitMap<CDAbsVal> call(polyglot.ast.ConstructorCall n)

    - #### callNonVirtual

          protected ExitMap<CDAbsVal> callNonVirtual(polyglot.types.ProcedureInstance pi,
                                         AnalysisContext calleeContext,
                                         polyglot.ast.Node n)

      A non-virtual call to a method instance
      Returns:

    - #### dropBackEdges

          public boolean dropBackEdges()