Chris Lattner | 005609a | 2007-09-21 17:48:39 +0000 | [diff] [blame^] | 1 | // RUN: %llvmgxx -S -emit-llvm %s -o - | grep llvm.gcroot |
2 | // RUN: %llvmgxx -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 | } |