From 70ca6d420063c0fe0b9abb731232ca533a1d958e Mon Sep 17 00:00:00 2001 From: Kugel Fuhr <98353208+kugelfuhr@users.noreply.github.com> Date: Wed, 11 Sep 2024 19:21:19 +0200 Subject: [PATCH] Fixed a standard noncompliance: In C99 and above there must be whitespace between a name of an object like macro and its replacement list. --- src/cc65/preproc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/cc65/preproc.c b/src/cc65/preproc.c index 96db1d8fe..d033520b8 100644 --- a/src/cc65/preproc.c +++ b/src/cc65/preproc.c @@ -2640,6 +2640,18 @@ static void DoDefine (void) goto Error_Handler; } NextChar (); + + } else { + + /* Object like macro. Check ISO/IEC 9899:1999 (E) 6.10.3p3: + ** "There shall be white-space between the identifier and the + ** replacement list in the definition of an object-like macro." + ** Note: C89 doesn't have this constraint. + */ + if (Std == STD_C99 && !IsSpace (CurC)) { + PPWarning ("ISO C99 requires whitespace after the macro name"); + } + } /* Remove whitespace and comments from the line, store the preprocessed