aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNeil Booth <neil@cat.daikokuya.demon.co.uk>2001-06-23 11:34:41 +0000
committerNeil Booth <neil@gcc.gnu.org>2001-06-23 11:34:41 +0000
commit7096171b54c3c65346c5f1a3e8caa81994a9af4c (patch)
tree75b264967bade84449656edb690611175b697fb9 /gcc
parentbc04d12c309d59314c19ecb7e103fc50852c793c (diff)
downloadgcc-7096171b54c3c65346c5f1a3e8caa81994a9af4c.zip
gcc-7096171b54c3c65346c5f1a3e8caa81994a9af4c.tar.gz
gcc-7096171b54c3c65346c5f1a3e8caa81994a9af4c.tar.bz2
cppmacro.c (make_string_token): Avoid warning.
* 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. From-SVN: r43528
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/cppmacro.c20
-rw-r--r--gcc/cppmain.c6
3 files changed, 25 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 29d1927..442c35d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2001-06-23 Neil Booth <neil@cat.daikokuya.demon.co.uk>
+
+ * 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 <jh@suse.cz>
* flow.c (attempt_auto_inc, try_pre_increment_1): Fix typo.
diff --git a/gcc/cppmacro.c b/gcc/cppmacro.c
index d8ef424..e630850 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 0c5dc3d..b946a8e 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++;