Package-level declarations
Types
LLVM symbol kinds relevant to undefined-boundary use analysis.
Why an unresolved symbol is permitted by STIG's symbol-completeness check.
Symbol verification used by stigAnalysisP6RunAnalyzer before native analysis starts.
Inputs for verifyRequiredSymbolsWithTools. Bundled so the call from StigAnalysisP6RunAnalyzerTask doesn't grow into a 14-parameter function call.
Functions
Matches a symbol name to a built-in external category, or returns null when no category matches.
Removes debug information from a temporary module, then removes unused function prototypes with LLVM's use-def aware pass. Debug-only DISubprogram attachments must not keep declarations alive: they describe source symbols but do not represent executable calls, function-pointer initializers, aliases, or other IR dependencies. Undefined globals are retained even when they have no current IR use: vtables and other externally populated globals are boundary state, and callers do not have enough whole-program evidence to discard them. Unknown symbol kinds are retained for the same reason.
Reads function/global declarations and definitions from a textual LLVM module.
One obligation per exact symbol; the aggregate count is context, not a substitute for its subjects.
Precondition: verify that every symbol PhASAR will need is present in the linked module. Called from StigAnalysisP6RunAnalyzerTask before the analyzer subprocess starts.