1int unused_var = 7; 2int used_var = 7; 3 4int 5unused_func (int v) 6{ 7 return 3 * unused_var; 8} 9 10int 11__attribute__((noinline)) 12used_func (int v) 13{ 14 return 2 * used_var; 15} 16 17int 18main (void) 19{ 20 return used_func (5); 21} 22 23void 24dummy_func (void) 25{ 26 /* These are here in case the target prepends an underscore to 27 the start of function names. They are inside a dummy function 28 so that they will appear at the end of gcc's assembler output, 29 after the definitions of main() and used_func(), rather than 30 at the beginning of the file. */ 31 32 __asm__(".ifndef main\n\ 33.global main\n\ 34.set main, _main\n\ 35.endif"); 36 37 __asm__(".ifndef used_func\n\ 38.global used_func\n\ 39.set used_func, _used_func\n\ 40.endif"); 41} 42