Index: test/CFrontend/2007-09-20-GcrootAttribute.c =================================================================== --- test/CFrontend/2007-09-20-GcrootAttribute.c (revision 0) +++ test/CFrontend/2007-09-20-GcrootAttribute.c (revision 0) @@ -0,0 +1,28 @@ +// RUN: %llvmgxx -c -emit-llvm %s -o - | llvm-dis | grep llvm.gcroot +// RUN: %llvmgxx -c -emit-llvm %s -o - | llvm-dis | grep llvm.gcroot | count 6 + +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; +}