Don't directly expose coverage::CounterMappingRegion via FFI
The definition of this struct changes in LLVM 12 due to the addition of branch coverage support. To avoid future mismatches, declare our own struct and then convert between them.
This commit is contained in:
parent
b763d9a40c
commit
1d280b012d
3 changed files with 26 additions and 8 deletions
|
@ -162,7 +162,7 @@ pub(crate) fn write_filenames_section_to_buffer<'a>(
|
|||
pub(crate) fn write_mapping_to_buffer(
|
||||
virtual_file_mapping: Vec<u32>,
|
||||
expressions: Vec<CounterExpression>,
|
||||
mut mapping_regions: Vec<CounterMappingRegion>,
|
||||
mapping_regions: Vec<CounterMappingRegion>,
|
||||
buffer: &RustString,
|
||||
) {
|
||||
unsafe {
|
||||
|
@ -171,7 +171,7 @@ pub(crate) fn write_mapping_to_buffer(
|
|||
virtual_file_mapping.len() as c_uint,
|
||||
expressions.as_ptr(),
|
||||
expressions.len() as c_uint,
|
||||
mapping_regions.as_mut_ptr(),
|
||||
mapping_regions.as_ptr(),
|
||||
mapping_regions.len() as c_uint,
|
||||
buffer,
|
||||
);
|
||||
|
|
|
@ -676,9 +676,7 @@ pub mod coverageinfo {
|
|||
/// array", encoded separately), and source location (start and end positions of the represented
|
||||
/// code region).
|
||||
///
|
||||
/// Aligns with [llvm::coverage::CounterMappingRegion](https://github.com/rust-lang/llvm-project/blob/rustc/11.0-2020-10-12/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h#L224-L227)
|
||||
/// Important: The Rust struct layout (order and types of fields) must match its C++
|
||||
/// counterpart.
|
||||
/// Matches LLVMRustCounterMappingRegion.
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
#[repr(C)]
|
||||
pub struct CounterMappingRegion {
|
||||
|
@ -1796,7 +1794,7 @@ extern "C" {
|
|||
NumVirtualFileMappingIDs: c_uint,
|
||||
Expressions: *const coverage_map::CounterExpression,
|
||||
NumExpressions: c_uint,
|
||||
MappingRegions: *mut coverageinfo::CounterMappingRegion,
|
||||
MappingRegions: *const coverageinfo::CounterMappingRegion,
|
||||
NumMappingRegions: c_uint,
|
||||
BufferOut: &RustString,
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue