librustc_codegen_llvm: Use repr(transparent) for bitflags over repr(C) (#61306)
In order to make sure that Rust's bitflags types are passed the same way in the Rust ABI as they are in the C ABI, we need to use the attribute repr(transparent) over the repr(C) attribute for the single-field bitflags structs in in order to prevent ABI mismatches. Thanks to Michael Karcher for finding this bug.
This commit is contained in:
parent
0dc9e9c10c
commit
3fa7411050
1 changed files with 2 additions and 2 deletions
|
@ -564,7 +564,7 @@ pub mod debuginfo {
|
|||
|
||||
// These values **must** match with LLVMRustDIFlags!!
|
||||
bitflags! {
|
||||
#[repr(C)]
|
||||
#[repr(transparent)]
|
||||
#[derive(Default)]
|
||||
pub struct DIFlags: ::libc::uint32_t {
|
||||
const FlagZero = 0;
|
||||
|
@ -593,7 +593,7 @@ pub mod debuginfo {
|
|||
|
||||
// These values **must** match with LLVMRustDISPFlags!!
|
||||
bitflags! {
|
||||
#[repr(C)]
|
||||
#[repr(transparent)]
|
||||
#[derive(Default)]
|
||||
pub struct DISPFlags: ::libc::uint32_t {
|
||||
const SPFlagZero = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue