# 1 "obj_reloc.c" # 1 "" # 1 "" # 1 "obj_reloc.c" # 1 "/usr/lib64/gcc/x86_64-alt-linux/4.1.1/include/stddef.h" 1 3 4 # 152 "/usr/lib64/gcc/x86_64-alt-linux/4.1.1/include/stddef.h" 3 4 typedef long int ptrdiff_t; # 214 "/usr/lib64/gcc/x86_64-alt-linux/4.1.1/include/stddef.h" 3 4 typedef long unsigned int size_t; # 326 "/usr/lib64/gcc/x86_64-alt-linux/4.1.1/include/stddef.h" 3 4 typedef int wchar_t; # 2 "obj_reloc.c" 2 # 1 "/usr/include/alloca.h" 1 3 4 # 22 "/usr/include/alloca.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 329 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 313 "/usr/include/sys/cdefs.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 314 "/usr/include/sys/cdefs.h" 2 3 4 # 330 "/usr/include/features.h" 2 3 4 # 352 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 5 "/usr/include/gnu/stubs.h" 2 3 4 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4 # 10 "/usr/include/gnu/stubs.h" 2 3 4 # 353 "/usr/include/features.h" 2 3 4 # 23 "/usr/include/alloca.h" 2 3 4 # 1 "/usr/lib64/gcc/x86_64-alt-linux/4.1.1/include/stddef.h" 1 3 4 # 26 "/usr/include/alloca.h" 2 3 4 extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); # 3 "obj_reloc.c" 2 struct obj_symbol { struct obj_symbol *next; unsigned int size; }; struct common_entry { struct common_entry *next; struct obj_symbol *sym; }; extern void do_something(struct obj_symbol *sym); void obj_allocate_commons(struct obj_symbol *sym) { struct common_entry *common_head = ((void *)0); for (; sym ; sym = sym->next) { struct common_entry **p, *n; for (p = &common_head; *p ; p = &(*p)->next) if (sym->size <= (*p)->sym->size) break; n = __builtin_alloca (sizeof(*n)); n->next = *p; n->sym = sym; *p = n; } { struct common_entry *p; for (p = common_head; p ; p = p->next) do_something(p->sym); } }