From 94d681a0a7915475bff8953cc5e5abb182f2022a Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Mon, 28 Nov 1994 16:53:27 -0800 Subject: [PATCH] (create_definition): Error if comma not followed by an identifier. (create_definition): Error if comma not followed by an identifier. (collect_expansion): Error if # used in macro with no arguments. From-SVN: r8567 --- gcc/cccp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/cccp.c b/gcc/cccp.c index 58a82363c2b..3e6379a32d0 100644 --- a/gcc/cccp.c +++ b/gcc/cccp.c @@ -5375,6 +5375,11 @@ create_definition (buf, limit, op) if (*bp == ',') { bp++; SKIP_WHITE_SPACE (bp); + /* A comma at this point can only be followed by an identifier. */ + if (!is_idstart[*bp]) { + error ("badly punctuated parameter list in `#define'"); + goto nope; + } } if (bp >= limit) { error ("unterminated parameter list in `#define'"); @@ -5776,7 +5781,7 @@ collect_expansion (buf, end, nargs, arglist) Don't leave the # in the expansion. */ exp_p--; SKIP_WHITE_SPACE (p); - if (p == limit || ! is_idstart[*p]) + if (p == limit || ! is_idstart[*p] || nargs == 0) error ("`#' operator is not followed by a macro argument name"); else stringify = p; -- 2.30.2