use crate::frontend::idmap::Id;
#[allow(missing_docs)]
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct GlobalPointer {
pub elf: Id,
pub section: Id,
pub symbol: Id,
pub chunk: Id,
pub offset: usize,
}
#[allow(missing_docs)]
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct BasicBlockPointer {
pub elf: Id,
pub section: Id,
pub symbol: Id,
pub chunk: Id,
pub bb: Id,
}
#[allow(missing_docs)]
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct FunctionPointer {
pub elf: Id,
pub section: Id,
pub symbol: Id,
pub chunk: Id,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Pointer {
Null,
Global(GlobalPointer),
BasicBlock(BasicBlockPointer),
Function(FunctionPointer),
}