* cppmacro.c (_cpp_create_definition): Optimize the case of
a macro defined to itself.
From-SVN: r37123
+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.
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);
/* 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));