Skip to content

Commit 652ceb2

Browse files
committed
llvm-wrapper: adapt for LLVM API changes
Adapt for llvm/llvm-project@8ecbb04.
1 parent 1aa6aef commit 652ceb2

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp

+24
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,32 @@ fromRust(LLVMRustCounterMappingRegionKind Kind) {
6262
report_fatal_error("Bad LLVMRustCounterMappingRegionKind!");
6363
}
6464

65+
#if LLVM_VERSION_GE(18, 0)
66+
// FFI equivalent of struct `llvm::coverage::CounterMappingRegion::MCDCParameters`
67+
// https://github.com/llvm/llvm-project/blob/ac406b481794efbc66122495d0973ae91c1bb046/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h#L253
68+
struct LLVMRustMCDCParameters {
69+
uint32_t BitmapIdx;
70+
uint32_t NumConditions;
71+
uint32_t ID;
72+
uint32_t TrueID;
73+
uint32_t FalseID;
74+
};
75+
76+
static coverage::CounterMappingRegion::MCDCParameters fromRust(
77+
LLVMRustMCDCParameters Params) {
78+
return {Params.BitmapIdx, Params.NumConditions, Params.ID, Params.TrueID,
79+
Params.FalseID};
80+
}
81+
#endif
82+
6583
// FFI equivalent of struct `llvm::coverage::CounterMappingRegion`
6684
// https://github.com/rust-lang/llvm-project/blob/ea6fa9c2/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h#L211-L304
6785
struct LLVMRustCounterMappingRegion {
6886
LLVMRustCounter Count;
6987
LLVMRustCounter FalseCount;
88+
#if LLVM_VERSION_GE(18, 0)
89+
LLVMRustMCDCParameters MCDCParams;
90+
#endif
7091
uint32_t FileID;
7192
uint32_t ExpandedFileID;
7293
uint32_t LineStart;
@@ -139,6 +160,9 @@ extern "C" void LLVMRustCoverageWriteMappingToBuffer(
139160
RustMappingRegions, NumMappingRegions)) {
140161
MappingRegions.emplace_back(
141162
fromRust(Region.Count), fromRust(Region.FalseCount),
163+
#if LLVM_VERSION_GE(18, 0)
164+
fromRust(Region.MCDCParams),
165+
#endif
142166
Region.FileID, Region.ExpandedFileID,
143167
Region.LineStart, Region.ColumnStart, Region.LineEnd, Region.ColumnEnd,
144168
fromRust(Region.Kind));

0 commit comments

Comments
 (0)