From 4d9e9a289aeea7a4f28025731bad1279e2bdf92d Mon Sep 17 00:00:00 2001 From: neil Date: Sat, 23 Jun 2001 11:34:41 +0000 Subject: [PATCH] * cppmacro.c (make_string_token): Avoid warning. (cpp_macro_definition): Prepend the macro name. Update comments. * cppmain.c (cb_define, dump_macro): Update for changes to cpp_macro_definition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43528 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++++++ gcc/cppmacro.c | 20 +++++++++++++------- gcc/cppmain.c | 6 ++++-- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 29d192748d8..442c35d7f03 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2001-06-23 Neil Booth + + * cppmacro.c (make_string_token): Avoid warning. + (cpp_macro_definition): Prepend the macro name. Update + comments. + * cppmain.c (cb_define, dump_macro): Update for changes + to cpp_macro_definition. + Sat Jun 23 10:20:03 CEST 2001 Jan Hubicka * flow.c (attempt_auto_inc, try_pre_increment_1): Fix typo. diff --git a/gcc/cppmacro.c b/gcc/cppmacro.c index d8ef424a96b..e630850106a 100644 --- a/gcc/cppmacro.c +++ b/gcc/cppmacro.c @@ -110,7 +110,7 @@ make_string_token (pool, token, text, len) token->type = CPP_STRING; token->val.str.text = buf; token->val.str.len = quote_string (buf, text, len) - buf; - token->val.str.text[token->val.str.len] = '\0'; + buf[token->val.str.len] = '\0'; token->flags = 0; } @@ -1549,9 +1549,10 @@ check_trad_stringification (pfile, macro, string) } } -/* Returns the expansion of a macro, in a format suitable to be read - back in again, and therefore also for DWARF 2 debugging info. - Caller is expected to generate the "#define NAME" bit. The +/* Returns the name, arguments and expansion of a macro, in a format + suitable to be read back in again, and therefore also for DWARF 2 + debugging info. e.g. "PASTE(X, Y) X ## Y", or "MACNAME EXPANSION". + Caller is expected to generate the "#define" bit if needed. The returned text is temporary, and automatically freed later. */ const unsigned char * @@ -1565,15 +1566,16 @@ cpp_macro_definition (pfile, node) if (node->type != NT_MACRO || (node->flags & NODE_BUILTIN)) { - cpp_ice (pfile, "invalid hash type %d in dump_definition", node->type); + cpp_ice (pfile, "invalid hash type %d in cpp_macro_definition", node->type); return 0; } /* Calculate length. */ - len = 1; /* ' ' */ + len = NODE_LEN (node) + 1; /* ' ' */ if (macro->fun_like) { - len += 3; /* "()" plus possible final "." of ellipsis. */ + len += 3; /* "()" plus possible final "." of named + varargs (we have + 2 below). */ for (i = 0; i < macro->paramc; i++) len += NODE_LEN (macro->params[i]) + 2; /* ", " */ } @@ -1597,7 +1599,11 @@ cpp_macro_definition (pfile, node) pfile->macro_buffer = (U_CHAR *) xrealloc (pfile->macro_buffer, len); pfile->macro_buffer_len = len; } + + /* Fill in the buffer. Start with the macro name. */ buffer = pfile->macro_buffer; + memcpy (buffer, NODE_NAME (node), NODE_LEN (node)); + buffer += NODE_LEN (node); /* Parameter names. */ if (macro->fun_like) diff --git a/gcc/cppmain.c b/gcc/cppmain.c index 0c5dc3d880f..b946a8e66ee 100644 --- a/gcc/cppmain.c +++ b/gcc/cppmain.c @@ -364,11 +364,13 @@ cb_define (pfile, node) cpp_hashnode *node; { maybe_print_line (cpp_get_line (pfile)->output_line); - fprintf (print.outf, "#define %s", NODE_NAME (node)); + fputs ("#define ", print.outf); /* -dD command line option. */ if (options->dump_macros == dump_definitions) fputs ((const char *) cpp_macro_definition (pfile, node), print.outf); + else + fputs ((const char *) NODE_NAME (node), print.outf); putc ('\n', print.outf); print.lineno++; @@ -446,7 +448,7 @@ dump_macro (pfile, node, v) { if (node->type == NT_MACRO && !(node->flags & NODE_BUILTIN)) { - fprintf (print.outf, "#define %s", NODE_NAME (node)); + fputs ("#define ", print.outf); fputs ((const char *) cpp_macro_definition (pfile, node), print.outf); putc ('\n', print.outf); print.lineno++; -- 2.11.0