BitcodeTransformRule
constructor(kind: BitcodeRewriteKind, symbol: String, originalCompileUnit: StigRepoFile? = null, replacementSource: String? = null, sourceFile: String? = null, transfers: List<BitcodeTransferEdge> = emptyList(), model: BitcodeFunctionModel? = null, nativeCompileUnit: StigRepoFile? = null, reason: String? = null, scope: BitcodeTransformScope? = null, owner: String? = null, mangledSymbol: String? = null, originalSource: BitcodeOriginalSource? = originalCompileUnit?.let {
BitcodeOriginalSource(repoName = it.repoName, relativePath = it.relativePath)
}, reviewStatus: BitcodeTransformReviewStatus = BitcodeTransformReviewStatus.NEW, zeroInitializeReturn: Boolean = false, definitionMode: DefinitionMode? = when (kind) {
BitcodeRewriteKind.ADD_FUNCTION_IMPLEMENTATION -> DefinitionMode.ADD
BitcodeRewriteKind.SET_FUNCTION_INLINING,
BitcodeRewriteKind.REWRITE_GLOBAL_TO_ZERO,
BitcodeRewriteKind.REWRITE_GLOBAL_TO_UNKNOWN,
BitcodeRewriteKind.REWRITE_WITH_ANALYSIS_COMPILE_UNIT -> null
else -> DefinitionMode.REWRITE
}, inlining: Inlining = when (kind) {
BitcodeRewriteKind.SET_FUNCTION_INLINING,
BitcodeRewriteKind.REWRITE_GLOBAL_TO_ZERO,
BitcodeRewriteKind.REWRITE_GLOBAL_TO_UNKNOWN,
BitcodeRewriteKind.REWRITE_WITH_ANALYSIS_COMPILE_UNIT -> Inlining.DEFAULT
else -> Inlining.NEVER
})