// RUN: %llvmgcc -S -emit-llvm %s -o - | grep llvm.gcroot | |
// RUN: %llvmgcc -S -emit-llvm %s -o - | grep llvm.gcroot | count 6 | |
// RUN: %llvmgcc -S -emit-llvm %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; | |
} |