1 2005-12-20 Richard Henderson <rth@redhat.com>
4 * directives.c (run_directive): Remove pragma hacks.
5 (destringize_and_run): Save tokens for deferred pragmas.
6 * internal.h (_cpp_push_token_context): Declare.
7 * macro.c (builtin_macro): Remove pragma token hack.
8 (_cpp_push_token_context): Rename from push_token_context and export.
10 2005-09-29 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
11 Richard Henderson <rth@redhat.com>
13 * directives.c (struct pragma_entry): Add is_deferred. Add ident
15 (end_directive): Don't eat the line if in_deferred_pragma.
16 (insert_pragma_entry): Remove.
17 (new_pragma_entry): New.
18 (register_pragma_1): Split out of register_pragma. Only handle
19 the lookup tree and return the new entry.
20 (cpp_register_pragma): Fill in the pragma entry here.
21 (cpp_register_deferred_pragma): New.
22 (register_pragma_internal): New.
23 (_cpp_init_internal_pragmas): Use register_pragma_internal.
24 (do_pragma): Allow pragma expansion after namespace. For deferred
25 pragmas, don't slurp the line into a string.
26 (cpp_handle_deferred_pragma): Remove.
27 * internal.h (struct lexer_state): Add pragma_allow_expansion.
28 * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
29 a token. Update the line number correctly if so.
30 (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
31 (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.