Fixed a standard noncompliance: In C99 and above there must be whitespace

between a name of an object like macro and its replacement list.
This commit is contained in:
Kugel Fuhr 2024-09-11 19:21:19 +02:00
parent 2f6f5f0da1
commit 70ca6d4200

View File

@ -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