gcroot testcase, patch by Eric Christopher.
authorChris Lattner <sabre@nondot.org>
Fri, 21 Sep 2007 17:48:39 +0000 (17:48 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 21 Sep 2007 17:48:39 +0000 (17:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42198 91177308-0d34-0410-b5e6-96231b3b80d8

test/CFrontend/2007-09-20-GcrootAttribute.c [new file with mode: 0644]

diff --git a/test/CFrontend/2007-09-20-GcrootAttribute.c b/test/CFrontend/2007-09-20-GcrootAttribute.c
new file mode 100644 (file)
index 0000000..aea9d54
--- /dev/null
@@ -0,0 +1,28 @@
+// RUN: %llvmgxx -S -emit-llvm %s -o - | grep llvm.gcroot
+// RUN: %llvmgxx -S -emit-llvm %s -o - | 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;
+}