621d1353bbabae033889d6b32409aba90c3773ba
[oota-llvm.git] / test / CFrontend / 2007-09-20-GcrootAttribute.c
1 // RUN: %llvmgcc -S -emit-llvm %s -o - | grep llvm.gcroot
2 // RUN: %llvmgcc -S -emit-llvm %s -o - | grep llvm.gcroot | count 6
3
4 typedef struct foo_s
5 {
6   int a;
7 } foo, __attribute__ ((gcroot)) *foo_p;
8
9 foo my_foo;
10
11 int alpha ()
12 {
13   foo my_foo2 = my_foo;
14   
15   return my_foo2.a;
16 }
17
18 int bar (foo a)
19 {
20   foo_p b;
21   return b->a;
22 }
23
24 foo_p baz (foo_p a, foo_p b, foo_p *c)
25 {
26   a = b = *c;
27   return a;
28 }