[clang] [llvm] [clang][CoverageMapping] Refactor when setting MC/DC True/False (PR #78202)
NAKAMURA Takumi via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 17 17:45:14 PST 2024
================
@@ -1884,20 +1874,28 @@ struct CounterCoverageMappingBuilder
}
void VisitBinLOr(const BinaryOperator *E) {
- // Keep track of Binary Operator and assign MCDC condition IDs
+ bool IsRootNode = MCDCBuilder.isIdle();
+
+ // Keep track of Binary Operator and assign MCDC condition IDs.
MCDCBuilder.pushAndAssignIDs(E);
extendRegion(E->getLHS());
Counter OutCount = propagateCounts(getRegion().getCounter(), E->getLHS());
handleFileExit(getEnd(E->getLHS()));
+ // Track LHS True/False Decision.
+ auto DecisionLHS = MCDCBuilder.pop();
+
// Counter tracks the right hand side of a logical or operator.
extendRegion(E->getRHS());
propagateCounts(getRegionCounter(E), E->getRHS());
- // Process Binary Operator and create MCDC Decision Region if top-level
+ // Track RHS True/False Decision.
+ const auto DecisionRHS = MCDCBuilder.back();
----------------
chapuni wrote:
You may drop `const`, or add `const` onto `DecisionLHS`. I know this is a nitpick.
https://github.com/llvm/llvm-project/pull/78202
More information about the cfe-commits
mailing list