summaryrefslogtreecommitdiff
path: root/gcc/c-pragma.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-18 18:54:36 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-18 18:54:36 +0000
commita4f66bee966b2232f3d2bc30d11abadde4be94cc (patch)
tree873184a4e65c4fe3544f6b4689d5bacb6ebed1d7 /gcc/c-pragma.c
parent006523dc4793702f35c330af3b9095593c316b0e (diff)
downloadgcc-a4f66bee966b2232f3d2bc30d11abadde4be94cc.tar.gz
* c-pragma.c (mark_align_stack): New.
(init_pragma): New. * c-pragma.h (init_pragma): Declare it. * c-lex.c (init_parse): Call it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29502 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-pragma.c')
-rw-r--r--gcc/c-pragma.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/c-pragma.c b/gcc/c-pragma.c
index c002587b4f1..ba0c8367390 100644
--- a/gcc/c-pragma.c
+++ b/gcc/c-pragma.c
@@ -512,3 +512,27 @@ handle_pragma_token (string, token)
return 1;
}
#endif /* HANDLE_GENERIC_PRAGMAS */
+
+#ifdef HANDLE_PRAGMA_PACK_PUSH_POP
+static void
+mark_align_stack (p)
+ void *p;
+{
+ align_stack *a = (align_stack *) p;
+
+ while (a)
+ {
+ ggc_mark_tree (a->id);
+ a = a->prev;
+ }
+}
+#endif
+
+void
+init_pragma ()
+{
+#ifdef HANDLE_PRAGMA_PACK_PUSH_POP
+ ggc_add_root (&alignment_stack, 1, sizeof(alignment_stack),
+ mark_align_stack);
+#endif
+}