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:
parent
3542203b30
commit
44ed91a1d6
2 changed files with 10 additions and 1 deletions
|
@ -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.
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue