AnalyzerInputDsl

open class AnalyzerInputDsl

DSL block for P5 — Analyzer input configuration.

Combines P4 analyzer code selection + stubs + harness into the final analysis bitcode. Verifies all symbols are defined (stubs cover gaps), derives interface points, and generates analyzer run plans.

stig {
element {
analyzerInput {
stubs {
enabled = true
iQuotePath(repos["stig-project"] / "stubs/include")
stubSource(repos["stig-project"] / "stubs/src/analysis_stubs.cpp")
}

harness {
enabled = true
}

interfacePoints {
mode = InterfacePointMode.DSL_DECLARATION
defaultAsil = ASIL.B
entryPoint = "stig::Harness::Execute()"
source("ns::ReadData()")
sink("ns::WriteData(int)", paramIndex = 0)
}

pathFeasibility = PathFeasibility.FEASIBLE_ONLY

symbolVerification {
mode = SymbolVerificationMode.CHECK_ALL_UNDEFINED_SYMBOLS
ignorePatterns = listOf("__cxa_*", "_Unwind_*", "__gxx_*")
}
}
}
}

Settable at: defaults → group → element (cascading).

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard

Legacy switch retained for configuration-source compatibility. Detailed all_sinks diagrams are no longer supported because they require expanding the complete compact evidence store. Keep this unset or false; P7 rejects true with an explicit precondition failure.

Link copied to clipboard

Z3 path-feasibility mode for analyzer taint/fault-propagation runs.

Functions

Link copied to clipboard

Select project registry rule definitions with activity transform-rule use(...) entries.

Link copied to clipboard
fun harness(configure: AnalyzerInputHarnessDsl.() -> Unit)

Configure harness files (test drivers) appended to the instrumented compilation.

Link copied to clipboard

Configure how interface points (entry points, sources, sinks) are determined.

Link copied to clipboard

Implements bitcodeTransforms += { use(qualifiedFunctionName = "...") } as append, not replacement.

Link copied to clipboard
fun stubs(configure: AnalyzerInputStubsDsl.() -> Unit)

Configure stub headers and source files for covering undefined symbols.

Link copied to clipboard

Configure symbol verification on the final P5 analyzer input. Unlike P4's informational report, P5 verification fails on undefined symbols.