cppmacro.c (_cpp_create_definition): Optimize the case of a macro defined to itself.

* cppmacro.c (_cpp_create_definition): Optimize the case of
        a macro defined to itself.

From-SVN: r37123
This commit is contained in:
Neil Booth 2000-10-29 11:37:18 +00:00 committed by Neil Booth
parent 3542203b30
commit 44ed91a1d6
2 changed files with 10 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2000-10-29 Neil Booth <neilb@earthling.net>
* cppmacro.c (_cpp_create_definition): Optimize the case of
a macro defined to itself.
2000-10-29 Neil Booth <neilb@earthling.net>
* cpplex.c (save_comment): Don't store new lines in C++ comments.

View file

@ -1403,7 +1403,6 @@ _cpp_create_definition (pfile, node)
macro->paramc = 0;
macro->fun_like = 0;
macro->var_args = 0;
macro->disabled = 0;
macro->count = 0;
macro->expansion = (cpp_token *) POOL_FRONT (&pfile->macro_pool);
@ -1485,6 +1484,11 @@ _cpp_create_definition (pfile, node)
/* Clear the whitespace flag from the leading token. */
macro->expansion[0].flags &= ~PREV_WHITE;
/* Implement the macro-defined-to-itself optimisation. */
macro->disabled = (macro->count == 1 && !macro->fun_like
&& macro->expansion[0].type == CPP_NAME
&& macro->expansion[0].val.node == node);
/* Commit the memory. */
POOL_COMMIT (&pfile->macro_pool, macro->count * sizeof (cpp_token));