| /* PR rtl-optimization/pr63527 */ |
| /* { dg-do compile { target { ia32 && fpic } } } */ |
| /* { dg-options "-O2 -fPIC" } */ |
| |
| struct cache_file |
| { |
| char magic[sizeof "ld.so-1.7.0" - 1]; |
| unsigned int nlibs; |
| }; |
| typedef unsigned int size_t; |
| size_t cachesize __attribute__ ((visibility ("hidden"))); |
| struct cache_file *cache __attribute__ ((visibility ("hidden"))); |
| extern int __munmap (void *__addr, size_t __len); |
| void |
| _dl_unload_cache (void) |
| { |
| if (cache != ((void *)0) && cache != (struct cache_file *) -1) |
| { |
| __munmap (cache, cachesize); |
| cache = ((void *)0) ; |
| } |
| } |
| |
| /* We shouldn't load EBX again. */ |
| /* { dg-final { scan-assembler-not "movl\[ \t\]%\[^,\]+, %ebx" } } */ |