1*67e74705SXin Li // RUN: %clang_cc1 %s -emit-llvm -debug-info-kind=limited -o /dev/null 2*67e74705SXin Li 3*67e74705SXin Li typedef long unsigned int size_t; 4*67e74705SXin Li typedef unsigned short int uint16_t; 5*67e74705SXin Li typedef unsigned int uint32_t; 6*67e74705SXin Li typedef unsigned long int uint64_t; 7*67e74705SXin Li typedef uint16_t Elf64_Half; 8*67e74705SXin Li typedef uint32_t Elf64_Word; 9*67e74705SXin Li typedef uint64_t Elf64_Xword; 10*67e74705SXin Li typedef uint64_t Elf64_Addr; 11*67e74705SXin Li typedef uint64_t Elf64_Off; 12*67e74705SXin Li typedef struct 13*67e74705SXin Li { 14*67e74705SXin Li Elf64_Word p_type; 15*67e74705SXin Li Elf64_Off p_offset; 16*67e74705SXin Li Elf64_Addr p_vaddr; 17*67e74705SXin Li Elf64_Xword p_align; 18*67e74705SXin Li } 19*67e74705SXin Li Elf64_Phdr; 20*67e74705SXin Li struct dl_phdr_info 21*67e74705SXin Li { 22*67e74705SXin Li const char *dlpi_name; 23*67e74705SXin Li const Elf64_Phdr *dlpi_phdr; 24*67e74705SXin Li Elf64_Half dlpi_phnum; 25*67e74705SXin Li unsigned long long int dlpi_adds; 26*67e74705SXin Li }; 27*67e74705SXin Li typedef unsigned _Unwind_Ptr; 28*67e74705SXin Li struct object 29*67e74705SXin Li { 30*67e74705SXin Li union 31*67e74705SXin Li { 32*67e74705SXin Li const struct dwarf_fde *single; 33*67e74705SXin Li struct dwarf_fde **array; 34*67e74705SXin Li struct fde_vector *sort; 35*67e74705SXin Li } 36*67e74705SXin Li u; 37*67e74705SXin Li union 38*67e74705SXin Li { 39*67e74705SXin Li struct 40*67e74705SXin Li { 41*67e74705SXin Li } 42*67e74705SXin Li b; 43*67e74705SXin Li } 44*67e74705SXin Li s; 45*67e74705SXin Li struct object *next; 46*67e74705SXin Li }; 47*67e74705SXin Li typedef int sword; 48*67e74705SXin Li typedef unsigned int uword; 49*67e74705SXin Li struct dwarf_fde 50*67e74705SXin Li { 51*67e74705SXin Li uword length; 52*67e74705SXin Li sword CIE_delta; 53*67e74705SXin Li unsigned char pc_begin[]; 54*67e74705SXin Li }; 55*67e74705SXin Li typedef struct dwarf_fde fde; 56*67e74705SXin Li struct unw_eh_callback_data 57*67e74705SXin Li { 58*67e74705SXin Li const fde *ret; 59*67e74705SXin Li struct frame_hdr_cache_element *link; 60*67e74705SXin Li } 61*67e74705SXin Li frame_hdr_cache[8]; 62*67e74705SXin Li 63*67e74705SXin Li _Unwind_Ptr base_from_cb_data(struct unw_eh_callback_data * data)64*67e74705SXin Libase_from_cb_data (struct unw_eh_callback_data *data) 65*67e74705SXin Li { 66*67e74705SXin Li } 67*67e74705SXin Li 68*67e74705SXin Li void _Unwind_IteratePhdrCallback(struct dl_phdr_info * info,size_t size,void * ptr)69*67e74705SXin Li_Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr) 70*67e74705SXin Li { 71*67e74705SXin Li const unsigned char *p; 72*67e74705SXin Li const struct unw_eh_frame_hdr *hdr; 73*67e74705SXin Li struct object ob; 74*67e74705SXin Li } 75