@@ -95,38 +95,7 @@ struct LLVMRustMCDCParameters {
9595 LLVMRustMCDCBranchParameters BranchParameters;
9696};
9797
98- // LLVM representations for `MCDCParameters` evolved from LLVM 18 to 19.
99- // Look at representations in 18
100- // https://github.com/rust-lang/llvm-project/blob/66a2881a/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h#L253-L263
101- // and representations in 19
102- // https://github.com/llvm/llvm-project/blob/843cc474faefad1d639f4c44c1cf3ad7dbda76c8/llvm/include/llvm/ProfileData/Coverage/MCDCTypes.h
103- #if LLVM_VERSION_GE(18, 0) && LLVM_VERSION_LT(19, 0)
104- static coverage::CounterMappingRegion::MCDCParameters
105- fromRust (LLVMRustMCDCParameters Params) {
106- auto parameter = coverage::CounterMappingRegion::MCDCParameters{};
107- switch (Params.Tag ) {
108- case LLVMRustMCDCParametersTag::None:
109- return parameter;
110- case LLVMRustMCDCParametersTag::Decision:
111- parameter.BitmapIdx =
112- static_cast <unsigned >(Params.DecisionParameters .BitmapIdx ),
113- parameter.NumConditions =
114- static_cast <unsigned >(Params.DecisionParameters .NumConditions );
115- return parameter;
116- case LLVMRustMCDCParametersTag::Branch:
117- parameter.ID = static_cast <coverage::CounterMappingRegion::MCDCConditionID>(
118- Params.BranchParameters .ConditionID ),
119- parameter.FalseID =
120- static_cast <coverage::CounterMappingRegion::MCDCConditionID>(
121- Params.BranchParameters .ConditionIDs [0 ]),
122- parameter.TrueID =
123- static_cast <coverage::CounterMappingRegion::MCDCConditionID>(
124- Params.BranchParameters .ConditionIDs [1 ]);
125- return parameter;
126- }
127- report_fatal_error (" Bad LLVMRustMCDCParametersTag!" );
128- }
129- #elif LLVM_VERSION_GE(19, 0)
98+ #if LLVM_VERSION_GE(19, 0)
13099static coverage::mcdc::Parameters fromRust (LLVMRustMCDCParameters Params) {
131100 switch (Params.Tag ) {
132101 case LLVMRustMCDCParametersTag::None:
@@ -222,12 +191,16 @@ extern "C" void LLVMRustCoverageWriteMappingToBuffer(
222191 MappingRegions.emplace_back (
223192 fromRust (Region.Count ), fromRust (Region.FalseCount ),
224193#if LLVM_VERSION_GE(18, 0) && LLVM_VERSION_LT(19, 0)
225- // LLVM 19 may move this argument to last.
226- fromRust (Region.MCDCParameters ),
194+ coverage::CounterMappingRegion::MCDCParameters{},
227195#endif
228196 Region.FileID , Region.ExpandedFileID , // File IDs, then region info.
229197 Region.LineStart , Region.ColumnStart , Region.LineEnd , Region.ColumnEnd ,
230- fromRust (Region.Kind ));
198+ fromRust (Region.Kind )
199+ #if LLVM_VERSION_GE(19, 0)
200+ ,
201+ fromRust (Region.MCDCParameters )
202+ #endif
203+ );
231204 }
232205
233206 std::vector<coverage::CounterExpression> Expressions;
0 commit comments