mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-27 13:59:08 +00:00
add support for absolute relocations
This commit is contained in:
parent
fdbb0c8e3c
commit
b725b36697
2 changed files with 59 additions and 11 deletions
|
@ -372,3 +372,44 @@ pub(crate) fn open_mmap_mut(path: &Path, length: usize) -> MmapMut {
|
|||
|
||||
unsafe { MmapMut::map_mut(&out_file).unwrap_or_else(|e| internal_error!("{e}")) }
|
||||
}
|
||||
|
||||
/// # dbg_hex
|
||||
/// display dbg result in hexadecimal `{:#x?}` format.
|
||||
///
|
||||
/// # usage
|
||||
/// Replace `dbg!()` with `dbg_hex!()`
|
||||
///
|
||||
/// # example
|
||||
/// ```rust, no_run
|
||||
/// use dbg_hex::dbg_hex;
|
||||
/// dbg_hex!(0x16 + 0x16);
|
||||
/// ```
|
||||
///
|
||||
/// output
|
||||
/// ```text
|
||||
/// [src/lib.rs:38] 0x16 + 0x16 = 0x2c
|
||||
/// ```
|
||||
#[macro_export]
|
||||
macro_rules! dbg_hex {
|
||||
// NOTE: We cannot use `concat!` to make a static string as a format argument
|
||||
// of `eprintln!` because `file!` could contain a `{` or
|
||||
// `$val` expression could be a block (`{ .. }`), in which case the `eprintln!`
|
||||
// will be malformed.
|
||||
() => {
|
||||
eprintln!("[{}:{}]", file!(), line!());
|
||||
};
|
||||
($val:expr $(,)?) => {
|
||||
// Use of `match` here is intentional because it affects the lifetimes
|
||||
// of temporaries - https://stackoverflow.com/a/48732525/1063961
|
||||
match $val {
|
||||
tmp => {
|
||||
eprintln!("[{}:{}] {} = {:#x?}",
|
||||
file!(), line!(), stringify!($val), &tmp);
|
||||
tmp
|
||||
}
|
||||
}
|
||||
};
|
||||
($($val:expr),+ $(,)?) => {
|
||||
($($crate::dbg_hex!($val)),+,)
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue