* c-pragma.c (mark_align_stack): New.
(init_pragma): New.
* c-pragma.h (init_pragma): Declare it.
* c-lex.c (init_parse): Call it.
From-SVN: r29502
+Sat Sep 18 11:52:43 1999 Richard Henderson <rth@cygnus.com>
+
+ * c-pragma.c (mark_align_stack): New.
+ (init_pragma): New.
+ * c-pragma.h (init_pragma): Declare it.
+ * c-lex.c (init_parse): Call it.
+
Sat Sep 18 15:20:38 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
* configure.in: Pick up thread library on Solaris/x86 just
#endif
init_lex ();
+ init_pragma ();
return filename;
}
return 1;
}
#endif /* HANDLE_GENERIC_PRAGMAS */
+\f
+#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
+}
extern int handle_pragma_token PROTO((const char *, tree));
#endif /* HANDLE_GENERIC_PRAGMAS */
+
+extern void init_pragma PROTO((void));
+
#endif /* _C_PRAGMA_H */