Commit 568767a6 by Richard Henderson Committed by Richard Henderson

c-pragma.c (mark_align_stack): New.

        * 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
parent 4a8021dc
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> Sat Sep 18 15:20:38 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
* configure.in: Pick up thread library on Solaris/x86 just * configure.in: Pick up thread library on Solaris/x86 just
......
...@@ -254,6 +254,7 @@ init_parse (filename) ...@@ -254,6 +254,7 @@ init_parse (filename)
#endif #endif
init_lex (); init_lex ();
init_pragma ();
return filename; return filename;
} }
......
...@@ -512,3 +512,27 @@ handle_pragma_token (string, token) ...@@ -512,3 +512,27 @@ handle_pragma_token (string, token)
return 1; return 1;
} }
#endif /* HANDLE_GENERIC_PRAGMAS */ #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
}
...@@ -98,4 +98,7 @@ enum pragma_state ...@@ -98,4 +98,7 @@ enum pragma_state
extern int handle_pragma_token PROTO((const char *, tree)); extern int handle_pragma_token PROTO((const char *, tree));
#endif /* HANDLE_GENERIC_PRAGMAS */ #endif /* HANDLE_GENERIC_PRAGMAS */
extern void init_pragma PROTO((void));
#endif /* _C_PRAGMA_H */ #endif /* _C_PRAGMA_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment