@@ -88,38 +88,7 @@ struct LLVMRustMCDCParameters {
8888 LLVMRustMCDCBranchParameters BranchParameters;
8989};
9090
91- // LLVM representations for `MCDCParameters` evolved from LLVM 18 to 19.
92- // Look at representations in 18
93- // https://github.com/rust-lang/llvm-project/blob/66a2881a/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h#L253-L263
94- // and representations in 19
95- // https://github.com/llvm/llvm-project/blob/843cc474faefad1d639f4c44c1cf3ad7dbda76c8/llvm/include/llvm/ProfileData/Coverage/MCDCTypes.h
96- #if LLVM_VERSION_LT(19, 0)
97- static coverage::CounterMappingRegion::MCDCParameters
98- fromRust (LLVMRustMCDCParameters Params) {
99- auto parameter = coverage::CounterMappingRegion::MCDCParameters{};
100- switch (Params.Tag ) {
101- case LLVMRustMCDCParametersTag::None:
102- return parameter;
103- case LLVMRustMCDCParametersTag::Decision:
104- parameter.BitmapIdx =
105- static_cast <unsigned >(Params.DecisionParameters .BitmapIdx ),
106- parameter.NumConditions =
107- static_cast <unsigned >(Params.DecisionParameters .NumConditions );
108- return parameter;
109- case LLVMRustMCDCParametersTag::Branch:
110- parameter.ID = static_cast <coverage::CounterMappingRegion::MCDCConditionID>(
111- Params.BranchParameters .ConditionID ),
112- parameter.FalseID =
113- static_cast <coverage::CounterMappingRegion::MCDCConditionID>(
114- Params.BranchParameters .ConditionIDs [0 ]),
115- parameter.TrueID =
116- static_cast <coverage::CounterMappingRegion::MCDCConditionID>(
117- Params.BranchParameters .ConditionIDs [1 ]);
118- return parameter;
119- }
120- report_fatal_error (" Bad LLVMRustMCDCParametersTag!" );
121- }
122- #else
91+ #if LLVM_VERSION_GE(19, 0)
12392static coverage::mcdc::Parameters fromRust (LLVMRustMCDCParameters Params) {
12493 switch (Params.Tag ) {
12594 case LLVMRustMCDCParametersTag::None:
@@ -214,13 +183,17 @@ extern "C" void LLVMRustCoverageWriteMappingToBuffer(
214183 RustMappingRegions, NumMappingRegions)) {
215184 MappingRegions.emplace_back (
216185 fromRust (Region.Count ), fromRust (Region.FalseCount ),
217- #if LLVM_VERSION_LT(19, 0)
218- // LLVM 19 may move this argument to last.
219- fromRust (Region.MCDCParameters ),
186+ #if LLVM_VERSION_GE(18, 0) && LLVM_VERSION_LT(19, 0)
187+ coverage::CounterMappingRegion::MCDCParameters{},
220188#endif
221189 Region.FileID , Region.ExpandedFileID , // File IDs, then region info.
222190 Region.LineStart , Region.ColumnStart , Region.LineEnd , Region.ColumnEnd ,
223- fromRust (Region.Kind ));
191+ fromRust (Region.Kind )
192+ #if LLVM_VERSION_GE(19, 0)
193+ ,
194+ fromRust (Region.MCDCParameters )
195+ #endif
196+ );
224197 }
225198
226199 std::vector<coverage::CounterExpression> Expressions;
0 commit comments