package ai
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- ai
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Type Members
- final type ALocalsArray[T >: Null <: DomainValue] = Array[Locals[T]]
- final type AnOperandsArray[T >: Null <: DomainValue] = Array[Operands[T]]
- case class ExceptionUsage(method: Method, definitionSite: PC, exceptionType: String, usageInformation: Set[UsageKind.Value]) extends Ordered[ExceptionUsage] with Product with Serializable
- class ExceptionUsageAnalysisDomain extends CorrelationalDomain with DefaultDomainValueBinding with TypeLevelPrimitiveValuesConversions with DefaultTypeLevelFloatValues with DefaultTypeLevelDoubleValues with DefaultTypeLevelLongValues with TypeLevelLongValuesShiftOperators with DefaultTypeLevelIntegerValues with TypeLevelFieldAccessInstructions with TypeLevelInvokeInstructions with DefaultReferenceValuesBinding with DefaultHandlingOfMethodResults with IgnoreSynchronization with TheProject with TheMethod
- final type ExceptionsRaisedByCalledMethod = ai.ExceptionsRaisedByCalledMethods.Value
- case class InfiniteRecursion(method: Method, operands: Chain[_ <: AnyRef]) extends Product with Serializable
- class InfiniteRecursionsDomain extends Domain with DefaultDomainValueBinding with ThrowAllPotentialExceptionsConfiguration with DefaultTypeLevelFloatValues with DefaultTypeLevelDoubleValues with TypeLevelFieldAccessInstructions with TypeLevelInvokeInstructions with DefaultReferenceValuesBinding with DefaultIntegerRangeValues with MaxArrayLengthRefinement with DefaultLongSetValues with LongSetValuesShiftOperators with ConcretePrimitiveValuesConversions with DefaultHandlingOfMethodResults with IgnoreSynchronization with TheProject with TheMethod
- final type Locals[T >: Null <: DomainValue] = collection.mutable.Locals[T]
- final type Operands[T >: Null <: DomainValue] = Chain[T]
- final type PCs = IntTrieSet
- type PrimitiveValuesFactory = IntegerValuesFactory with LongValuesFactory with FloatValuesFactory with DoubleValuesFactory
- type SomeAI[D <: Domain] = AI[_ >: D]
- type TargetDomain = ValuesDomain with ValuesFactory
- final type TheLocalsArray[T >: Null <: ai.TheLocalsArray.T.d.type.Locals forSome {val d: ValuesDomain}] = Array[T]
- final type TheOperandsArray[T >: Null <: ai.TheOperandsArray.T.d.type.Operands forSome {val d: ValuesDomain}] = Array[T]
- case class UselessComputation(method: Method, pc: Int, message: String) extends Product with Serializable
- type ValueOrigin = Int
- final type ValueOrigins = IntTrieSet
- final type ValueOriginsIterator = IntIterator
- type ValuesFactory = PrimitiveValuesFactory with ReferenceValuesFactory with ExceptionsFactory with TypedValuesFactory
Value Members
- val BaseConfig: Config
- final val ConstantValueOrigin: Int(-333)
- final val FrameworkName: String("OPAL Abstract Interpretation Framework")
- final val ImmediateVMExceptionsOriginOffset: Int(-100000)
- final val MethodExternalExceptionsOriginOffset: Int(-1000000)
- final def NoPCs: IntTrieSet
-
final
def
NoValueOrigins: ValueOrigins
- Annotations
- @inline()
- final val SUBROUTINE: Int(-900000009)
- final val SUBROUTINE_END: Int(-888888888)
- final val SUBROUTINE_INFORMATION_BLOCK_SEPARATOR_BOUND: Int(-800000000)
- final val SUBROUTINE_RETURN_ADDRESS_LOCAL_VARIABLE: Int(-888880008)
- final val SUBROUTINE_RETURN_TO_TARGET: Int(-800008888)
- final val SUBROUTINE_START: Int(-800000008)
- final val SpecialValuesOriginOffset: Int(-800000000)
- final def ValueOriginForImmediateVMException(pc: Int): Int
- final def ValueOriginForMethodExternalException(pc: Int): Int
- def collectPCWithOperands[B](domain: ValuesDomain)(code: Code, operandsArray: OperandsArray)(f: PartialFunction[(Int, Instruction, ai.ValuesDomain.Operands), B]): Seq[B]
- def foreachPCWithOperands[U](domain: ValuesDomain)(code: Code, operandsArray: OperandsArray)(f: (Int, Instruction, ai.ValuesDomain.Operands) ⇒ U): Unit
- final def isImmediateVMException(origin: ValueOrigin): Boolean
- final def isImplicitOrExternalException(valueOrigin: Int): Boolean
- final def isMethodExternalExceptionOrigin(origin: ValueOrigin): Boolean
- def mapOperands(theOperands: Operands[_ <: DomainValue], targetDomain: ValuesDomain with ValuesFactory): Array[(targetDomain)#DomainValue]
- def mapOperandsToParameters(operands: Operands[_ <: DomainValue], calledMethod: Method, targetDomain: ValuesDomain with ValuesFactory): Locals[(targetDomain)#DomainValue]
- def memoryLayoutToText(domain: Domain)(operandsArray: ai.Domain.OperandsArray, localsArray: ai.Domain.LocalsArray): String
- def parameterIndexToValueOrigin(isStatic: Boolean, descriptor: MethodDescriptor, parameterIndex: Int): Int
- def parameterVariables(aiResult: AIResult)(isStatic: Boolean, descriptor: MethodDescriptor): Array[ai.Domain.DomainValue]
- def parameterVariablesIterator(aiResult: AIResult)(isStatic: Boolean, descriptor: MethodDescriptor): Iterator[ai.Domain.DomainValue]
- final def pcOfImmediateVMException(valueOrigin: Int): Int
- final def pcOfMethodExternalException(valueOrigin: Int): Int
- final def remapPC(pcToIndex: Array[Int])(oldValueOrigin: Int): Int
- final def underlyingPC(valueOrigin: Int): ValueOrigin
-
object
CipherGetInstanceStringUsage extends DefaultOneStepAnalysis
The analysis demonstrates how to find values passed to Chipher.getInstance:
The analysis demonstrates how to find values passed to Chipher.getInstance:
static Chipher getInstance(String transformation) static Cipher getInstance(String transformation, Provider provider) static Cipher getInstance(String transformation, String provider)
-
object
ExceptionUsage extends DefaultOneStepAnalysis with Serializable
Analyses the usage of exceptions in a program.
-
object
InfiniteRecursions extends DefaultOneStepAnalysis
An analysis that finds self-recursive calls with unchanged parameters.
-
object
MethodCallInformation extends DefaultOneStepAnalysis
Analyzes the parameters of called methods to determine if we have more precise type information for one of the parameters.
-
object
MethodsThatAlwaysReturnAPassedParameter extends DefaultOneStepAnalysis
A very small analysis that identifies those methods that always return a value that was passed as a parameter to the method; the self reference
thisis also treated as a(n implicit) parameter. - object UsageKind extends Enumeration
-
object
UselessComputations extends DefaultOneStepAnalysis
A shallow analysis that identifies useless computations.
-
object
UselessComputationsMinimal extends DefaultOneStepAnalysis
A shallow analysis that tries to identify useless computations; here, "ifs" where the condition is constant.