aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8.3/boehm-gc/testsuite/boehm-gc.lib/staticrootstest.c
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2016-02-24 13:48:45 -0800
committerDan Albert <danalbert@google.com>2016-02-24 13:51:18 -0800
commitb9de1157289455b0ca26daff519d4a0ddcd1fa13 (patch)
tree4c56cc0a34b91f17033a40a455f26652304f7b8d /gcc-4.8.3/boehm-gc/testsuite/boehm-gc.lib/staticrootstest.c
parent098157a754787181cfa10e71325832448ddcea98 (diff)
downloadtoolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.tar.gz
toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.tar.bz2
toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.zip
Update 4.8.1 to 4.8.3.
My previous drop was the wrong version. The platform mingw is currently using 4.8.3, not 4.8.1 (not sure how I got that wrong). From ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.bz2. Bug: http://b/26523949 Change-Id: Id85f1bdcbbaf78c7d0b5a69e74c798a08f341c35
Diffstat (limited to 'gcc-4.8.3/boehm-gc/testsuite/boehm-gc.lib/staticrootstest.c')
-rw-r--r--gcc-4.8.3/boehm-gc/testsuite/boehm-gc.lib/staticrootstest.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/gcc-4.8.3/boehm-gc/testsuite/boehm-gc.lib/staticrootstest.c b/gcc-4.8.3/boehm-gc/testsuite/boehm-gc.lib/staticrootstest.c
new file mode 100644
index 000000000..a029ccf42
--- /dev/null
+++ b/gcc-4.8.3/boehm-gc/testsuite/boehm-gc.lib/staticrootstest.c
@@ -0,0 +1,48 @@
+/* { dg-add-shlib "staticrootslib.c" } */
+
+#include <stdio.h>
+
+#ifndef GC_DEBUG
+# define GC_DEBUG
+#endif
+
+#include "gc.h"
+#include "gc_backptr.h"
+
+struct treenode {
+ struct treenode *x;
+ struct treenode *y;
+} * root[10];
+
+static char *staticroot = 0;
+
+extern struct treenode * libsrl_mktree(int i);
+extern void * libsrl_init(void);
+extern void * libsrl_collect (void);
+
+int main(void)
+{
+ int i;
+ staticroot = libsrl_init();
+ for (i = 0; i < sizeof(struct treenode); ++i) {
+ staticroot[i] = 0x42;
+ }
+ libsrl_collect();
+ for (i = 0; i < 10; ++i) {
+ root[i] = libsrl_mktree(12);
+ libsrl_collect();
+ }
+ for (i = 0; i < sizeof(struct treenode); ++i) {
+ if (staticroot[i] != 0x42)
+ return -1;
+ }
+ for (i = 0; i < 10; ++i) {
+ root[i] = libsrl_mktree(12);
+ libsrl_collect();
+ }
+ for (i = 0; i < sizeof(struct treenode); ++i) {
+ if (staticroot[i] != 0x42)
+ return -1;
+ }
+ return 0;
+}