| // RUN: %llvmgcc -S %s -o - | grep llvm.gcroot | |
| // RUN: %llvmgcc -S %s -o - | grep llvm.gcroot | count 6 | |
| // RUN: %llvmgcc -S %s -o - | llvm-as | |
| typedef struct foo_s | |
| { | |
| int a; | |
| } foo, __attribute__ ((gcroot)) *foo_p; | |
| foo my_foo; | |
| int alpha () | |
| { | |
| foo my_foo2 = my_foo; | |
| return my_foo2.a; | |
| } | |
| int bar (foo a) | |
| { | |
| foo_p b; | |
| return b->a; | |
| } | |
| foo_p baz (foo_p a, foo_p b, foo_p *c) | |
| { | |
| a = b = *c; | |
| return a; | |
| } |