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