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
diff --git a/libcpp/macro.c b/libcpp/macro.c
index 016754b..edc2856 100644
--- a/libcpp/macro.c
+++ b/libcpp/macro.c
@@ -1009,6 +1009,17 @@
 	  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))