This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
pragma root fix
- To: gcc-patches at gcc dot gnu dot org
- Subject: pragma root fix
- From: Richard Henderson <rth at cygnus dot com>
- Date: Sat, 18 Sep 1999 11:55:31 -0700
Missed some roots wrt pragma.
r~
* c-pragma.c (mark_align_stack): New.
(init_pragma): New.
* c-pragma.h (init_pragma): Declare it.
* c-lex.c (init_parse): Call it.
Index: c-lex.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/c-lex.c,v
retrieving revision 1.62
diff -c -p -d -r1.62 c-lex.c
*** c-lex.c 1999/09/16 00:54:30 1.62
--- c-lex.c 1999/09/18 18:14:24
*************** init_parse (filename)
*** 254,259 ****
--- 254,260 ----
#endif
init_lex ();
+ init_pragma ();
return filename;
}
Index: c-pragma.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/c-pragma.c,v
retrieving revision 1.21
diff -c -p -d -r1.21 c-pragma.c
*** c-pragma.c 1999/09/14 18:19:08 1.21
--- c-pragma.c 1999/09/18 18:14:24
*************** handle_pragma_token (string, token)
*** 512,514 ****
--- 512,538 ----
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
+ }
Index: c-pragma.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/c-pragma.h,v
retrieving revision 1.10
diff -c -p -d -r1.10 c-pragma.h
*** c-pragma.h 1999/09/09 04:00:35 1.10
--- c-pragma.h 1999/09/18 18:14:24
*************** enum pragma_state
*** 98,101 ****
--- 98,104 ----
extern int handle_pragma_token PROTO((const char *, tree));
#endif /* HANDLE_GENERIC_PRAGMAS */
+
+ extern void init_pragma PROTO((void));
+
#endif /* _C_PRAGMA_H */