From 44ed91a1d664478bb2f6f2e277988908ce3675a5 Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Sun, 29 Oct 2000 11:37:18 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/cppmacro.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) 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)); -- 2.30.2