* c-typeck.c (warn_for_assignment): Don't print argument number, if zero.
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 26 Oct 2002 01:18:52 +0000 (01:18 +0000)
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 26 Oct 2002 01:18:52 +0000 (01:18 +0000)
Fixes gcc.dg/warn-1.c.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58550 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-typeck.c

index 9b33a9c..4227a7c 100644 (file)
@@ -1,3 +1,7 @@
+2002-10-25  Mike Stump  <mrs@apple.com>
+
+       * c-typeck.c (warn_for_assignment): Don't print argument number, if zero.
+
 Sat Oct 26 01:44:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
 
        * toplev.c (dump_file_index): Add DFI_ce3.
index b5bc210..0915b10 100644 (file)
@@ -4309,7 +4309,8 @@ c_convert_parm_for_inlining (parm, value, fn)
 
 /* Print a warning using MSGID.
    It gets OPNAME as its one parameter.
-   If OPNAME is null, it is replaced by "passing arg ARGNUM of `FUNCTION'".
+   if OPNAME is null and ARGNUM is 0, it is replaced by "passing arg of `FUNCTION'".
+   Otherwise if OPNAME is null, it is replaced by "passing arg ARGNUM of `FUNCTION'".
    FUNCTION and ARGNUM are handled specially if we are building an
    Objective-C selector.  */
 
@@ -4330,7 +4331,27 @@ warn_for_assignment (msgid, opname, function, argnum)
          function = selector;
          argnum -= 2;
        }
-      if (function)
+      if (argnum == 0)
+       {
+         if (function)
+           {       
+             /* Function name is known; supply it.  */
+             const char *const argstring = _("passing arg of `%s'");
+             new_opname = (char *) alloca (IDENTIFIER_LENGTH (function)
+                                           + strlen (argstring) + 1
+                                           + 1);
+             sprintf (new_opname, argstring,
+                      IDENTIFIER_POINTER (function));
+           }
+         else
+           {
+             /* Function name unknown (call through ptr).  */
+             const char *const argnofun = _("passing arg of pointer to function");
+             new_opname = (char *) alloca (strlen (argnofun) + 1 + 1);
+             sprintf (new_opname, argnofun);
+           }
+       }
+      else if (function)
        {
          /* Function name is known; supply it.  */
          const char *const argstring = _("passing arg %d of `%s'");