From: Neil Booth Date: Sun, 29 Oct 2000 11:37:18 +0000 (+0000) Subject: cppmacro.c (_cpp_create_definition): Optimize the case of a macro defined to itself. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=44ed91a1d664478bb2f6f2e277988908ce3675a5;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2172a8e272a..af210008cbe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-10-29 Neil Booth + + * cppmacro.c (_cpp_create_definition): Optimize the case of + a macro defined to itself. + 2000-10-29 Neil Booth * cpplex.c (save_comment): Don't store new lines in C++ comments. diff --git a/gcc/cppmacro.c b/gcc/cppmacro.c index 58d3020797c..35e66f48054 100644 --- a/gcc/cppmacro.c +++ b/gcc/cppmacro.c @@ -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));