@@ -88,38 +88,7 @@ struct LLVMRustMCDCParameters {
88
88
LLVMRustMCDCBranchParameters BranchParameters;
89
89
};
90
90
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)
123
92
static coverage::mcdc::Parameters fromRust (LLVMRustMCDCParameters Params) {
124
93
switch (Params.Tag ) {
125
94
case LLVMRustMCDCParametersTag::None:
@@ -214,13 +183,17 @@ extern "C" void LLVMRustCoverageWriteMappingToBuffer(
214
183
RustMappingRegions, NumMappingRegions)) {
215
184
MappingRegions.emplace_back (
216
185
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{},
220
188
#endif
221
189
Region.FileID , Region.ExpandedFileID , // File IDs, then region info.
222
190
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
+ );
224
197
}
225
198
226
199
std::vector<coverage::CounterExpression> Expressions;
0 commit comments