This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH C/C++] Fix some diagnostics problems


On 06/11/2010 06:03 PM, Manuel LÃpez-IbÃÃez wrote:
On 11 June 2010 11:54, Shujing Zhao <pearly.zhao@oracle.com> wrote:
I agree with your last comment to use %qP for parmnum.

About this issue, I think the comment is not wrong when FNDECL is non-NULL.
How about to add the case when FNDECL is NULL? just as the following:

/* If FNDECL is non-NULL, we are doing the conversion in order to pass the
PARMNUMth argument of FNDECL. If FNDECL is NULL, we are doing the conversion
in function pointer argument passing, conversion in initialization, etc. */

If you agree with it, I'll submit the patch.

In that function, fndecl is only used for providing better diagnostics. Right now, the diagnostic is less informative when using a pointer than when not. I think it should be equally informative. That said, your proposal is better than nothing of course.

Manuel.
Jason,

This patch is to use %qP for parnum and fix the comment of convert_for_assignment and convert_for_initialization.

Retested on 1686-pc-linux-gnu. Is it ok?

Thanks
Pearly
2010-06-12  Shujing Zhao  <pearly.zhao@oracle.com>

	* typeck.c (convert_for_assignment): Fix comment. Change message
	format from %d to %qP.
	(convert_for_initialization): Fix comment.

Index: typeck.c
===================================================================
--- typeck.c	(revision 160644)
+++ typeck.c	(working copy)
@@ -7186,10 +7186,11 @@ delta_from_ptrmemfunc (tree t)
 }
 
 /* Convert value RHS to type TYPE as preparation for an assignment to
-   an lvalue of type TYPE.  ERRTYPE is a string to use in error
-   messages: "assignment", "return", etc.  If FNDECL is non-NULL, we
-   are doing the conversion in order to pass the PARMNUMth argument of
-   FNDECL.  */
+   an lvalue of type TYPE.  ERRTYPE indicates what kind of error the
+   implicit conversion is.  If FNDECL is non-NULL, we are doing the
+   conversion in order to pass the PARMNUMth argument of FNDECL.
+   If FNDECL is NULL, we are doing the conversion in function pointer
+   argument passing, conversion in initialization, etc. */
 
 static tree
 convert_for_assignment (tree type, tree rhs,
@@ -7331,7 +7332,7 @@ convert_for_assignment (tree type, tree 
 	    case ICR_DEFAULT_ARGUMENT:
 	      if (fndecl)
 		warning (OPT_Wmissing_format_attribute,
-			 "parameter %d of %qD might be a candidate "
+			 "parameter %qP of %qD might be a candidate "
 			 "for a format attribute", parmnum, fndecl);
 	      else
 		warning (OPT_Wmissing_format_attribute,
@@ -7386,7 +7387,7 @@ convert_for_assignment (tree type, tree 
 
 /* Convert RHS to be of type TYPE.
    If EXP is nonzero, it is the target of the initialization.
-   ERRTYPE is a string to use in error messages.
+   ERRTYPE indicates what kind of error the implicit conversion is.
 
    Two major differences between the behavior of
    `convert_for_assignment' and `convert_for_initialization'

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]