summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-gc/gc.c
blob: 3b0e655c750f32249c17eb7b6c19ee9067829d14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
int unused_var = 7;
int used_var = 7;

int
unused_func (int v)
{
  return 3 * unused_var;
}

int
__attribute__((noinline))
used_func (int v)
{
  return 2 * used_var;
}

int
main (void)
{
  return used_func (5);
}

void
dummy_func (void)
{
  /* These are here in case the target prepends an underscore to
     the start of function names.  They are inside a dummy function
     so that they will appear at the end of gcc's assembler output,
     after the definitions of main() and used_func(), rather than
     at the beginning of the file.  */

  __asm__(".ifndef main\n\
.global main\n\
.set main, _main\n\
.endif");

  __asm__(".ifndef used_func\n\
.global used_func\n\
.set used_func, _used_func\n\
.endif");
}