mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-04 22:17:38 +00:00
38 lines
1.2 KiB
Rust
38 lines
1.2 KiB
Rust
//! Definitions of various DWARF-related constants.
|
|
|
|
use libc::c_uint;
|
|
|
|
/// Helper macro to let us redeclare gimli's constants as our own constants
|
|
/// with a different type, with less risk of copy-paste errors.
|
|
macro_rules! declare_constant {
|
|
(
|
|
$name:ident : $type:ty
|
|
) => {
|
|
#[allow(non_upper_case_globals)]
|
|
pub(crate) const $name: $type = ::gimli::constants::$name.0 as $type;
|
|
|
|
// Assert that as-cast probably hasn't changed the value.
|
|
const _: () = assert!($name as i128 == ::gimli::constants::$name.0 as i128);
|
|
};
|
|
}
|
|
|
|
declare_constant!(DW_TAG_const_type: c_uint);
|
|
|
|
// DWARF languages.
|
|
declare_constant!(DW_LANG_Rust: c_uint);
|
|
|
|
// DWARF attribute type encodings.
|
|
declare_constant!(DW_ATE_boolean: c_uint);
|
|
declare_constant!(DW_ATE_float: c_uint);
|
|
declare_constant!(DW_ATE_signed: c_uint);
|
|
declare_constant!(DW_ATE_unsigned: c_uint);
|
|
declare_constant!(DW_ATE_UTF: c_uint);
|
|
|
|
// DWARF expression operators.
|
|
declare_constant!(DW_OP_deref: u64);
|
|
declare_constant!(DW_OP_plus_uconst: u64);
|
|
/// Defined by LLVM in `llvm/include/llvm/BinaryFormat/Dwarf.h`.
|
|
/// Double-checked by a static assertion in `RustWrapper.cpp`.
|
|
#[allow(non_upper_case_globals)]
|
|
pub(crate) const DW_OP_LLVM_fragment: u64 = 0x1000;
|