This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

pragma root fix


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 */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]