xref: /aosp_15_r20/external/clang/test/CodeGen/2009-01-21-InvalidIterator.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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 Li base_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