re PR preprocessor/33305 (We should warn about empty macro arguments)

2008-06-13  Andrew Haley  <aph@redhat.com>

        PR preprocessor/33305
        * macro.c (replace_args): Print a warning for empty macro
        arguments in C89 and C++.

From-SVN: r137414
This commit is contained in:
Andrew Haley 2008-07-03 10:31:50 +00:00 committed by Andrew Haley
parent 70d3fcabfd
commit e85edc9ed5
2 changed files with 17 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2008-06-13 Andrew Haley <aph@redhat.com>
PR preprocessor/33305
* macro.c (replace_args): Print a warning for empty macro
arguments in C89 and C++.
2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.

View File

@ -1009,6 +1009,17 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, macro_arg
if (src->flags & PASTE_LEFT)
paste_flag = dest - 1;
}
else if (CPP_PEDANTIC (pfile) && ! macro->syshdr
&& ! CPP_OPTION (pfile, c99)
&& ! cpp_in_system_header (pfile))
{
cpp_error (pfile, CPP_DL_PEDWARN,
"invoking macro %s argument %d: "
"empty macro arguments are undefined"
" in ISO C90 and ISO C++98",
NODE_NAME (node),
src->val.arg_no);
}
/* Avoid paste on RHS (even case count == 0). */
if (!pfile->state.in_directive && !(src->flags & PASTE_LEFT))