75 lines
1.3 KiB
C
75 lines
1.3 KiB
C
|
// RUN: %clang_cc1 %s -emit-llvm -g -o /dev/null
|
||
|
|
||
|
typedef long unsigned int size_t;
|
||
|
typedef unsigned short int uint16_t;
|
||
|
typedef unsigned int uint32_t;
|
||
|
typedef unsigned long int uint64_t;
|
||
|
typedef uint16_t Elf64_Half;
|
||
|
typedef uint32_t Elf64_Word;
|
||
|
typedef uint64_t Elf64_Xword;
|
||
|
typedef uint64_t Elf64_Addr;
|
||
|
typedef uint64_t Elf64_Off;
|
||
|
typedef struct
|
||
|
{
|
||
|
Elf64_Word p_type;
|
||
|
Elf64_Off p_offset;
|
||
|
Elf64_Addr p_vaddr;
|
||
|
Elf64_Xword p_align;
|
||
|
}
|
||
|
Elf64_Phdr;
|
||
|
struct dl_phdr_info
|
||
|
{
|
||
|
const char *dlpi_name;
|
||
|
const Elf64_Phdr *dlpi_phdr;
|
||
|
Elf64_Half dlpi_phnum;
|
||
|
unsigned long long int dlpi_adds;
|
||
|
};
|
||
|
typedef unsigned _Unwind_Ptr;
|
||
|
struct object
|
||
|
{
|
||
|
union
|
||
|
{
|
||
|
const struct dwarf_fde *single;
|
||
|
struct dwarf_fde **array;
|
||
|
struct fde_vector *sort;
|
||
|
}
|
||
|
u;
|
||
|
union
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
}
|
||
|
b;
|
||
|
}
|
||
|
s;
|
||
|
struct object *next;
|
||
|
};
|
||
|
typedef int sword;
|
||
|
typedef unsigned int uword;
|
||
|
struct dwarf_fde
|
||
|
{
|
||
|
uword length;
|
||
|
sword CIE_delta;
|
||
|
unsigned char pc_begin[];
|
||
|
};
|
||
|
typedef struct dwarf_fde fde;
|
||
|
struct unw_eh_callback_data
|
||
|
{
|
||
|
const fde *ret;
|
||
|
struct frame_hdr_cache_element *link;
|
||
|
}
|
||
|
frame_hdr_cache[8];
|
||
|
|
||
|
_Unwind_Ptr
|
||
|
base_from_cb_data (struct unw_eh_callback_data *data)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void
|
||
|
_Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
|
||
|
{
|
||
|
const unsigned char *p;
|
||
|
const struct unw_eh_frame_hdr *hdr;
|
||
|
struct object ob;
|
||
|
}
|