@@ -66,7 +66,7 @@ fromRust(LLVMRustCounterMappingRegionKind Kind) {
66
66
report_fatal_error (" Bad LLVMRustCounterMappingRegionKind!" );
67
67
}
68
68
69
- enum class LLVMRustMCDCParametersTag : uint8_t {
69
+ enum LLVMRustMCDCParametersTag {
70
70
None = 0 ,
71
71
Decision = 1 ,
72
72
Branch = 2 ,
@@ -102,40 +102,40 @@ fromRust(LLVMRustMCDCParameters Params) {
102
102
return parameter;
103
103
case LLVMRustMCDCParametersTag::Decision:
104
104
parameter.BitmapIdx =
105
- static_cast <unsigned >(Params.Payload . DecisionParameters .BitmapIdx ),
105
+ static_cast <unsigned >(Params.DecisionParameters .BitmapIdx ),
106
106
parameter.NumConditions =
107
- static_cast <unsigned >(Params.Payload . DecisionParameters .NumConditions );
107
+ static_cast <unsigned >(Params.DecisionParameters .NumConditions );
108
108
return parameter;
109
109
case LLVMRustMCDCParametersTag::Branch:
110
110
parameter.ID = static_cast <coverage::CounterMappingRegion::MCDCConditionID>(
111
- Params.Payload . BranchParameters .ConditionID ),
111
+ Params.BranchParameters .ConditionID ),
112
112
parameter.FalseID =
113
113
static_cast <coverage::CounterMappingRegion::MCDCConditionID>(
114
- Params.Payload . BranchParameters .ConditionIDs [0 ]),
114
+ Params.BranchParameters .ConditionIDs [0 ]),
115
115
parameter.TrueID =
116
116
static_cast <coverage::CounterMappingRegion::MCDCConditionID>(
117
- Params.Payload . BranchParameters .ConditionIDs [1 ]);
117
+ Params.BranchParameters .ConditionIDs [1 ]);
118
118
return parameter;
119
119
}
120
120
report_fatal_error (" Bad LLVMRustMCDCParametersTag!" );
121
121
}
122
122
#elif LLVM_VERSION_GE(19, 0)
123
- static coverage::mcdc::MCDCParameters fromRust (LLVMRustMCDCParameters Params) {
123
+ static coverage::mcdc::Parameters fromRust (LLVMRustMCDCParameters Params) {
124
124
switch (Params.Tag ) {
125
125
case LLVMRustMCDCParametersTag::None:
126
- return coverage::mcdc::MCDCParameters ;
126
+ return std::monostate () ;
127
127
case LLVMRustMCDCParametersTag::Decision:
128
128
return coverage::mcdc::DecisionParameters (
129
- Params.Payload . DecisionParameters .BitmapIdx ,
130
- Params.Payload . DecisionParameters .NumConditions );
129
+ Params.DecisionParameters .BitmapIdx ,
130
+ Params.DecisionParameters .NumConditions );
131
131
case LLVMRustMCDCParametersTag::Branch:
132
132
return coverage::mcdc::BranchParameters (
133
133
static_cast <coverage::mcdc::ConditionID>(
134
- Params.Payload . BranchParameters .ConditionID ),
135
- {static_cast <coverage::CounterMappingRegion::MCDCConditionID >(
136
- Params.Payload . BranchParameters .ConditionIDs [0 ]),
137
- static_cast <coverage::CounterMappingRegion::MCDCConditionID >(
138
- Params.Payload . BranchParameters .ConditionIDs [1 ])});
134
+ Params.BranchParameters .ConditionID ),
135
+ {static_cast <coverage::mcdc::ConditionID >(
136
+ Params.BranchParameters .ConditionIDs [0 ]),
137
+ static_cast <coverage::mcdc::ConditionID >(
138
+ Params.BranchParameters .ConditionIDs [1 ])});
139
139
}
140
140
report_fatal_error (" Bad LLVMRustMCDCParametersTag!" );
141
141
}
@@ -214,7 +214,8 @@ extern "C" void LLVMRustCoverageWriteMappingToBuffer(
214
214
RustMappingRegions, NumMappingRegions)) {
215
215
MappingRegions.emplace_back (
216
216
fromRust (Region.Count ), fromRust (Region.FalseCount ),
217
- #if LLVM_VERSION_GE(18, 0)
217
+ #if LLVM_VERSION_GE(18, 0) && LLVM_VERSION_LT(19, 0)
218
+ // LLVM 19 may move this argument to last.
218
219
fromRust (Region.MCDCParameters ),
219
220
#endif
220
221
Region.FileID , Region.ExpandedFileID , // File IDs, then region info.
0 commit comments