2018-03-08 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr55142-1.c
blob3974f25179e4dba6e833b8269f1196773d08b7b0
1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-require-effective-target maybe_x32 } */
3 /* { dg-require-effective-target fpic } */
4 /* { dg-options "-O2 -mx32 -maddress-mode=long -fpic" } */
6 typedef int int32_t;
7 typedef unsigned int uint32_t;
8 typedef int32_t Elf32_Sword;
9 typedef struct
11 Elf32_Sword d_tag;
12 } Elf32_Dyn;
13 struct link_map
15 Elf32_Dyn *l_ld;
16 Elf32_Dyn *l_info[34];
18 extern struct link_map _dl_rtld_map __attribute__ ((visibility ("hidden")));
19 static void elf_get_dynamic_info (struct link_map *l)
21 Elf32_Dyn *dyn = l->l_ld;
22 Elf32_Dyn **info;
23 info = l->l_info;
24 while (dyn->d_tag != 0)
26 if ((uint32_t) (0x6ffffeff - dyn->d_tag) < 11)
27 info[0x6ffffeff - dyn->d_tag + 12] = dyn;
28 ++dyn;
31 void
32 foo (void)
34 elf_get_dynamic_info (&_dl_rtld_map);