* diagnostic.c (warning): Accept parameter to classify warning option.
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 23 Apr 2005 21:29:07 +0000 (21:29 +0000)
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 23 Apr 2005 21:29:07 +0000 (21:29 +0000)
(warning0): New, for when a pointer to an error() like function is needed.
* errors.c (warning): Likewise.
* errors.h (warning, warning0): Adjust prototypes.
* toplev.h (warning, warning0): Likewise.

* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.

* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
config/darwin.c, config/darwin.h, config/h8300/h8300.c,
config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
config/rs6000/aix52.h, config/rs6000/darwin.h,
config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
config/stormy16/stormy16.c, config/v850/v850-c.c,
config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
callers.

* ada/misc.c: Adjust warning() callers.

* cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c,
cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c,
cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c,
cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers.

* fortran/trans-decl.c: Adjust warning() callers.

* java/class.c, java/decl.c, java/expr.c, java/jcf-io.c,
java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning()
callers.

* objc/objc-act.c: Adjust warning() callers.

* treelang/parse.y: Adjust warning() callers.

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

120 files changed:
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/misc.c
gcc/attribs.c
gcc/builtins.c
gcc/c-common.c
gcc/c-decl.c
gcc/c-format.c
gcc/c-gimplify.c
gcc/c-lex.c
gcc/c-objc-common.c
gcc/c-opts.c
gcc/c-parser.c
gcc/c-pragma.c
gcc/c-typeck.c
gcc/calls.c
gcc/cgraph.c
gcc/config/alpha/alpha.c
gcc/config/arc/arc.c
gcc/config/arm/arm.c
gcc/config/avr/avr.c
gcc/config/bfin/bfin.c
gcc/config/c4x/c4x-c.c
gcc/config/c4x/c4x.c
gcc/config/cris/cris.c
gcc/config/darwin-c.c
gcc/config/darwin.c
gcc/config/darwin.h
gcc/config/h8300/h8300.c
gcc/config/i386/cygming.h
gcc/config/i386/djgpp.h
gcc/config/i386/i386.c
gcc/config/i386/winnt.c
gcc/config/ia64/ia64-c.c
gcc/config/ia64/ia64.c
gcc/config/ip2k/ip2k.c
gcc/config/m32r/m32r.c
gcc/config/m68hc11/m68hc11.c
gcc/config/m68k/m68k.c
gcc/config/mcore/mcore.c
gcc/config/mips/mips.c
gcc/config/mmix/mmix.c
gcc/config/ns32k/ns32k.c
gcc/config/pa/pa-hpux11.h
gcc/config/pa/pa.c
gcc/config/rs6000/aix43.h
gcc/config/rs6000/aix51.h
gcc/config/rs6000/aix52.h
gcc/config/rs6000/darwin.h
gcc/config/rs6000/rs6000-c.c
gcc/config/rs6000/rs6000.c
gcc/config/s390/s390.c
gcc/config/sh/sh.c
gcc/config/sh/sh.h
gcc/config/sh/symbian.c
gcc/config/sol2-c.c
gcc/config/sol2.c
gcc/config/stormy16/stormy16.c
gcc/config/v850/v850-c.c
gcc/config/v850/v850.c
gcc/config/xtensa/xtensa.c
gcc/coverage.c
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/cvt.c
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/except.c
gcc/cp/friend.c
gcc/cp/init.c
gcc/cp/lex.c
gcc/cp/mangle.c
gcc/cp/method.c
gcc/cp/name-lookup.c
gcc/cp/parser.c
gcc/cp/repo.c
gcc/cp/rtti.c
gcc/cp/tree.c
gcc/cp/typeck.c
gcc/cp/typeck2.c
gcc/diagnostic.c
gcc/emit-rtl.c
gcc/errors.c
gcc/errors.h
gcc/fold-const.c
gcc/fortran/ChangeLog
gcc/fortran/trans-decl.c
gcc/function.c
gcc/gcse.c
gcc/genautomata.c
gcc/haifa-sched.c
gcc/java/ChangeLog
gcc/java/class.c
gcc/java/decl.c
gcc/java/expr.c
gcc/java/jcf-io.c
gcc/java/jcf-parse.c
gcc/java/jv-scan.c
gcc/java/parse.y
gcc/objc/ChangeLog
gcc/objc/objc-act.c
gcc/opts.c
gcc/passes.c
gcc/regclass.c
gcc/reload1.c
gcc/stmt.c
gcc/stor-layout.c
gcc/toplev.c
gcc/toplev.h
gcc/tree-cfg.c
gcc/tree-dump.c
gcc/tree-inline.c
gcc/tree-mudflap.c
gcc/tree-optimize.c
gcc/tree-ssa.c
gcc/tree.c
gcc/treelang/ChangeLog
gcc/treelang/parse.y
gcc/varasm.c

index fc5453c..a049544 100644 (file)
@@ -1,3 +1,38 @@
+2005-04-23  DJ Delorie  <dj@redhat.com>
+
+       * diagnostic.c (warning): Accept parameter to classify warning option.
+       (warning0): New, for when a pointer to an error() like function is needed.
+       * errors.c (warning): Likewise.
+       * errors.h (warning, warning0): Adjust prototypes.
+       * toplev.h (warning, warning0): Likewise.
+
+       * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
+       c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
+       c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
+       fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
+       genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
+       reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
+       tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
+       tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
+
+       * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
+       config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
+       config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
+       config/darwin.c, config/darwin.h, config/h8300/h8300.c,
+       config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
+       config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
+       config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
+       config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
+       config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
+       config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
+       config/rs6000/aix52.h, config/rs6000/darwin.h,
+       config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
+       config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
+       config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
+       config/stormy16/stormy16.c, config/v850/v850-c.c,
+       config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
+       callers.
+       
 2005-04-23  Richard Henderson  <rth@redhat.com>
 
         PR rtl-opt/21102
index 06bf37b..e1833d6 100644 (file)
@@ -1,3 +1,7 @@
+2005-04-23  DJ Delorie  <dj@redhat.com>
+
+       * misc.c: Adjust warning() callers.
+
 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
 
         PR ada/18847
index 39feb1c..b8a3299 100644 (file)
@@ -301,7 +301,7 @@ gnat_handle_option (size_t scode, const char *arg, int value ATTRIBUTE_UNUSED)
       break;
 
     case OPT_gant:
-      warning ("%<-gnat%> misspelled as %<-gant%>");
+      warning (0, "%<-gnat%> misspelled as %<-gant%>");
 
       /* ... fall through ... */
 
index fd11a96..7804728 100644 (file)
@@ -172,7 +172,7 @@ decl_attributes (tree *node, tree attributes, int flags)
 
       if (spec == NULL)
        {
-         warning ("%qs attribute directive ignored",
+         warning (0, "%qs attribute directive ignored",
                   IDENTIFIER_POINTER (name));
          continue;
        }
@@ -197,7 +197,7 @@ decl_attributes (tree *node, tree attributes, int flags)
            }
          else
            {
-             warning ("%qs attribute does not apply to types",
+             warning (0, "%qs attribute does not apply to types",
                       IDENTIFIER_POINTER (name));
              continue;
            }
@@ -243,7 +243,7 @@ decl_attributes (tree *node, tree attributes, int flags)
          if (TREE_CODE (*anode) != FUNCTION_TYPE
              && TREE_CODE (*anode) != METHOD_TYPE)
            {
-             warning ("%qs attribute only applies to function types",
+             warning (0, "%qs attribute only applies to function types",
                       IDENTIFIER_POINTER (name));
              continue;
            }
index af7721e..740961e 100644 (file)
@@ -351,7 +351,7 @@ c_strlen (tree src, int only_value)
      runtime.  */
   if (offset < 0 || offset > max)
     {
-      warning ("offset outside bounds of constant string");
+      warning (0, "offset outside bounds of constant string");
       return 0;
     }
 
@@ -945,7 +945,7 @@ expand_builtin_prefetch (tree arglist)
   /* Argument 1 must be either zero or one.  */
   if (INTVAL (op1) != 0 && INTVAL (op1) != 1)
     {
-      warning ("invalid second argument to %<__builtin_prefetch%>;"
+      warning (0, "invalid second argument to %<__builtin_prefetch%>;"
               " using zero");
       op1 = const0_rtx;
     }
@@ -960,7 +960,7 @@ expand_builtin_prefetch (tree arglist)
   /* Argument 2 must be 0, 1, 2, or 3.  */
   if (INTVAL (op2) < 0 || INTVAL (op2) > 3)
     {
-      warning ("invalid third argument to %<__builtin_prefetch%>; using zero");
+      warning (0, "invalid third argument to %<__builtin_prefetch%>; using zero");
       op2 = const0_rtx;
     }
 
@@ -4220,12 +4220,12 @@ gimplify_va_arg_expr (tree *expr_p, tree *pre_p, tree *post_p)
       /* Unfortunately, this is merely undefined, rather than a constraint
         violation, so we cannot make this an error.  If this call is never
         executed, the program is still strictly conforming.  */
-      warning ("%qT is promoted to %qT when passed through %<...%>",
+      warning (0, "%qT is promoted to %qT when passed through %<...%>",
               type, promoted_type);
       if (! gave_help)
        {
          gave_help = true;
-         warning ("(so you should pass %qT not %qT to %<va_arg%>)",
+         warning (0, "(so you should pass %qT not %qT to %<va_arg%>)",
                   promoted_type, type);
        }
 
@@ -4365,9 +4365,9 @@ expand_builtin_frame_address (tree fndecl, tree arglist)
       if (tem == NULL)
        {
          if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_FRAME_ADDRESS)
-           warning ("unsupported argument to %<__builtin_frame_address%>");
+           warning (0, "unsupported argument to %<__builtin_frame_address%>");
          else
-           warning ("unsupported argument to %<__builtin_return_address%>");
+           warning (0, "unsupported argument to %<__builtin_return_address%>");
          return const0_rtx;
        }
 
@@ -9486,7 +9486,7 @@ fold_builtin_next_arg (tree arglist)
     {
       /* Evidently an out of date version of <stdarg.h>; can't validate
         va_start's second argument, but can still work as intended.  */
-      warning ("%<__builtin_next_arg%> called without an argument");
+      warning (0, "%<__builtin_next_arg%> called without an argument");
       return true;
     }
   /* We use __builtin_va_start (ap, 0, 0) or __builtin_next_arg (0, 0)
@@ -9521,7 +9521,7 @@ fold_builtin_next_arg (tree arglist)
             argument.  We just warn and set the arg to be the last
             argument so that we will get wrong-code because of
             it.  */
-         warning ("second parameter of %<va_start%> not last named argument");
+         warning (0, "second parameter of %<va_start%> not last named argument");
        }
       /* We want to verify the second parameter just once before the tree
          optimizers are run and then avoid keeping it in the tree,
index ab23903..8aa0aea 100644 (file)
@@ -913,7 +913,7 @@ overflow_warning (tree value)
     {
       TREE_OVERFLOW (value) = 0;
       if (skip_evaluation == 0)
-       warning ("integer overflow in expression");
+       warning (0, "integer overflow in expression");
     }
   else if ((TREE_CODE (value) == REAL_CST
            || (TREE_CODE (value) == COMPLEX_CST
@@ -922,13 +922,13 @@ overflow_warning (tree value)
     {
       TREE_OVERFLOW (value) = 0;
       if (skip_evaluation == 0)
-       warning ("floating point overflow in expression");
+       warning (0, "floating point overflow in expression");
     }
   else if (TREE_CODE (value) == VECTOR_CST && TREE_OVERFLOW (value))
     {
       TREE_OVERFLOW (value) = 0;
       if (skip_evaluation == 0)
-       warning ("vector overflow in expression");
+       warning (0, "vector overflow in expression");
     }
 }
 
@@ -950,9 +950,9 @@ unsigned_conversion_warning (tree result, tree operand)
     {
       if (!int_fits_type_p (operand, c_common_signed_type (type)))
        /* This detects cases like converting -129 or 256 to unsigned char.  */
-       warning ("large integer implicitly truncated to unsigned type");
+       warning (0, "large integer implicitly truncated to unsigned type");
       else if (warn_conversion)
-       warning ("negative integer implicitly converted to unsigned type");
+       warning (0, "negative integer implicitly converted to unsigned type");
     }
 }
 
@@ -1010,7 +1010,7 @@ convert_and_check (tree type, tree expr)
                 || !constant_fits_type_p (expr,
                                           c_common_unsigned_type (type)))
                && skip_evaluation == 0)
-             warning ("overflow in implicit constant conversion");
+             warning (0, "overflow in implicit constant conversion");
        }
       else
        unsigned_conversion_warning (t, expr);
@@ -1146,7 +1146,7 @@ warn_for_collisions_1 (tree written, tree writer, struct tlist *list,
          && DECL_NAME (list->expr))
        {
          warned_ids = new_tlist (warned_ids, written, NULL_TREE);
-         warning ("operation on %qE may be undefined", list->expr);
+         warning (0, "operation on %qE may be undefined", list->expr);
        }
       list = list->next;
     }
@@ -1472,7 +1472,7 @@ check_case_bounds (tree type, tree orig_type,
   if (tree_int_cst_compare (case_low, min_value) < 0
       && tree_int_cst_compare (case_high, min_value) < 0)
     {
-      warning ("case label value is less than minimum value for type");
+      warning (0, "case label value is less than minimum value for type");
       return false;
     }
 
@@ -1480,7 +1480,7 @@ check_case_bounds (tree type, tree orig_type,
   if (tree_int_cst_compare (case_low, max_value) > 0
       && tree_int_cst_compare (case_high, max_value) > 0)
     {
-      warning ("case label value exceeds maximum value for type");
+      warning (0, "case label value exceeds maximum value for type");
       return false;
     }
 
@@ -1488,7 +1488,7 @@ check_case_bounds (tree type, tree orig_type,
   if (tree_int_cst_compare (case_high, min_value) >= 0
       && tree_int_cst_compare (case_low, min_value) < 0)
     {
-      warning ("lower value in case label range"
+      warning (0, "lower value in case label range"
               " less than minimum value for type");
       case_low = min_value;
     }
@@ -1497,7 +1497,7 @@ check_case_bounds (tree type, tree orig_type,
   if (tree_int_cst_compare (case_low, max_value) <= 0
       && tree_int_cst_compare (case_high, max_value) > 0)
     {
-      warning ("upper value in case label range"
+      warning (0, "upper value in case label range"
               " exceeds maximum value for type");
       case_high = max_value;
     }
@@ -2120,9 +2120,9 @@ shorten_compare (tree *op0_ptr, tree *op1_ptr, tree *restype_ptr,
       if (TREE_CODE (primop0) != INTEGER_CST)
        {
          if (val == truthvalue_false_node)
-           warning ("comparison is always false due to limited range of data type");
+           warning (0, "comparison is always false due to limited range of data type");
          if (val == truthvalue_true_node)
-           warning ("comparison is always true due to limited range of data type");
+           warning (0, "comparison is always true due to limited range of data type");
        }
 
       if (val != 0)
@@ -2192,7 +2192,7 @@ shorten_compare (tree *op0_ptr, tree *op1_ptr, tree *restype_ptr,
                  && !(TREE_CODE (primop0) == INTEGER_CST
                       && !TREE_OVERFLOW (convert (c_common_signed_type (type),
                                                   primop0))))
-               warning ("comparison of unsigned expression >= 0 is always true");
+               warning (0, "comparison of unsigned expression >= 0 is always true");
              value = truthvalue_true_node;
              break;
 
@@ -2201,7 +2201,7 @@ shorten_compare (tree *op0_ptr, tree *op1_ptr, tree *restype_ptr,
                  && !(TREE_CODE (primop0) == INTEGER_CST
                       && !TREE_OVERFLOW (convert (c_common_signed_type (type),
                                                   primop0))))
-               warning ("comparison of unsigned expression < 0 is always false");
+               warning (0, "comparison of unsigned expression < 0 is always false");
              value = truthvalue_false_node;
              break;
 
@@ -2381,7 +2381,7 @@ c_common_truthvalue_conversion (tree expr)
          {
            /* Common Ada/Pascal programmer's mistake.  We always warn
               about this since it is so bad.  */
-           warning ("the address of %qD, will always evaluate as %<true%>",
+           warning (0, "the address of %qD, will always evaluate as %<true%>",
                     TREE_OPERAND (expr, 0));
            return truthvalue_true_node;
          }
@@ -2477,7 +2477,7 @@ c_common_truthvalue_conversion (tree expr)
 
     case MODIFY_EXPR:
       if (warn_parentheses && !TREE_NO_WARNING (expr))
-       warning ("suggest parentheses around assignment used as truth value");
+       warning (0, "suggest parentheses around assignment used as truth value");
       break;
 
     default:
@@ -3548,7 +3548,7 @@ c_add_case_label (splay_tree cases, tree cond, tree orig_type,
     high_value = NULL_TREE;
   if (low_value && high_value
       && !tree_int_cst_lt (low_value, high_value))
-    warning ("empty range specified");
+    warning (0, "empty range specified");
 
   /* See if the case is in range of the type of the original testing
      expression.  If both low_value and high_value are out of range,
@@ -3667,10 +3667,10 @@ match_case_to_enum_1 (tree key, tree type, tree label)
              TREE_INT_CST_HIGH (key), TREE_INT_CST_LOW (key));
 
   if (TYPE_NAME (type) == 0)
-    warning ("%Jcase value %qs not in enumerated type",
+    warning (0, "%Jcase value %qs not in enumerated type",
             CASE_LABEL (label), buf);
   else
-    warning ("%Jcase value %qs not in enumerated type %qT",
+    warning (0, "%Jcase value %qs not in enumerated type %qT",
             CASE_LABEL (label), buf, type);
 }
 
@@ -3727,7 +3727,7 @@ c_do_switch_warnings (splay_tree cases, location_t switch_location,
 
   default_node = splay_tree_lookup (cases, (splay_tree_key) NULL);
   if (warn_switch_default && !default_node)
-    warning ("%Hswitch missing default case", &switch_location);
+    warning (0, "%Hswitch missing default case", &switch_location);
 
   /* If the switch expression was an enumerated type, check that
      exactly all enumeration literals are covered by the cases.
@@ -3761,7 +3761,7 @@ c_do_switch_warnings (splay_tree cases, location_t switch_location,
            {
              /* Warn if there are enumerators that don't correspond to
                 case expressions.  */
-             warning ("%Henumeration value %qE not handled in switch",
+             warning (0, "%Henumeration value %qE not handled in switch",
                       &switch_location, TREE_PURPOSE (chain));
            }
        }
@@ -3957,7 +3957,7 @@ handle_packed_attribute (tree *node, tree name, tree ARG_UNUSED (args),
      that changes what the typedef is typing.  */
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -3976,7 +3976,7 @@ handle_nocommon_attribute (tree *node, tree name,
     DECL_COMMON (*node) = 0;
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -3994,7 +3994,7 @@ handle_common_attribute (tree *node, tree name, tree ARG_UNUSED (args),
     DECL_COMMON (*node) = 1;
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4021,7 +4021,7 @@ handle_noreturn_attribute (tree *node, tree name, tree ARG_UNUSED (args),
                             TYPE_READONLY (TREE_TYPE (type)), 1));
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4040,7 +4040,7 @@ handle_noinline_attribute (tree *node, tree name,
     DECL_UNINLINABLE (*node) = 1;
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4063,7 +4063,7 @@ handle_always_inline_attribute (tree *node, tree name,
     }
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4087,7 +4087,7 @@ handle_used_attribute (tree *pnode, tree name, tree ARG_UNUSED (args),
     }
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4113,7 +4113,7 @@ handle_unused_attribute (tree *node, tree name, tree ARG_UNUSED (args),
        TREE_USED (decl) = 1;
       else
        {
-         warning ("%qE attribute ignored", name);
+         warning (0, "%qE attribute ignored", name);
          *no_add_attrs = true;
        }
     }
@@ -4147,7 +4147,7 @@ handle_const_attribute (tree *node, tree name, tree ARG_UNUSED (args),
                             TREE_THIS_VOLATILE (TREE_TYPE (type))));
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4191,7 +4191,7 @@ handle_transparent_union_attribute (tree *node, tree name,
     DECL_TRANSPARENT_UNION (decl) = 1;
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4219,7 +4219,7 @@ handle_constructor_attribute (tree *node, tree name,
     }
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4247,7 +4247,7 @@ handle_destructor_attribute (tree *node, tree name,
     }
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4266,7 +4266,7 @@ handle_mode_attribute (tree *node, tree name, tree args,
   *no_add_attrs = true;
 
   if (TREE_CODE (TREE_VALUE (args)) != IDENTIFIER_NODE)
-    warning ("%qE attribute ignored", name);
+    warning (0, "%qE attribute ignored", name);
   else
     {
       int j;
@@ -4324,9 +4324,9 @@ handle_mode_attribute (tree *node, tree name, tree args,
 
        case MODE_VECTOR_INT:
        case MODE_VECTOR_FLOAT:
-         warning ("specifying vector types with __attribute__ ((mode)) "
+         warning (0, "specifying vector types with __attribute__ ((mode)) "
                   "is deprecated");
-         warning ("use __attribute__ ((vector_size)) instead");
+         warning (0, "use __attribute__ ((vector_size)) instead");
          valid_mode = vector_mode_valid_p (mode);
          break;
 
@@ -4591,7 +4591,7 @@ handle_alias_attribute (tree *node, tree name, tree args,
     }
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4615,13 +4615,13 @@ handle_visibility_attribute (tree *node, tree name, tree args,
     {
       if (TREE_CODE (*node) != RECORD_TYPE && TREE_CODE (*node) != UNION_TYPE)
        {
-         warning ("%qE attribute ignored on non-class types", name);
+         warning (0, "%qE attribute ignored on non-class types", name);
          return NULL_TREE;
        }
     }
   else if (decl_function_context (decl) != 0 || !TREE_PUBLIC (decl))
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       return NULL_TREE;
     }
 
@@ -4639,7 +4639,7 @@ handle_visibility_attribute (tree *node, tree name, tree args,
         return NULL_TREE;
       if (TREE_CODE (decl) == IDENTIFIER_NODE)
        {
-          warning ("%qE attribute ignored on types",
+          warning (0, "%qE attribute ignored on types",
                    name);
           return NULL_TREE;
        }
@@ -4713,7 +4713,7 @@ handle_tls_model_attribute (tree *node, tree name, tree args,
 
   if (!DECL_THREAD_LOCAL (decl))
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
   else
@@ -4780,7 +4780,7 @@ handle_malloc_attribute (tree *node, tree name, tree ARG_UNUSED (args),
     DECL_IS_MALLOC (*node) = 1;
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4798,7 +4798,7 @@ handle_returns_twice_attribute (tree *node, tree name, tree ARG_UNUSED (args),
     DECL_IS_RETURNS_TWICE (*node) = 1;
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4844,7 +4844,7 @@ handle_pure_attribute (tree *node, tree name, tree ARG_UNUSED (args),
   /* ??? TODO: Support types.  */
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -4912,9 +4912,9 @@ handle_deprecated_attribute (tree *node, tree name,
            what = DECL_NAME (TYPE_NAME (type));
        }
       if (what)
-       warning ("%qE attribute ignored for %qE", name, what);
+       warning (0, "%qE attribute ignored for %qE", name, what);
       else
-       warning ("%qE attribute ignored", name);
+       warning (0, "%qE attribute ignored", name);
     }
 
   return NULL_TREE;
@@ -4938,7 +4938,7 @@ handle_vector_size_attribute (tree *node, tree name, tree args,
 
   if (!host_integerp (size, 1))
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       return NULL_TREE;
     }
 
@@ -5100,7 +5100,7 @@ check_function_sentinel (tree attrs, tree params)
   if (attr)
     {
       if (!params)
-       warning ("missing sentinel in function call");
+       warning (0, "missing sentinel in function call");
       else
         {
          tree sentinel, end;
@@ -5122,7 +5122,7 @@ check_function_sentinel (tree attrs, tree params)
            }
          if (pos > 0)
            {
-             warning ("not enough arguments to fit a sentinel");
+             warning (0, "not enough arguments to fit a sentinel");
              return;
            }
 
@@ -5136,7 +5136,7 @@ check_function_sentinel (tree attrs, tree params)
          /* Validate the sentinel.  */
          if (!POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (sentinel)))
              || !integer_zerop (TREE_VALUE (sentinel)))
-           warning ("missing sentinel in function call");
+           warning (0, "missing sentinel in function call");
        }
     }
 }
@@ -5178,7 +5178,7 @@ check_nonnull_arg (void * ARG_UNUSED (ctx), tree param,
     return;
 
   if (integer_zerop (param))
-    warning ("null argument where non-null required (argument %lu)",
+    warning (0, "null argument where non-null required (argument %lu)",
             (unsigned long) param_num);
 }
 
@@ -5209,7 +5209,7 @@ handle_nothrow_attribute (tree *node, tree name, tree ARG_UNUSED (args),
   /* ??? TODO: Support types.  */
   else
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -5232,7 +5232,7 @@ handle_cleanup_attribute (tree *node, tree name, tree args,
      we'd be missing too much, since we do have attribute constructor.  */
   if (TREE_CODE (decl) != VAR_DECL || TREE_STATIC (decl))
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
       return NULL_TREE;
     }
@@ -5271,7 +5271,7 @@ handle_warn_unused_result_attribute (tree *node, tree name,
   /* Ignore the attribute for functions not returning any value.  */
   if (VOID_TYPE_P (TREE_TYPE (*node)))
     {
-      warning ("%qE attribute ignored", name);
+      warning (0, "%qE attribute ignored", name);
       *no_add_attrs = true;
     }
 
@@ -5288,7 +5288,7 @@ handle_sentinel_attribute (tree *node, tree name, tree args,
 
   if (!params)
     {
-      warning ("%qE attribute requires prototypes with named arguments", name);
+      warning (0, "%qE attribute requires prototypes with named arguments", name);
       *no_add_attrs = true;
     }
   else
@@ -5298,7 +5298,7 @@ handle_sentinel_attribute (tree *node, tree name, tree args,
 
       if (VOID_TYPE_P (TREE_VALUE (params)))
         {
-         warning ("%qE attribute only applies to variadic functions", name);
+         warning (0, "%qE attribute only applies to variadic functions", name);
          *no_add_attrs = true;
        }
     }
@@ -5309,14 +5309,14 @@ handle_sentinel_attribute (tree *node, tree name, tree args,
 
       if (TREE_CODE (position) != INTEGER_CST)
         {
-         warning ("requested position is not an integer constant");
+         warning (0, "requested position is not an integer constant");
          *no_add_attrs = true;
        }
       else
         {
          if (tree_int_cst_lt (position, integer_zero_node))
            {
-             warning ("requested position is less than zero");
+             warning (0, "requested position is less than zero");
              *no_add_attrs = true;
            }
        }
@@ -5618,11 +5618,11 @@ c_warn_unused_result (tree *top_p)
       if (lookup_attribute ("warn_unused_result", TYPE_ATTRIBUTES (ftype)))
        {
          if (fdecl)
-           warning ("%Hignoring return value of %qD, "
+           warning (0, "%Hignoring return value of %qD, "
                     "declared with attribute warn_unused_result",
                     EXPR_LOCUS (t), fdecl);
          else
-           warning ("%Hignoring return value of function "
+           warning (0, "%Hignoring return value of function "
                     "declared with attribute warn_unused_result",
                     EXPR_LOCUS (t));
        }
index 70b2d83..b1309b3 100644 (file)
@@ -527,7 +527,7 @@ c_finish_incomplete_decl (tree decl)
          && !DECL_EXTERNAL (decl)
          && TYPE_DOMAIN (type) == 0)
        {
-         warning ("%Jarray %qD assumed to have one element", decl, decl);
+         warning (0, "%Jarray %qD assumed to have one element", decl, decl);
 
          complete_array_type (&TREE_TYPE (decl), NULL_TREE, true);
 
@@ -732,9 +732,9 @@ pop_scope (void)
          else if (!TREE_USED (p) && warn_unused_label)
            {
              if (DECL_INITIAL (p))
-               warning ("%Jlabel %qD defined but not used", p, p);
+               warning (0, "%Jlabel %qD defined but not used", p, p);
              else
-               warning ("%Jlabel %qD declared but not defined", p, p);
+               warning (0, "%Jlabel %qD declared but not defined", p, p);
            }
          /* Labels go in BLOCK_VARS.  */
          TREE_CHAIN (p) = BLOCK_VARS (block);
@@ -783,7 +783,7 @@ pop_scope (void)
              && !DECL_ARTIFICIAL (p)
              && scope != file_scope
              && scope != external_scope) 
-           warning ("%Junused variable %qD", p, p);
+           warning (0, "%Junused variable %qD", p, p);
 
          if (b->inner_comp)
            {
@@ -1091,7 +1091,7 @@ validate_proto_after_old_defn (tree newdecl, tree newtype, tree oldtype)
 
   /* If we get here, no errors were found, but do issue a warning
      for this poor-style construct.  */
-  warning ("%Jprototype for %qD follows non-prototype definition",
+  warning (0, "%Jprototype for %qD follows non-prototype definition",
           newdecl, newdecl);
   return true;
 #undef END_OF_ARGLIST
@@ -1152,10 +1152,10 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
          locate_old_decl (olddecl, error);
        }
       else if (TREE_PUBLIC (newdecl))
-       warning ("%Jbuilt-in function %qD declared as non-function",
+       warning (0, "%Jbuilt-in function %qD declared as non-function",
                 newdecl, newdecl);
       else if (warn_shadow)
-       warning ("%Jdeclaration of %qD shadows a built-in function",
+       warning (0, "%Jdeclaration of %qD shadows a built-in function",
                 newdecl, newdecl);
       return false;
     }
@@ -1185,7 +1185,7 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
              /* If types don't match for a built-in, throw away the
                 built-in.  No point in calling locate_old_decl here, it
                 won't print anything.  */
-             warning ("%Jconflicting types for built-in function %qD",
+             warning (0, "%Jconflicting types for built-in function %qD",
                       newdecl, newdecl);
              return false;
            }
@@ -1271,7 +1271,7 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
                  && !TYPE_ARG_TYPES (TREE_TYPE (newdecl)))))
        {
          if (warn_shadow)
-           warning ("%Jdeclaration of %qD shadows a built-in function",
+           warning (0, "%Jdeclaration of %qD shadows a built-in function",
                     newdecl, newdecl);
          /* Discard the old built-in function.  */
          return false;
@@ -1368,7 +1368,7 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
            }
          else if (warn_traditional)
            {
-             warning ("%Jnon-static declaration of %qD follows "
+             warning (0, "%Jnon-static declaration of %qD follows "
                       "static declaration", newdecl, newdecl);
              warned = true;
            }
@@ -1421,7 +1421,7 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
                }
              else if (warn_traditional)
                {
-                 warning ("%Jnon-static declaration of %qD follows "
+                 warning (0, "%Jnon-static declaration of %qD follows "
                           "static declaration", newdecl, newdecl);
                  warned = true;
                }
@@ -1470,7 +1470,7 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
   if (DECL_VISIBILITY_SPECIFIED (newdecl) && DECL_VISIBILITY_SPECIFIED (olddecl)
       && DECL_VISIBILITY (newdecl) != DECL_VISIBILITY (olddecl))
     {
-      warning ("%Jredeclaration of %qD with different visibility "
+      warning (0, "%Jredeclaration of %qD with different visibility "
               "(old visibility preserved)", newdecl, newdecl);
       warned = true;
     }
@@ -1481,14 +1481,14 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
       if (DECL_DECLARED_INLINE_P (newdecl)
          && lookup_attribute ("noinline", DECL_ATTRIBUTES (olddecl)))
        {
-         warning ("%Jinline declaration of %qD follows "
+         warning (0, "%Jinline declaration of %qD follows "
                   "declaration with attribute noinline", newdecl, newdecl);
          warned = true;
        }
       else if (DECL_DECLARED_INLINE_P (olddecl)
               && lookup_attribute ("noinline", DECL_ATTRIBUTES (newdecl)))
        {
-         warning ("%Jdeclaration of %qD with attribute noinline follows "
+         warning (0, "%Jdeclaration of %qD with attribute noinline follows "
                   "inline declaration ", newdecl, newdecl);
          warned = true;
        }
@@ -1503,13 +1503,13 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
        {
          if (TREE_USED (olddecl))
            {
-             warning ("%J%qD declared inline after being called",
+             warning (0, "%J%qD declared inline after being called",
                       olddecl, olddecl);
              warned = true;
            }
          else if (DECL_INITIAL (olddecl))
            {
-             warning ("%J%qD declared inline after its definition",
+             warning (0, "%J%qD declared inline after its definition",
                       olddecl, olddecl);
              warned = true;
            }
@@ -1553,13 +1553,13 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
       && !(TREE_CODE (newdecl) == PARM_DECL
           && TREE_ASM_WRITTEN (olddecl) && !TREE_ASM_WRITTEN (newdecl)))
     {
-      warning ("%Jredundant redeclaration of %qD", newdecl, newdecl);
+      warning (0, "%Jredundant redeclaration of %qD", newdecl, newdecl);
       warned = true;
     }
 
   /* Report location of previous decl/defn in a consistent manner.  */
   if (warned || pedwarned)
-    locate_old_decl (olddecl, pedwarned ? pedwarn : warning);
+    locate_old_decl (olddecl, pedwarned ? pedwarn : warning0);
 
   return retval;
 }
@@ -1865,28 +1865,28 @@ warn_if_shadowing (tree new_decl)
 
        if (old_decl == error_mark_node)
          {
-           warning ("%Jdeclaration of %qD shadows previous non-variable",
+           warning (0, "%Jdeclaration of %qD shadows previous non-variable",
                     new_decl, new_decl);
            break;
          }
        else if (TREE_CODE (old_decl) == PARM_DECL)
-         warning ("%Jdeclaration of %qD shadows a parameter",
+         warning (0, "%Jdeclaration of %qD shadows a parameter",
                   new_decl, new_decl);
        else if (DECL_FILE_SCOPE_P (old_decl))
-         warning ("%Jdeclaration of %qD shadows a global declaration",
+         warning (0, "%Jdeclaration of %qD shadows a global declaration",
                   new_decl, new_decl);
        else if (TREE_CODE (old_decl) == FUNCTION_DECL
                 && DECL_BUILT_IN (old_decl))
          {
-           warning ("%Jdeclaration of %qD shadows a built-in function",
+           warning (0, "%Jdeclaration of %qD shadows a built-in function",
                     new_decl, new_decl);
            break;
          }
        else
-         warning ("%Jdeclaration of %qD shadows a previous local",
+         warning (0, "%Jdeclaration of %qD shadows a previous local",
                   new_decl, new_decl);
 
-       warning ("%Jshadowed declaration is here", old_decl);
+       warning (0, "%Jshadowed declaration is here", old_decl);
 
        break;
       }
@@ -2046,7 +2046,7 @@ pushdecl (tree x)
       if (warn_nested_externs
          && scope != file_scope
          && !DECL_IN_SYSTEM_HEADER (x))
-       warning ("nested extern declaration of %qD", x);
+       warning (0, "nested extern declaration of %qD", x);
 
       while (b && !B_IN_EXTERNAL_SCOPE (b))
        {
@@ -2201,7 +2201,7 @@ implicit_decl_warning (tree id, tree olddecl)
   switch (mesg_implicit_function_declaration)
     {
     case 0: return;
-    case 1: diag = warning; break;
+    case 1: diag = warning0; break;
     case 2: diag = error;   break;
     default: gcc_unreachable ();
     }
@@ -2267,7 +2267,7 @@ implicitly_declare (tree functionid)
                                                      (TREE_TYPE (decl)));
              if (!comptypes (newtype, TREE_TYPE (decl)))
                {
-                 warning ("incompatible implicit declaration of built-in"
+                 warning (0, "incompatible implicit declaration of built-in"
                           " function %qD", decl);
                  newtype = TREE_TYPE (decl);
                }
@@ -2482,7 +2482,7 @@ define_label (location_t location, tree name)
     }
 
   if (warn_traditional && !in_system_header && lookup_name (name))
-    warning ("%Htraditional C lacks a separate namespace for labels, "
+    warning (0, "%Htraditional C lacks a separate namespace for labels, "
              "identifier %qE conflicts", &location, name);
 
   nlist_se = XOBNEW (&parser_obstack, struct c_label_list);
@@ -2844,13 +2844,13 @@ shadow_tag_warned (const struct c_declspecs *declspecs, int warned)
 
   if (!warned && !in_system_header && declspecs->storage_class != csc_none)
     {
-      warning ("useless storage class specifier in empty declaration");
+      warning (0, "useless storage class specifier in empty declaration");
       warned = 2;
     }
 
   if (!warned && !in_system_header && declspecs->thread_p)
     {
-      warning ("useless %<__thread%> in empty declaration");
+      warning (0, "useless %<__thread%> in empty declaration");
       warned = 2;
     }
 
@@ -2858,7 +2858,7 @@ shadow_tag_warned (const struct c_declspecs *declspecs, int warned)
                                       || declspecs->volatile_p
                                       || declspecs->restrict_p))
     {
-      warning ("useless type qualifier in empty declaration");
+      warning (0, "useless type qualifier in empty declaration");
       warned = 2;
     }
 
@@ -2937,7 +2937,7 @@ build_array_declarator (tree expr, struct c_declspecs *quals, bool static_p,
        pedwarn ("ISO C90 does not support %<[*]%> array declarators");
     }
   if (vla_unspec_p)
-    warning ("GCC does not yet properly implement %<[*]%> array declarators");
+    warning (0, "GCC does not yet properly implement %<[*]%> array declarators");
   return declarator;
 }
 
@@ -3015,7 +3015,7 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs,
 
   if (warn_main > 0 && TREE_CODE (decl) != FUNCTION_DECL
       && MAIN_NAME_P (DECL_NAME (decl)))
-    warning ("%J%qD is usually a function", decl, decl);
+    warning (0, "%J%qD is usually a function", decl, decl);
 
   if (initialized)
     /* Is it valid for this decl to have an initializer at all?
@@ -3136,7 +3136,7 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs,
       && DECL_DECLARED_INLINE_P (decl)
       && DECL_UNINLINABLE (decl)
       && lookup_attribute ("noinline", DECL_ATTRIBUTES (decl)))
-    warning ("%Jinline function %qD given attribute noinline", decl, decl);
+    warning (0, "%Jinline function %qD given attribute noinline", decl, decl);
 
   /* Add this decl to the current scope.
      TEM may equal DECL or it may be a previous decl of the same name.  */
@@ -3307,7 +3307,7 @@ finish_decl (tree decl, tree init, tree asmspec_tree)
              && TREE_CODE (decl) == VAR_DECL
              && !C_DECL_REGISTER (decl)
              && !TREE_STATIC (decl))
-           warning ("%Jignoring asm-specifier for non-static local "
+           warning (0, "%Jignoring asm-specifier for non-static local "
                     "variable %qD", decl, decl);
          else if (C_DECL_REGISTER (decl))
            change_decl_assembler_name (decl, get_identifier (asmspec));
@@ -3652,7 +3652,7 @@ check_bitfield_type_and_width (tree *type, tree *width, const char *orig_name)
       if (!lt
           || w < min_precision (lt->enum_min, TYPE_UNSIGNED (*type))
          || w < min_precision (lt->enum_max, TYPE_UNSIGNED (*type)))
-       warning ("%qs is narrower than values of its type", name);
+       warning (0, "%qs is narrower than values of its type", name);
     }
 }
 \f
@@ -3870,7 +3870,7 @@ grokdeclarator (const struct c_declarator *declarator,
     {
       /* 'extern' with initialization is invalid if not at file scope.  */
       if (current_scope == file_scope)
-       warning ("%qs initialized and declared %<extern%>", name);
+       warning (0, "%qs initialized and declared %<extern%>", name);
       else
        error ("%qs has both %<extern%> and initializer", name);
     }
@@ -4183,7 +4183,7 @@ grokdeclarator (const struct c_declarator *declarator,
                if (VOID_TYPE_P (type) && really_funcdef)
                  pedwarn ("function definition has qualified void return type");
                else if (warn_return_type)
-                 warning ("type qualifiers ignored on function return type");
+                 warning (0, "type qualifiers ignored on function return type");
                
                type = c_build_qualified_type (type, type_quals);
              }
@@ -4344,7 +4344,7 @@ grokdeclarator (const struct c_declarator *declarator,
 
            /* We don't yet implement attributes in this context.  */
            if (array_ptr_attrs != NULL_TREE)
-             warning ("attributes in parameter array declarator ignored");
+             warning (0, "attributes in parameter array declarator ignored");
 
            size_varies = 0;
          }
@@ -4448,7 +4448,7 @@ grokdeclarator (const struct c_declarator *declarator,
           that the function does not return.  */
        if ((type_quals & TYPE_QUAL_VOLATILE)
            && !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (decl))))
-         warning ("%<noreturn%> function returns non-void value");
+         warning (0, "%<noreturn%> function returns non-void value");
 
        /* Every function declaration is an external reference
           (DECL_EXTERNAL) except for those which are not at file
@@ -4626,7 +4626,7 @@ grokparms (struct c_arg_info *arg_info, bool funcdef_flag)
 
   if (warn_strict_prototypes && arg_types == 0 && !funcdef_flag
       && !in_system_header)
-    warning ("function declaration isn%'t a prototype");
+    warning (0, "function declaration isn%'t a prototype");
 
   if (arg_types == error_mark_node)
     return 0;  /* don't set TYPE_ARG_TYPES in this case */
@@ -4679,10 +4679,10 @@ grokparms (struct c_arg_info *arg_info, bool funcdef_flag)
              else if (VOID_TYPE_P (type))
                {
                  if (DECL_NAME (parm))
-                   warning ("%Jparameter %u (%qD) has void type",
+                   warning (0, "%Jparameter %u (%qD) has void type",
                             parm, parmno, parm);
                  else
-                   warning ("%Jparameter %u has void type",
+                   warning (0, "%Jparameter %u has void type",
                             parm, parmno);
                }
            }
@@ -4817,16 +4817,16 @@ get_parm_info (bool ellipsis)
            {
              if (b->id)
                /* The %s will be one of 'struct', 'union', or 'enum'.  */
-               warning ("%<%s %E%> declared inside parameter list",
+               warning (0, "%<%s %E%> declared inside parameter list",
                         keyword, b->id);
              else
                /* The %s will be one of 'struct', 'union', or 'enum'.  */
-               warning ("anonymous %s declared inside parameter list",
+               warning (0, "anonymous %s declared inside parameter list",
                         keyword);
 
              if (!explained_incomplete_types)
                {
-                 warning ("its scope is only this definition or declaration,"
+                 warning (0, "its scope is only this definition or declaration,"
                           " which is probably not what you want");
                  explained_incomplete_types = true;
                }
@@ -5332,7 +5332,7 @@ finish_struct (tree t, tree fieldlist, tree attributes)
       && TYPE_MODE (t) != DECL_MODE (TYPE_FIELDS (t)))
     {
       TYPE_TRANSPARENT_UNION (t) = 0;
-      warning ("union cannot be made transparent");
+      warning (0, "union cannot be made transparent");
     }
 
   /* If this structure or union completes the type of any previous
@@ -5473,7 +5473,7 @@ finish_enum (tree enumtype, tree values, tree attributes)
       tem = c_common_type_for_size (precision, unsign);
       if (tem == NULL)
        {
-         warning ("enumeration values exceed range of largest integer");
+         warning (0, "enumeration values exceed range of largest integer");
          tem = long_long_integer_type_node;
        }
     }
@@ -5693,7 +5693,7 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
   if (DECL_DECLARED_INLINE_P (decl1)
       && DECL_UNINLINABLE (decl1)
       && lookup_attribute ("noinline", DECL_ATTRIBUTES (decl1)))
-    warning ("%Jinline function %qD given attribute noinline", decl1, decl1);
+    warning (0, "%Jinline function %qD given attribute noinline", decl1, decl1);
 
   announce_function (decl1);
 
@@ -5731,14 +5731,14 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
       && old_decl != error_mark_node
       && TYPE_ARG_TYPES (TREE_TYPE (decl1)) == 0
       && C_DECL_ISNT_PROTOTYPE (old_decl))
-    warning ("function declaration isn%'t a prototype");
+    warning (0, "function declaration isn%'t a prototype");
   /* Optionally warn of any global def with no previous prototype.  */
   else if (warn_missing_prototypes
           && old_decl != error_mark_node
           && TREE_PUBLIC (decl1)
           && !MAIN_NAME_P (DECL_NAME (decl1))
           && C_DECL_ISNT_PROTOTYPE (old_decl))
-    warning ("%Jno previous prototype for %qD", decl1, decl1);
+    warning (0, "%Jno previous prototype for %qD", decl1, decl1);
   /* Optionally warn of any def with no previous prototype
      if the function has already been used.  */
   else if (warn_missing_prototypes
@@ -5746,14 +5746,14 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
           && old_decl != error_mark_node
           && TREE_USED (old_decl)
           && TYPE_ARG_TYPES (TREE_TYPE (old_decl)) == 0)
-    warning ("%J%qD was used with no prototype before its definition",
+    warning (0, "%J%qD was used with no prototype before its definition",
             decl1, decl1);
   /* Optionally warn of any global def with no previous declaration.  */
   else if (warn_missing_declarations
           && TREE_PUBLIC (decl1)
           && old_decl == 0
           && !MAIN_NAME_P (DECL_NAME (decl1)))
-    warning ("%Jno previous declaration for %qD", decl1, decl1);
+    warning (0, "%Jno previous declaration for %qD", decl1, decl1);
   /* Optionally warn of any def with no previous declaration
      if the function has already been used.  */
   else if (warn_missing_declarations
@@ -5761,7 +5761,7 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
           && old_decl != error_mark_node
           && TREE_USED (old_decl)
           && C_DECL_IMPLICIT (old_decl))
-    warning ("%J%qD was used with no declaration before its definition",
+    warning (0, "%J%qD was used with no declaration before its definition",
             decl1, decl1);
 
   /* This is a definition, not a reference.
@@ -5899,7 +5899,7 @@ store_parm_decls_newstyle (tree fndecl, const struct c_arg_info *arg_info)
      its parameter list).  */
   else if (warn_traditional && !in_system_header && !current_function_scope
           && arg_info->types != error_mark_node)
-    warning ("%Jtraditional C rejects ISO C style function definitions",
+    warning (0, "%Jtraditional C rejects ISO C style function definitions",
             fndecl);
 
   /* Now make all the parameter declarations visible in the function body.
@@ -5951,7 +5951,7 @@ store_parm_decls_oldstyle (tree fndecl, const struct c_arg_info *arg_info)
 #endif
 
   if (warn_old_style_definition && !in_system_header)
-    warning ("%Jold-style function definition", fndecl);
+    warning (0, "%Jold-style function definition", fndecl);
 
   /* Match each formal parameter name with its declaration.  Save each
      decl in the appropriate TREE_PURPOSE slot of the parmids chain.  */
@@ -6000,7 +6000,7 @@ store_parm_decls_oldstyle (tree fndecl, const struct c_arg_info *arg_info)
          if (flag_isoc99)
            pedwarn ("%Jtype of %qD defaults to %<int%>", decl, decl);
          else if (extra_warnings)
-           warning ("%Jtype of %qD defaults to %<int%>", decl, decl);
+           warning (0, "%Jtype of %qD defaults to %<int%>", decl, decl);
        }
 
       TREE_PURPOSE (parm) = decl;
@@ -6332,14 +6332,14 @@ finish_function (void)
       /* Normally, with -Wreturn-type, flow will complain.  Unless we're an
         inline function, as we might never be compiled separately.  */
       && DECL_INLINE (fndecl))
-    warning ("no return statement in function returning non-void");
+    warning (0, "no return statement in function returning non-void");
 
   /* With just -Wextra, complain only if function returns both with
      and without a value.  */
   if (extra_warnings
       && current_function_returns_value
       && current_function_returns_null)
-    warning ("this function may return with or without a value");
+    warning (0, "this function may return with or without a value");
 
   /* Store the end of the function, so that we get good line number
      info for the epilogue.  */
@@ -7087,7 +7087,7 @@ declspecs_add_scspec (struct c_declspecs *specs, tree scspec)
              && C_IS_RESERVED_WORD (scspec));
   i = C_RID_CODE (scspec);
   if (extra_warnings && specs->non_sc_seen_p)
-    warning ("%qE is not at beginning of declaration", scspec);
+    warning (0, "%qE is not at beginning of declaration", scspec);
   switch (i)
     {
     case RID_INLINE:
index 1fdc858..7db8add 100644 (file)
@@ -194,7 +194,7 @@ decode_format_attr (tree args, function_format_info *info, int validated_p)
       if (info->format_type == format_type_error)
        {
          gcc_assert (!validated_p);
-         warning ("%qE is an unrecognized format function type",
+         warning (0, "%qE is an unrecognized format function type",
                   format_type_id);
          return false;
        }
@@ -833,7 +833,7 @@ check_function_format (tree attrs, tree params)
                        break;
                    }
                  if (args != 0)
-                   warning ("function might be possible candidate for %qs format attribute",
+                   warning (0, "function might be possible candidate for %qs format attribute",
                             format_types[info.format_type].name);
                }
            }
@@ -924,7 +924,7 @@ maybe_read_dollar_number (const char **format,
     {
       if (dollar_needed)
        {
-         warning ("missing $ operand number in format");
+         warning (0, "missing $ operand number in format");
          return -1;
        }
       else
@@ -945,7 +945,7 @@ maybe_read_dollar_number (const char **format,
     {
       if (dollar_needed)
        {
-         warning ("missing $ operand number in format");
+         warning (0, "missing $ operand number in format");
          return -1;
        }
       else
@@ -954,14 +954,14 @@ maybe_read_dollar_number (const char **format,
   *format = fcp + 1;
   if (pedantic && !dollar_format_warned)
     {
-      warning ("%s does not support %%n$ operand number formats",
+      warning (0, "%s does not support %%n$ operand number formats",
               C_STD_NAME (STD_EXT));
       dollar_format_warned = 1;
     }
   if (overflow_flag || argnum == 0
       || (dollar_first_arg_num && argnum > dollar_arguments_count))
     {
-      warning ("operand number out of range in format");
+      warning (0, "operand number out of range in format");
       return -1;
     }
   if (argnum > dollar_max_arg_used)
@@ -984,7 +984,7 @@ maybe_read_dollar_number (const char **format,
       && dollar_arguments_used[argnum - 1] == 1)
     {
       dollar_arguments_used[argnum - 1] = 2;
-      warning ("format argument %d used more than once in %s format",
+      warning (0, "format argument %d used more than once in %s format",
               argnum, fki->name);
     }
   else
@@ -1016,7 +1016,7 @@ avoid_dollar_number (const char *format)
     format++;
   if (*format == '$')
     {
-      warning ("$ operand number used after format without operand number");
+      warning (0, "$ operand number used after format without operand number");
       return true;
     }
   return false;
@@ -1046,7 +1046,7 @@ finish_dollar_format_checking (format_check_results *res, int pointer_gap_ok)
                                 || dollar_arguments_pointer_p[i]))
            found_pointer_gap = true;
          else
-           warning ("format argument %d unused before used argument %d in $-style format",
+           warning (0, "format argument %d unused before used argument %d in $-style format",
                     i + 1, dollar_max_arg_used);
        }
     }
@@ -1141,7 +1141,7 @@ check_format_info (function_format_info *info, tree params)
          /* For strftime-like formats, warn for not checking the format
             string; but there are no arguments to check.  */
          if (warn_format_nonliteral)
-           warning ("format not a string literal, format string not checked");
+           warning (0, "format not a string literal, format string not checked");
        }
       else if (info->first_arg_num != 0)
        {
@@ -1155,9 +1155,9 @@ check_format_info (function_format_info *info, tree params)
              ++arg_num;
            }
          if (params == 0 && (warn_format_nonliteral || warn_format_security))
-           warning ("format not a string literal and no format arguments");
+           warning (0, "format not a string literal and no format arguments");
          else if (warn_format_nonliteral)
-           warning ("format not a string literal, argument types not checked");
+           warning (0, "format not a string literal, argument types not checked");
        }
     }
 
@@ -1170,20 +1170,20 @@ check_format_info (function_format_info *info, tree params)
      case of extra format arguments.  */
   if (res.number_extra_args > 0 && res.number_non_literal == 0
       && res.number_other == 0 && warn_format_extra_args)
-    warning ("too many arguments for format");
+    warning (0, "too many arguments for format");
   if (res.number_dollar_extra_args > 0 && res.number_non_literal == 0
       && res.number_other == 0 && warn_format_extra_args)
-    warning ("unused arguments in $-style format");
+    warning (0, "unused arguments in $-style format");
   if (res.number_empty > 0 && res.number_non_literal == 0
       && res.number_other == 0 && warn_format_zero_length)
-    warning ("zero-length %s format string",
+    warning (0, "zero-length %s format string",
             format_types[info->format_type].name);
 
   if (res.number_wide > 0)
-    warning ("format is a wide character string");
+    warning (0, "format is a wide character string");
 
   if (res.number_unterminated > 0)
-    warning ("unterminated format string");
+    warning (0, "unterminated format string");
 }
 
 /* Callback from check_function_arguments_recurse to check a
@@ -1393,7 +1393,7 @@ check_format_info_main (format_check_results *res,
       if (*format_chars == 0)
        {
          if (format_chars - orig_format_chars != format_length)
-           warning ("embedded %<\\0%> in format");
+           warning (0, "embedded %<\\0%> in format");
          if (info->first_arg_num != 0 && params != 0
              && has_operand_number <= 0)
            {
@@ -1408,7 +1408,7 @@ check_format_info_main (format_check_results *res,
        continue;
       if (*format_chars == 0)
        {
-         warning ("spurious trailing %<%%%> in format");
+         warning (0, "spurious trailing %<%%%> in format");
          continue;
        }
       if (*format_chars == '%')
@@ -1452,7 +1452,7 @@ check_format_info_main (format_check_results *res,
                                                     *format_chars, NULL);
          if (strchr (flag_chars, *format_chars) != 0)
            {
-             warning ("repeated %s in format", _(s->name));
+             warning (0, "repeated %s in format", _(s->name));
            }
          else
            {
@@ -1465,7 +1465,7 @@ check_format_info_main (format_check_results *res,
              ++format_chars;
              if (*format_chars == 0)
                {
-                 warning ("missing fill character at end of strfmon format");
+                 warning (0, "missing fill character at end of strfmon format");
                  return;
                }
            }
@@ -1509,7 +1509,7 @@ check_format_info_main (format_check_results *res,
                {
                  if (params == 0)
                    {
-                     warning ("too few arguments for format");
+                     warning (0, "too few arguments for format");
                      return;
                    }
                  cur_param = TREE_VALUE (params);
@@ -1550,7 +1550,7 @@ check_format_info_main (format_check_results *res,
                }
              if (found_width && !non_zero_width_char &&
                  (fki->flags & (int) FMT_FLAG_ZERO_WIDTH_BAD))
-               warning ("zero width in %s format", fki->name);
+               warning (0, "zero width in %s format", fki->name);
              if (found_width)
                {
                  i = strlen (flag_chars);
@@ -1568,7 +1568,7 @@ check_format_info_main (format_check_results *res,
          flag_chars[i++] = fki->left_precision_char;
          flag_chars[i] = 0;
          if (!ISDIGIT (*format_chars))
-           warning ("empty left precision in %s format", fki->name);
+           warning (0, "empty left precision in %s format", fki->name);
          while (ISDIGIT (*format_chars))
            ++format_chars;
        }
@@ -1611,7 +1611,7 @@ check_format_info_main (format_check_results *res,
                {
                  if (params == 0)
                    {
-                     warning ("too few arguments for format");
+                     warning (0, "too few arguments for format");
                      return;
                    }
                  cur_param = TREE_VALUE (params);
@@ -1641,7 +1641,7 @@ check_format_info_main (format_check_results *res,
            {
              if (!(fki->flags & (int) FMT_FLAG_EMPTY_PREC_OK)
                  && !ISDIGIT (*format_chars))
-               warning ("empty precision in %s format", fki->name);
+               warning (0, "empty precision in %s format", fki->name);
              while (ISDIGIT (*format_chars))
                ++format_chars;
            }
@@ -1680,7 +1680,7 @@ check_format_info_main (format_check_results *res,
            {
              /* Warn if the length modifier is non-standard.  */
              if (ADJ_STD (length_chars_std) > C_STD_VER)
-               warning ("%s does not support the %qs %s length modifier",
+               warning (0, "%s does not support the %qs %s length modifier",
                         C_STD_NAME (length_chars_std), length_chars,
                         fki->name);
            }
@@ -1696,7 +1696,7 @@ check_format_info_main (format_check_results *res,
                {
                  const format_flag_spec *s = get_flag_spec (flag_specs,
                                                             *format_chars, NULL);
-                 warning ("repeated %s in format", _(s->name));
+                 warning (0, "repeated %s in format", _(s->name));
                }
              else
                {
@@ -1730,7 +1730,7 @@ check_format_info_main (format_check_results *res,
          || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK)
              && format_char == '%'))
        {
-         warning ("conversion lacks type at end of format");
+         warning (0, "conversion lacks type at end of format");
          continue;
        }
       format_chars++;
@@ -1741,17 +1741,17 @@ check_format_info_main (format_check_results *res,
       if (fci->format_chars == 0)
        {
           if (ISGRAPH (format_char))
-           warning ("unknown conversion type character %qc in format",
+           warning (0, "unknown conversion type character %qc in format",
                     format_char);
          else
-           warning ("unknown conversion type character 0x%x in format",
+           warning (0, "unknown conversion type character 0x%x in format",
                     format_char);
          continue;
        }
       if (pedantic)
        {
          if (ADJ_STD (fci->std) > C_STD_VER)
-           warning ("%s does not support the %<%%%c%> %s format",
+           warning (0, "%s does not support the %<%%%c%> %s format",
                     C_STD_NAME (fci->std), format_char, fki->name);
        }
 
@@ -1767,7 +1767,7 @@ check_format_info_main (format_check_results *res,
              continue;
            if (strchr (fci->flag_chars, flag_chars[i]) == 0)
              {
-               warning ("%s used with %<%%%c%> %s format",
+               warning (0, "%s used with %<%%%c%> %s format",
                         _(s->name), format_char, fki->name);
                d++;
                continue;
@@ -1776,7 +1776,7 @@ check_format_info_main (format_check_results *res,
              {
                const format_flag_spec *t;
                if (ADJ_STD (s->std) > C_STD_VER)
-                 warning ("%s does not support %s",
+                 warning (0, "%s does not support %s",
                           C_STD_NAME (s->std), _(s->long_name));
                t = get_flag_spec (flag_specs, flag_chars[i], fci->flags2);
                if (t != NULL && ADJ_STD (t->std) > ADJ_STD (s->std))
@@ -1785,7 +1785,7 @@ check_format_info_main (format_check_results *res,
                                             ? t->long_name
                                             : s->long_name);
                    if (ADJ_STD (t->std) > C_STD_VER)
-                     warning ("%s does not support %s with the %<%%%c%> %s format",
+                     warning (0, "%s does not support %s with the %<%%%c%> %s format",
                               C_STD_NAME (t->std), _(long_name),
                               format_char, fki->name);
                  }
@@ -1818,21 +1818,21 @@ check_format_info_main (format_check_results *res,
          if (bad_flag_pairs[i].ignored)
            {
              if (bad_flag_pairs[i].predicate != 0)
-               warning ("%s ignored with %s and %<%%%c%> %s format",
+               warning (0, "%s ignored with %s and %<%%%c%> %s format",
                         _(s->name), _(t->name), format_char,
                         fki->name);
              else
-               warning ("%s ignored with %s in %s format",
+               warning (0, "%s ignored with %s in %s format",
                         _(s->name), _(t->name), fki->name);
            }
          else
            {
              if (bad_flag_pairs[i].predicate != 0)
-               warning ("use of %s and %s together with %<%%%c%> %s format",
+               warning (0, "use of %s and %s together with %<%%%c%> %s format",
                         _(s->name), _(t->name), format_char,
                         fki->name);
              else
-               warning ("use of %s and %s together in %s format",
+               warning (0, "use of %s and %s together in %s format",
                         _(s->name), _(t->name), fki->name);
            }
        }
@@ -1851,10 +1851,10 @@ check_format_info_main (format_check_results *res,
          else if (strchr (fci->flags2, '2') != 0)
            y2k_level = 2;
          if (y2k_level == 3)
-           warning ("%<%%%c%> yields only last 2 digits of year in some locales",
+           warning (0, "%<%%%c%> yields only last 2 digits of year in some locales",
                     format_char);
          else if (y2k_level == 2)
-           warning ("%<%%%c%> yields only last 2 digits of year", format_char);
+           warning (0, "%<%%%c%> yields only last 2 digits of year", format_char);
        }
 
       if (strchr (fci->flags2, '[') != 0)
@@ -1870,7 +1870,7 @@ check_format_info_main (format_check_results *res,
            ++format_chars;
          if (*format_chars != ']')
            /* The end of the format string was reached.  */
-           warning ("no closing %<]%> for %<%%[%> format");
+           warning (0, "no closing %<]%> for %<%%[%> format");
        }
 
       wanted_type = 0;
@@ -1883,14 +1883,14 @@ check_format_info_main (format_check_results *res,
          wanted_type_std = fci->types[length_chars_val].std;
          if (wanted_type == 0)
            {
-             warning ("use of %qs length modifier with %qc type character",
+             warning (0, "use of %qs length modifier with %qc type character",
                       length_chars, format_char);
              /* Heuristic: skip one argument when an invalid length/type
                 combination is encountered.  */
              arg_num++;
              if (params == 0)
                {
-                 warning ("too few arguments for format");
+                 warning (0, "too few arguments for format");
                  return;
                }
              params = TREE_CHAIN (params);
@@ -1904,7 +1904,7 @@ check_format_info_main (format_check_results *res,
                   && ADJ_STD (wanted_type_std) > ADJ_STD (fci->std))
            {
              if (ADJ_STD (wanted_type_std) > C_STD_VER)
-               warning ("%s does not support the %<%%%s%c%> %s format",
+               warning (0, "%s does not support the %<%%%s%c%> %s format",
                         C_STD_NAME (wanted_type_std), length_chars,
                         format_char, fki->name);
            }
@@ -1921,9 +1921,9 @@ check_format_info_main (format_check_results *res,
          if (main_arg_num != 0)
            {
              if (suppressed)
-               warning ("operand number specified with suppressed assignment");
+               warning (0, "operand number specified with suppressed assignment");
              else
-               warning ("operand number specified for format taking no argument");
+               warning (0, "operand number specified for format taking no argument");
            }
        }
       else
@@ -1940,7 +1940,7 @@ check_format_info_main (format_check_results *res,
              ++arg_num;
              if (has_operand_number > 0)
                {
-                 warning ("missing $ operand number in format");
+                 warning (0, "missing $ operand number in format");
                  return;
                }
              else
@@ -1952,7 +1952,7 @@ check_format_info_main (format_check_results *res,
            {
              if (params == 0)
                {
-                 warning ("too few arguments for format");
+                 warning (0, "too few arguments for format");
                  return;
                }
 
@@ -2065,7 +2065,7 @@ check_format_types (format_wanted_type *types, const char *format_start,
                  && i == 0
                  && cur_param != 0
                  && integer_zerop (cur_param))
-               warning ("writing through null pointer (argument %d)",
+               warning (0, "writing through null pointer (argument %d)",
                         arg_num);
 
              /* Check for reading through a NULL pointer.  */
@@ -2073,7 +2073,7 @@ check_format_types (format_wanted_type *types, const char *format_start,
                  && i == 0
                  && cur_param != 0
                  && integer_zerop (cur_param))
-               warning ("reading through null pointer (argument %d)",
+               warning (0, "reading through null pointer (argument %d)",
                         arg_num);
 
              if (cur_param != 0 && TREE_CODE (cur_param) == ADDR_EXPR)
@@ -2093,7 +2093,7 @@ check_format_types (format_wanted_type *types, const char *format_start,
                          && (CONSTANT_CLASS_P (cur_param)
                              || (DECL_P (cur_param)
                                  && TREE_READONLY (cur_param))))))
-               warning ("writing into constant object (argument %d)",
+               warning (0, "writing into constant object (argument %d)",
                         arg_num);
 
              /* If there are extra type qualifiers beyond the first
@@ -2104,7 +2104,7 @@ check_format_types (format_wanted_type *types, const char *format_start,
                  && (TYPE_READONLY (cur_type)
                      || TYPE_VOLATILE (cur_type)
                      || TYPE_RESTRICT (cur_type)))
-               warning ("extra type qualifiers in format argument "
+               warning (0, "extra type qualifiers in format argument "
                         "(argument %d)",
                         arg_num);
 
@@ -2215,20 +2215,20 @@ format_type_warning (const char *descr, const char *format_start,
   if (wanted_type_name)
     {
       if (descr)
-       warning ("%s should have type %<%s%s%>, but argument %d has type %qT",
+       warning (0, "%s should have type %<%s%s%>, but argument %d has type %qT",
                 descr, wanted_type_name, p, arg_num, arg_type);
       else
-       warning ("format %q.*s expects type %<%s%s%>, but argument %d has type %qT",
+       warning (0, "format %q.*s expects type %<%s%s%>, but argument %d has type %qT",
                 format_length, format_start, wanted_type_name, p,
                 arg_num, arg_type);
     }
   else
     {
       if (descr)
-       warning ("%s should have type %<%T%s%>, but argument %d has type %qT",
+       warning (0, "%s should have type %<%T%s%>, but argument %d has type %qT",
                 descr, wanted_type, p, arg_num, arg_type);
       else
-       warning ("format %q.*s expects type %<%T%s%>, but argument %d has type %qT",
+       warning (0, "format %q.*s expects type %<%T%s%>, but argument %d has type %qT",
                 format_length, format_start, wanted_type, p, arg_num, arg_type);
     }
 }
index bea288e..70db9f2 100644 (file)
@@ -204,7 +204,7 @@ gimplify_expr_stmt (tree *stmt_p)
          if (!IS_EMPTY_STMT (stmt)
              && !VOID_TYPE_P (TREE_TYPE (stmt))
              && !TREE_NO_WARNING (stmt))
-           warning ("statement with no effect");
+           warning (0, "statement with no effect");
        }
       else if (warn_unused_value)
        warn_if_unused_value (stmt, input_location);
index 5e69536..990d2be 100644 (file)
@@ -251,7 +251,7 @@ fe_file_change (const struct line_map *new_map)
       if (c_header_level && --c_header_level == 0)
        {
          if (new_map->sysp == 2)
-           warning ("badly nested C headers from preprocessor");
+           warning (0, "badly nested C headers from preprocessor");
          --pending_lang_change;
        }
 #endif
@@ -299,7 +299,7 @@ cb_def_pragma (cpp_reader *pfile, source_location loc)
            name = cpp_token_as_text (pfile, s);
        }
 
-      warning ("%Hignoring #pragma %s %s", &fe_loc, space, name);
+      warning (0, "%Hignoring #pragma %s %s", &fe_loc, space, name);
     }
 }
 
@@ -597,10 +597,10 @@ interpret_integer (const cpp_token *token, unsigned int flags)
                  if (itk_u < itk_unsigned_long)
                    itk_u = itk_unsigned_long;
                  itk = itk_u;
-                 warning ("this decimal constant is unsigned only in ISO C90");
+                 warning (0, "this decimal constant is unsigned only in ISO C90");
                }
              else if (warn_traditional)
-               warning ("this decimal constant would be unsigned in ISO C90");
+               warning (0, "this decimal constant would be unsigned in ISO C90");
            }
        }
     }
@@ -764,7 +764,7 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string)
     strs = (cpp_string *) obstack_finish (&str_ob);
 
   if (concats && !objc_string && warn_traditional && !in_system_header)
-    warning ("traditional C rejects string constant concatenation");
+    warning (0, "traditional C rejects string constant concatenation");
 
   if ((c_lex_string_translate
        ? cpp_interpret_string : cpp_interpret_string_notranslate)
index 4b09c3e..178f10f 100644 (file)
@@ -77,7 +77,7 @@ c_cannot_inline_tree_fn (tree *fnp)
       && lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) == NULL)
     {
       if (do_warning)
-       warning ("%Jfunction %qF can never be inlined because it "
+       warning (0, "%Jfunction %qF can never be inlined because it "
                 "is suppressed using -fno-inline", fn, fn);
       goto cannot_inline;
     }
@@ -87,7 +87,7 @@ c_cannot_inline_tree_fn (tree *fnp)
   if (!DECL_DECLARED_INLINE_P (fn) && !targetm.binds_local_p (fn))
     {
       if (do_warning)
-       warning ("%Jfunction %qF can never be inlined because it might not "
+       warning (0, "%Jfunction %qF can never be inlined because it might not "
                 "be bound within this unit of translation", fn, fn);
       goto cannot_inline;
     }
@@ -95,7 +95,7 @@ c_cannot_inline_tree_fn (tree *fnp)
   if (!function_attribute_inlinable_p (fn))
     {
       if (do_warning)
-       warning ("%Jfunction %qF can never be inlined because it uses "
+       warning (0, "%Jfunction %qF can never be inlined because it uses "
                 "attributes conflicting with inlining", fn, fn);
       goto cannot_inline;
     }
index 42c8236..506543a 100644 (file)
@@ -550,7 +550,7 @@ c_common_handle_option (size_t scode, const char *arg, int value)
     case OPT_fvtable_thunks:
     case OPT_fxref:
     case OPT_fvtable_gc:
-      warning ("switch %qs is no longer supported", option->opt_text);
+      warning (0, "switch %qs is no longer supported", option->opt_text);
       break;
 
     case OPT_faccess_control:
@@ -663,7 +663,7 @@ c_common_handle_option (size_t scode, const char *arg, int value)
       break;
 
     case OPT_fhandle_exceptions:
-      warning ("-fhandle-exceptions has been renamed -fexceptions (and is now on by default)");
+      warning (0, "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)");
       flag_exceptions = value;
       break;
 
@@ -979,17 +979,17 @@ c_common_post_options (const char **pfilename)
   /* Special format checking options don't work without -Wformat; warn if
      they are used.  */
   if (warn_format_y2k && !warn_format)
-    warning ("-Wformat-y2k ignored without -Wformat");
+    warning (0, "-Wformat-y2k ignored without -Wformat");
   if (warn_format_extra_args && !warn_format)
-    warning ("-Wformat-extra-args ignored without -Wformat");
+    warning (0, "-Wformat-extra-args ignored without -Wformat");
   if (warn_format_zero_length && !warn_format)
-    warning ("-Wformat-zero-length ignored without -Wformat");
+    warning (0, "-Wformat-zero-length ignored without -Wformat");
   if (warn_format_nonliteral && !warn_format)
-    warning ("-Wformat-nonliteral ignored without -Wformat");
+    warning (0, "-Wformat-nonliteral ignored without -Wformat");
   if (warn_format_security && !warn_format)
-    warning ("-Wformat-security ignored without -Wformat");
+    warning (0, "-Wformat-security ignored without -Wformat");
   if (warn_missing_format_attribute && !warn_format)
-    warning ("-Wmissing-format-attribute ignored without -Wformat");
+    warning (0, "-Wmissing-format-attribute ignored without -Wformat");
 
   /* C99 requires special handling of complex multiplication and division;
      -ffast-math and -fcx-limited-range are handled in process_options.  */
@@ -1096,7 +1096,7 @@ c_common_parse_file (int set_yydebug)
   yydebug = set_yydebug;
 #else
   if (set_yydebug)
-    warning ("YYDEBUG was not defined at build time, -dy ignored");
+    warning (0, "YYDEBUG was not defined at build time, -dy ignored");
 #endif
 
   i = 0;
@@ -1400,7 +1400,7 @@ void
 cb_dir_change (cpp_reader * ARG_UNUSED (pfile), const char *dir)
 {
   if (!set_src_pwd (dir))
-    warning ("too late for # directive to set debug directory");
+    warning (0, "too late for # directive to set debug directory");
 }
 
 /* Set the C 89 standard (with 1994 amendments if C94, without GNU
index 0a336c6..7774b72 100644 (file)
@@ -3873,7 +3873,7 @@ c_parser_asm_statement (c_parser *parser)
   else if (c_parser_next_token_is_keyword (parser, RID_CONST)
           || c_parser_next_token_is_keyword (parser, RID_RESTRICT))
     {
-      warning ("%E qualifier ignored on asm",
+      warning (0, "%E qualifier ignored on asm",
               c_parser_peek_token (parser)->value);
       quals = NULL_TREE;
       c_parser_consume_token (parser);
@@ -4528,7 +4528,7 @@ c_parser_unary_expression (c_parser *parser)
     case CPP_PLUS:
       c_parser_consume_token (parser);
       if (!c_dialect_objc () && warn_traditional && !in_system_header)
-       warning ("traditional C rejects the unary plus operator");
+       warning (0, "traditional C rejects the unary plus operator");
       ret.value
        = build_unary_op (CONVERT_EXPR,
                          c_parser_cast_expression (parser, NULL).value, 0);
index cc1dd28..c018189 100644 (file)
@@ -36,8 +36,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include "tm_p.h"
 #include "target.h"
 
-#define GCC_BAD(msgid) do { warning (msgid); return; } while (0)
-#define GCC_BAD2(msgid, arg) do { warning (msgid, arg); return; } while (0)
+#define GCC_BAD(msgid) do { warning (0, msgid); return; } while (0)
+#define GCC_BAD2(msgid, arg) do { warning (0, msgid, arg); return; } while (0)
 
 typedef struct align_stack GTY(())
 {
@@ -108,7 +108,7 @@ pop_alignment (tree id)
            break;
          }
       if (entry == NULL)
-       warning ("\
+       warning (0, "\
 #pragma pack(pop, %s) encountered without matching #pragma pack(push, %s)"
                 , IDENTIFIER_POINTER (id), IDENTIFIER_POINTER (id));
     }
@@ -201,7 +201,7 @@ handle_pragma_pack (cpp_reader * ARG_UNUSED (dummy))
     GCC_BAD ("malformed %<#pragma pack%> - ignored");
 
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of %<#pragma pack%>");
+    warning (0, "junk at end of %<#pragma pack%>");
 
   if (flag_pack_struct)
     GCC_BAD ("#pragma pack has no effect with -fpack-struct - ignored");
@@ -257,7 +257,7 @@ apply_pragma_weak (tree decl, tree value)
   if (SUPPORTS_WEAK && DECL_EXTERNAL (decl) && TREE_USED (decl)
       && !DECL_WEAK (decl) /* Don't complain about a redundant #pragma.  */
       && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)))
-    warning ("%Japplying #pragma weak %qD after first use results "
+    warning (0, "%Japplying #pragma weak %qD after first use results "
              "in unspecified behavior", decl, decl);
 
   declare_weak (decl);
@@ -340,7 +340,7 @@ handle_pragma_weak (cpp_reader * ARG_UNUSED (dummy))
       t = c_lex (&x);
     }
   if (t != CPP_EOF)
-    warning ("junk at end of #pragma weak");
+    warning (0, "junk at end of #pragma weak");
 
   decl = identifier_global_value (name);
   if (decl && DECL_P (decl))
@@ -413,12 +413,12 @@ handle_pragma_redefine_extname (cpp_reader * ARG_UNUSED (dummy))
     GCC_BAD ("malformed #pragma redefine_extname, ignored");
   t = c_lex (&x);
   if (t != CPP_EOF)
-    warning ("junk at end of #pragma redefine_extname");
+    warning (0, "junk at end of #pragma redefine_extname");
 
   if (!flag_mudflap && !targetm.handle_pragma_redefine_extname)
     {
       if (warn_unknown_pragmas > in_system_header)
-       warning ("#pragma redefine_extname not supported on this target");
+       warning (0, "#pragma redefine_extname not supported on this target");
       return;
     }
 
@@ -435,7 +435,7 @@ handle_pragma_redefine_extname (cpp_reader * ARG_UNUSED (dummy))
          name = targetm.strip_name_encoding (name);
 
          if (strcmp (name, IDENTIFIER_POINTER (newname)))
-           warning ("#pragma redefine_extname ignored due to conflict with "
+           warning (0, "#pragma redefine_extname ignored due to conflict with "
                     "previous rename");
        }
       else
@@ -458,7 +458,7 @@ add_to_renaming_pragma_list (tree oldname, tree newname)
   if (previous)
     {
       if (TREE_VALUE (previous) != newname)
-       warning ("#pragma redefine_extname ignored due to conflict with "
+       warning (0, "#pragma redefine_extname ignored due to conflict with "
                 "previous #pragma redefine_extname");
       return;
     }
@@ -480,13 +480,13 @@ handle_pragma_extern_prefix (cpp_reader * ARG_UNUSED (dummy))
     GCC_BAD ("malformed #pragma extern_prefix, ignored");
   t = c_lex (&x);
   if (t != CPP_EOF)
-    warning ("junk at end of #pragma extern_prefix");
+    warning (0, "junk at end of #pragma extern_prefix");
 
   if (targetm.handle_pragma_extern_prefix)
     /* Note that the length includes the null terminator.  */
     pragma_extern_prefix = (TREE_STRING_LENGTH (prefix) > 1 ? prefix : NULL);
   else if (warn_unknown_pragmas > in_system_header)
-    warning ("#pragma extern_prefix not supported on this target");
+    warning (0, "#pragma extern_prefix not supported on this target");
 }
 
 /* Hook from the front ends to apply the results of one of the preceding
@@ -512,7 +512,7 @@ maybe_apply_renaming_pragma (tree decl, tree asmname)
       oldname = targetm.strip_name_encoding (oldname);
 
       if (asmname && strcmp (TREE_STRING_POINTER (asmname), oldname))
-         warning ("asm declaration ignored due to "
+         warning (0, "asm declaration ignored due to "
                   "conflict with previous rename");
 
       /* Take any pending redefine_extname off the list.  */
@@ -521,7 +521,7 @@ maybe_apply_renaming_pragma (tree decl, tree asmname)
          {
            /* Only warn if there is a conflict.  */
            if (strcmp (IDENTIFIER_POINTER (TREE_VALUE (t)), oldname))
-             warning ("#pragma redefine_extname ignored due to "
+             warning (0, "#pragma redefine_extname ignored due to "
                       "conflict with previous rename");
 
            *p = TREE_CHAIN (t);
@@ -543,7 +543,7 @@ maybe_apply_renaming_pragma (tree decl, tree asmname)
          {
            if (strcmp (TREE_STRING_POINTER (asmname),
                        IDENTIFIER_POINTER (newname)) != 0)
-             warning ("#pragma redefine_extname ignored due to "
+             warning (0, "#pragma redefine_extname ignored due to "
                       "conflict with __asm__ declaration");
            return asmname;
          }
@@ -654,7 +654,7 @@ handle_pragma_visibility (cpp_reader *dummy ATTRIBUTE_UNUSED)
         }
     }
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of %<#pragma GCC visibility%>");
+    warning (0, "junk at end of %<#pragma GCC visibility%>");
 }
 
 #endif
index 60ce6b6..cde90a7 100644 (file)
@@ -1068,7 +1068,7 @@ function_types_compatible_p (tree f1, tree f2)
        return 0;
       /* If one of these types comes from a non-prototype fn definition,
         compare that with the other type's arglist.
-        If they don't match, ask for a warning (but no error).  */
+        If they don't match, ask for a warning (0, but no error).  */
       if (TYPE_ACTUAL_ARG_TYPES (f1)
          && 1 != type_lists_compatible_p (args2, TYPE_ACTUAL_ARG_TYPES (f1)))
        val = 2;
@@ -1646,7 +1646,7 @@ build_indirect_ref (tree ptr, const char *errorstring)
              return error_mark_node;
            }
          if (VOID_TYPE_P (t) && skip_evaluation == 0)
-           warning ("dereferencing %<void *%> pointer");
+           warning (0, "dereferencing %<void *%> pointer");
 
          /* We *must* set TREE_READONLY when dereferencing a pointer to const,
             so that we get the proper error message if the result is used
@@ -1721,7 +1721,7 @@ build_array_ref (tree array, tree index)
      char[array].  */
   if (warn_char_subscripts && !swapped
       && TYPE_MAIN_VARIANT (TREE_TYPE (index)) == char_type_node)
-    warning ("array subscript has type %<char%>");
+    warning (0, "array subscript has type %<char%>");
 
   /* Apply default promotions *after* noticing character types.  */
   index = default_conversion (index);
@@ -2040,7 +2040,7 @@ build_function_call (tree function, tree params)
       /* This situation leads to run-time undefined behavior.  We can't,
         therefore, simply error unless we can prove that all possible
         executions of the program must execute the code.  */
-      warning ("function called through a non-compatible type");
+      warning (0, "function called through a non-compatible type");
 
       /* We can, however, treat "undefined" any way we please.
         Call abort to encourage the user to fix the program.  */
@@ -2185,32 +2185,32 @@ convert_arguments (tree typelist, tree values, tree function, tree fundecl)
 
                  if (INTEGRAL_TYPE_P (type)
                      && TREE_CODE (TREE_TYPE (val)) == REAL_TYPE)
-                   warning ("passing argument %d of %qE as integer "
+                   warning (0, "passing argument %d of %qE as integer "
                             "rather than floating due to prototype",
                             argnum, rname);
                  if (INTEGRAL_TYPE_P (type)
                      && TREE_CODE (TREE_TYPE (val)) == COMPLEX_TYPE)
-                   warning ("passing argument %d of %qE as integer "
+                   warning (0, "passing argument %d of %qE as integer "
                             "rather than complex due to prototype",
                             argnum, rname);
                  else if (TREE_CODE (type) == COMPLEX_TYPE
                           && TREE_CODE (TREE_TYPE (val)) == REAL_TYPE)
-                   warning ("passing argument %d of %qE as complex "
+                   warning (0, "passing argument %d of %qE as complex "
                             "rather than floating due to prototype",
                             argnum, rname);
                  else if (TREE_CODE (type) == REAL_TYPE
                           && INTEGRAL_TYPE_P (TREE_TYPE (val)))
-                   warning ("passing argument %d of %qE as floating "
+                   warning (0, "passing argument %d of %qE as floating "
                             "rather than integer due to prototype",
                             argnum, rname);
                  else if (TREE_CODE (type) == COMPLEX_TYPE
                           && INTEGRAL_TYPE_P (TREE_TYPE (val)))
-                   warning ("passing argument %d of %qE as complex "
+                   warning (0, "passing argument %d of %qE as complex "
                             "rather than integer due to prototype",
                             argnum, rname);
                  else if (TREE_CODE (type) == REAL_TYPE
                           && TREE_CODE (TREE_TYPE (val)) == COMPLEX_TYPE)
-                   warning ("passing argument %d of %qE as floating "
+                   warning (0, "passing argument %d of %qE as floating "
                             "rather than complex due to prototype",
                             argnum, rname);
                  /* ??? At some point, messages should be written about
@@ -2222,7 +2222,7 @@ convert_arguments (tree typelist, tree values, tree function, tree fundecl)
                      /* Warn if any argument is passed as `float',
                         since without a prototype it would be `double'.  */
                      if (formal_prec == TYPE_PRECISION (float_type_node))
-                       warning ("passing argument %d of %qE as %<float%> "
+                       warning (0, "passing argument %d of %qE as %<float%> "
                                 "rather than %<double%> due to prototype",
                                 argnum, rname);
                    }
@@ -2242,7 +2242,7 @@ convert_arguments (tree typelist, tree values, tree function, tree fundecl)
                           and the actual arg is that enum type.  */
                        ;
                      else if (formal_prec != TYPE_PRECISION (type1))
-                       warning ("passing argument %d of %qE with different "
+                       warning (0, "passing argument %d of %qE with different "
                                 "width due to prototype", argnum, rname);
                      else if (TYPE_UNSIGNED (type) == TYPE_UNSIGNED (type1))
                        ;
@@ -2264,10 +2264,10 @@ convert_arguments (tree typelist, tree values, tree function, tree fundecl)
                               && TYPE_UNSIGNED (TREE_TYPE (val)))
                        ;
                      else if (TYPE_UNSIGNED (type))
-                       warning ("passing argument %d of %qE as unsigned "
+                       warning (0, "passing argument %d of %qE as unsigned "
                                 "due to prototype", argnum, rname);
                      else
-                       warning ("passing argument %d of %qE as signed "
+                       warning (0, "passing argument %d of %qE as signed "
                                 "due to prototype", argnum, rname);
                    }
                }
@@ -2340,14 +2340,14 @@ parser_build_binary_op (enum tree_code code, struct c_expr arg1,
        {
          if (code1 == PLUS_EXPR || code1 == MINUS_EXPR
              || code2 == PLUS_EXPR || code2 == MINUS_EXPR)
-           warning ("suggest parentheses around + or - inside shift");
+           warning (0, "suggest parentheses around + or - inside shift");
        }
 
       if (code == TRUTH_ORIF_EXPR)
        {
          if (code1 == TRUTH_ANDIF_EXPR
              || code2 == TRUTH_ANDIF_EXPR)
-           warning ("suggest parentheses around && within ||");
+           warning (0, "suggest parentheses around && within ||");
        }
 
       if (code == BIT_IOR_EXPR)
@@ -2356,11 +2356,11 @@ parser_build_binary_op (enum tree_code code, struct c_expr arg1,
              || code1 == PLUS_EXPR || code1 == MINUS_EXPR
              || code2 == BIT_AND_EXPR || code2 == BIT_XOR_EXPR
              || code2 == PLUS_EXPR || code2 == MINUS_EXPR)
-           warning ("suggest parentheses around arithmetic in operand of |");
+           warning (0, "suggest parentheses around arithmetic in operand of |");
          /* Check cases like x|y==z */
          if (TREE_CODE_CLASS (code1) == tcc_comparison
              || TREE_CODE_CLASS (code2) == tcc_comparison)
-           warning ("suggest parentheses around comparison in operand of |");
+           warning (0, "suggest parentheses around comparison in operand of |");
        }
 
       if (code == BIT_XOR_EXPR)
@@ -2369,28 +2369,28 @@ parser_build_binary_op (enum tree_code code, struct c_expr arg1,
              || code1 == PLUS_EXPR || code1 == MINUS_EXPR
              || code2 == BIT_AND_EXPR
              || code2 == PLUS_EXPR || code2 == MINUS_EXPR)
-           warning ("suggest parentheses around arithmetic in operand of ^");
+           warning (0, "suggest parentheses around arithmetic in operand of ^");
          /* Check cases like x^y==z */
          if (TREE_CODE_CLASS (code1) == tcc_comparison
              || TREE_CODE_CLASS (code2) == tcc_comparison)
-           warning ("suggest parentheses around comparison in operand of ^");
+           warning (0, "suggest parentheses around comparison in operand of ^");
        }
 
       if (code == BIT_AND_EXPR)
        {
          if (code1 == PLUS_EXPR || code1 == MINUS_EXPR
              || code2 == PLUS_EXPR || code2 == MINUS_EXPR)
-           warning ("suggest parentheses around + or - in operand of &");
+           warning (0, "suggest parentheses around + or - in operand of &");
          /* Check cases like x&y==z */
          if (TREE_CODE_CLASS (code1) == tcc_comparison
              || TREE_CODE_CLASS (code2) == tcc_comparison)
-           warning ("suggest parentheses around comparison in operand of &");
+           warning (0, "suggest parentheses around comparison in operand of &");
        }
       /* Similarly, check for cases like 1<=i<=10 that are probably errors.  */
       if (TREE_CODE_CLASS (code) == tcc_comparison
          && (TREE_CODE_CLASS (code1) == tcc_comparison
              || TREE_CODE_CLASS (code2) == tcc_comparison))
-       warning ("comparisons like X<=Y<=Z do not have their mathematical meaning");
+       warning (0, "comparisons like X<=Y<=Z do not have their mathematical meaning");
 
     }
 
@@ -3003,7 +3003,7 @@ build_conditional_expr (tree ifexp, tree op1, tree op2)
                       || (unsigned_op1 && tree_expr_nonnegative_p (op2)))
                /* OK */;
              else
-               warning ("signed and unsigned type in conditional expression");
+               warning (0, "signed and unsigned type in conditional expression");
            }
        }
     }
@@ -3111,7 +3111,7 @@ build_compound_expr (tree expr1, tree expr2)
       if (warn_unused_value
            && !(TREE_CODE (expr1) == CONVERT_EXPR
                 && VOID_TYPE_P (TREE_TYPE (expr1))))
-        warning ("left-hand operand of comma expression has no effect");
+        warning (0, "left-hand operand of comma expression has no effect");
     }
 
   /* With -Wunused, we should also warn if the left-hand operand does have
@@ -3238,12 +3238,12 @@ build_c_cast (tree type, tree expr)
                 && TREE_CODE (in_otype) == POINTER_TYPE);
 
          if (added)
-           warning ("cast adds new qualifiers to function type");
+           warning (0, "cast adds new qualifiers to function type");
 
          if (discarded)
            /* There are qualifiers present in IN_OTYPE that are not
               present in IN_TYPE.  */
-           warning ("cast discards qualifiers from pointer target type");
+           warning (0, "cast discards qualifiers from pointer target type");
        }
 
       /* Warn about possible alignment problems.  */
@@ -3258,19 +3258,19 @@ build_c_cast (tree type, tree expr)
                || TREE_CODE (TREE_TYPE (otype)) == RECORD_TYPE)
               && TYPE_MODE (TREE_TYPE (otype)) == VOIDmode)
          && TYPE_ALIGN (TREE_TYPE (type)) > TYPE_ALIGN (TREE_TYPE (otype)))
-       warning ("cast increases required alignment of target type");
+       warning (0, "cast increases required alignment of target type");
 
       if (warn_pointer_to_int_cast
          && TREE_CODE (type) == INTEGER_TYPE
          && TREE_CODE (otype) == POINTER_TYPE
          && TYPE_PRECISION (type) != TYPE_PRECISION (otype)
          && !TREE_CONSTANT (value))
-       warning ("cast from pointer to integer of different size");
+       warning (0, "cast from pointer to integer of different size");
 
       if (warn_bad_function_cast
          && TREE_CODE (value) == CALL_EXPR
          && TREE_CODE (type) != TREE_CODE (otype))
-       warning ("cast from function call of type %qT to non-matching "
+       warning (0, "cast from function call of type %qT to non-matching "
                 "type %qT", otype, type);
 
       if (warn_int_to_pointer_cast
@@ -3279,7 +3279,7 @@ build_c_cast (tree type, tree expr)
          && TYPE_PRECISION (type) != TYPE_PRECISION (otype)
          /* Don't warn about converting any constant.  */
          && !TREE_CONSTANT (value))
-       warning ("cast to pointer from integer of different size");
+       warning (0, "cast to pointer from integer of different size");
 
       if (TREE_CODE (type) == POINTER_TYPE
          && TREE_CODE (otype) == POINTER_TYPE
@@ -3291,17 +3291,17 @@ build_c_cast (tree type, tree expr)
          /* Casting the address of a decl to non void pointer. Warn
             if the cast breaks type based aliasing.  */
          if (!COMPLETE_TYPE_P (TREE_TYPE (type)))
-           warning ("type-punning to incomplete type might break strict-aliasing rules");
+           warning (0, "type-punning to incomplete type might break strict-aliasing rules");
          else
            {
              HOST_WIDE_INT set1 = get_alias_set (TREE_TYPE (TREE_OPERAND (expr, 0)));
              HOST_WIDE_INT set2 = get_alias_set (TREE_TYPE (type));
 
              if (!alias_sets_conflict_p (set1, set2))
-               warning ("dereferencing type-punned pointer will break strict-aliasing rules");
+               warning (0, "dereferencing type-punned pointer will break strict-aliasing rules");
              else if (warn_strict_aliasing > 1
                       && !alias_sets_might_conflict_p (set1, set2))
-               warning ("dereferencing type-punned pointer might break strict-aliasing rules");
+               warning (0, "dereferencing type-punned pointer might break strict-aliasing rules");
            }
        }
 
@@ -3507,7 +3507,7 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
        pedwarn (AR, parmnum, rname);           \
        break;                                  \
       case ic_argpass_nonproto:                        \
-       warning (AR, parmnum, rname);           \
+       warning (0, AR, parmnum, rname);                \
        break;                                  \
       case ic_assign:                          \
        pedwarn (AS);                           \
@@ -3950,7 +3950,7 @@ store_init_value (tree decl, tree init)
 
   if (warn_traditional && !in_system_header
       && AGGREGATE_TYPE_P (TREE_TYPE (decl)) && !TREE_STATIC (decl))
-    warning ("traditional C rejects automatic aggregate initialization");
+    warning (0, "traditional C rejects automatic aggregate initialization");
 
   DECL_INITIAL (decl) = value;
 
@@ -4144,10 +4144,10 @@ warning_init (const char *msgid)
 {
   char *ofwhat;
 
-  warning ("%s", _(msgid));
+  warning (0, "%s", _(msgid));
   ofwhat = print_spelling ((char *) alloca (spelling_length () + 1));
   if (*ofwhat)
-    warning ("(near initialization for %qs)", ofwhat);
+    warning (0, "(near initialization for %qs)", ofwhat);
 }
 \f
 /* If TYPE is an array type and EXPR is a parenthesized string
@@ -6186,7 +6186,7 @@ process_init_element (struct c_expr value)
          if (warn_traditional && !in_system_header && !constructor_designated
              && !(value.value && (integer_zerop (value.value)
                                   || real_zerop (value.value))))
-           warning ("traditional C rejects initialization of unions");
+           warning (0, "traditional C rejects initialization of unions");
 
          /* Accept a string constant to initialize a subarray.  */
          if (value.value != 0
@@ -6549,7 +6549,7 @@ c_finish_return (tree retval)
   tree valtype = TREE_TYPE (TREE_TYPE (current_function_decl));
 
   if (TREE_THIS_VOLATILE (current_function_decl))
-    warning ("function declared %<noreturn%> has a %<return%> statement");
+    warning (0, "function declared %<noreturn%> has a %<return%> statement");
 
   if (!retval)
     {
@@ -6620,7 +6620,7 @@ c_finish_return (tree retval)
                  && !DECL_EXTERNAL (inner)
                  && !TREE_STATIC (inner)
                  && DECL_CONTEXT (inner) == current_function_decl)
-               warning ("function returns address of local variable");
+               warning (0, "function returns address of local variable");
              break;
 
            default:
@@ -6702,7 +6702,7 @@ c_start_case (tree exp)
          if (warn_traditional && !in_system_header
              && (type == long_integer_type_node
                  || type == long_unsigned_type_node))
-           warning ("%<long%> switch expression not converted to "
+           warning (0, "%<long%> switch expression not converted to "
                     "%<int%> in ISO C");
 
          exp = default_conversion (exp);
@@ -6837,7 +6837,7 @@ c_finish_if_stmt (location_t if_locus, tree cond, tree then_block,
     found:
 
       if (COND_EXPR_ELSE (inner_if))
-        warning ("%Hsuggest explicit braces to avoid ambiguous %<else%>",
+        warning (0, "%Hsuggest explicit braces to avoid ambiguous %<else%>",
                  &if_locus);
     }
 
@@ -6847,7 +6847,7 @@ c_finish_if_stmt (location_t if_locus, tree cond, tree then_block,
       if (TREE_CODE (then_block) == NOP_EXPR && !TREE_TYPE (then_block))
        {
          if (!else_block)
-           warning ("%Hempty body in an if-statement",
+           warning (0, "%Hempty body in an if-statement",
                     EXPR_LOCUS (then_block));
          then_block = alloc_stmt_list ();
        }
@@ -6855,7 +6855,7 @@ c_finish_if_stmt (location_t if_locus, tree cond, tree then_block,
          && TREE_CODE (else_block) == NOP_EXPR
          && !TREE_TYPE (else_block))
        {
-         warning ("%Hempty body in an else-statement",
+         warning (0, "%Hempty body in an else-statement",
                   EXPR_LOCUS (else_block));
          else_block = alloc_stmt_list ();
        }
@@ -6986,7 +6986,7 @@ emit_side_effect_warnings (tree expr)
   else if (!TREE_SIDE_EFFECTS (expr))
     {
       if (!VOID_TYPE_P (TREE_TYPE (expr)) && !TREE_NO_WARNING (expr))
-       warning ("%Hstatement with no effect",
+       warning (0, "%Hstatement with no effect",
                 EXPR_HAS_LOCATION (expr) ? EXPR_LOCUS (expr) : &input_location);
     }
   else if (warn_unused_value)
@@ -7454,7 +7454,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
       /* Floating point division by zero is a legitimate way to obtain
         infinities and NaNs.  */
       if (warn_div_by_zero && skip_evaluation == 0 && integer_zerop (op1))
-       warning ("division by zero");
+       warning (0, "division by zero");
 
       if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
           || code0 == COMPLEX_TYPE || code0 == VECTOR_TYPE)
@@ -7493,7 +7493,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
     case TRUNC_MOD_EXPR:
     case FLOOR_MOD_EXPR:
       if (warn_div_by_zero && skip_evaluation == 0 && integer_zerop (op1))
-       warning ("division by zero");
+       warning (0, "division by zero");
 
       if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE)
        {
@@ -7538,14 +7538,14 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
          if (TREE_CODE (op1) == INTEGER_CST && skip_evaluation == 0)
            {
              if (tree_int_cst_sgn (op1) < 0)
-               warning ("right shift count is negative");
+               warning (0, "right shift count is negative");
              else
                {
                  if (!integer_zerop (op1))
                    short_shift = 1;
 
                  if (compare_tree_int (op1, TYPE_PRECISION (type0)) >= 0)
-                   warning ("right shift count >= width of type");
+                   warning (0, "right shift count >= width of type");
                }
            }
 
@@ -7566,10 +7566,10 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
          if (TREE_CODE (op1) == INTEGER_CST && skip_evaluation == 0)
            {
              if (tree_int_cst_sgn (op1) < 0)
-               warning ("left shift count is negative");
+               warning (0, "left shift count is negative");
 
              else if (compare_tree_int (op1, TYPE_PRECISION (type0)) >= 0)
-               warning ("left shift count >= width of type");
+               warning (0, "left shift count >= width of type");
            }
 
          /* Use the type of the value to be shifted.  */
@@ -7586,7 +7586,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
     case EQ_EXPR:
     case NE_EXPR:
       if (warn_float_equal && (code0 == REAL_TYPE || code1 == REAL_TYPE))
-       warning ("comparing floating point with == or != is unsafe");
+       warning (0, "comparing floating point with == or != is unsafe");
       /* Result of comparison is always int,
         but don't convert the args to int!  */
       build_type = integer_type_node;
@@ -7903,7 +7903,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
                            c_common_signed_type (result_type)))
                    /* OK */;
                  else
-                   warning ("comparison between signed and unsigned");
+                   warning (0, "comparison between signed and unsigned");
                }
 
              /* Warn if two unsigned values are being compared in a size
@@ -7949,7 +7949,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
                        {
                          mask = (~(HOST_WIDE_INT) 0) << bits;
                          if ((mask & constant) != mask)
-                           warning ("comparison of promoted ~unsigned with constant");
+                           warning (0, "comparison of promoted ~unsigned with constant");
                        }
                    }
                  else if (unsignedp0 && unsignedp1
@@ -7957,7 +7957,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
                               < TYPE_PRECISION (result_type))
                           && (TYPE_PRECISION (TREE_TYPE (primop1))
                               < TYPE_PRECISION (result_type)))
-                   warning ("comparison of promoted ~unsigned with unsigned");
+                   warning (0, "comparison of promoted ~unsigned with unsigned");
                }
            }
        }
index 3eb16c0..df9c734 100644 (file)
@@ -1935,7 +1935,7 @@ expand_call (tree exp, rtx target, int ignore)
   /* Warn if this value is an aggregate type,
      regardless of which calling convention we are using for it.  */
   if (warn_aggregate_return && AGGREGATE_TYPE_P (TREE_TYPE (exp)))
-    warning ("function call has aggregate value");
+    warning (0, "function call has aggregate value");
 
   /* If the result of a pure or const function call is ignored (or void),
      and none of its arguments are volatile, we can avoid expanding the
index 5ed13bc..adef0bd 100644 (file)
@@ -712,7 +712,7 @@ change_decl_assembler_name (tree decl, tree name)
 
   if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))
       && DECL_RTL_SET_P (decl))
-    warning ("%D renamed after being referenced in assembly", decl);
+    warning (0, "%D renamed after being referenced in assembly", decl);
 
   SET_DECL_ASSEMBLER_NAME (decl, name);
 }
index 69d67f9..631855c 100644 (file)
@@ -310,7 +310,7 @@ override_options (void)
   /* Unicos/Mk doesn't have shared libraries.  */
   if (TARGET_ABI_UNICOSMK && flag_pic)
     {
-      warning ("-f%s ignored for Unicos/Mk (not supported)",
+      warning (0, "-f%s ignored for Unicos/Mk (not supported)",
               (flag_pic > 1) ? "PIC" : "pic");
       flag_pic = 0;
     }
@@ -334,7 +334,7 @@ override_options (void)
   if (TARGET_IEEE)
     {
       if (TARGET_ABI_UNICOSMK)
-       warning ("-mieee not supported on Unicos/Mk");
+       warning (0, "-mieee not supported on Unicos/Mk");
       else
        {
          alpha_tp = ALPHA_TP_INSN;
@@ -345,7 +345,7 @@ override_options (void)
   if (TARGET_IEEE_WITH_INEXACT)
     {
       if (TARGET_ABI_UNICOSMK)
-       warning ("-mieee-with-inexact not supported on Unicos/Mk");
+       warning (0, "-mieee-with-inexact not supported on Unicos/Mk");
       else
        {
          alpha_tp = ALPHA_TP_INSN;
@@ -424,14 +424,14 @@ override_options (void)
 
   if (TARGET_ABI_UNICOSMK && alpha_fptm != ALPHA_FPTM_N)
     {
-      warning ("trap mode not supported on Unicos/Mk");
+      warning (0, "trap mode not supported on Unicos/Mk");
       alpha_fptm = ALPHA_FPTM_N;
     }
 
   if ((alpha_fptm == ALPHA_FPTM_SU || alpha_fptm == ALPHA_FPTM_SUI)
       && alpha_tp != ALPHA_TP_INSN && alpha_cpu != PROCESSOR_EV6)
     {
-      warning ("fp software completion requires -mtrap-precision=i");
+      warning (0, "fp software completion requires -mtrap-precision=i");
       alpha_tp = ALPHA_TP_INSN;
     }
 
@@ -447,16 +447,16 @@ override_options (void)
     {
       if (alpha_fprm == ALPHA_FPRM_MINF || alpha_fprm == ALPHA_FPRM_DYN)
        {
-         warning ("rounding mode not supported for VAX floats");
+         warning (0, "rounding mode not supported for VAX floats");
          alpha_fprm = ALPHA_FPRM_NORM;
        }
       if (alpha_fptm == ALPHA_FPTM_SUI)
        {
-         warning ("trap mode not supported for VAX floats");
+         warning (0, "trap mode not supported for VAX floats");
          alpha_fptm = ALPHA_FPTM_SU;
        }
       if (target_flags_explicit & MASK_LONG_DOUBLE_128)
-       warning ("128-bit long double not supported for VAX floats");
+       warning (0, "128-bit long double not supported for VAX floats");
       target_flags &= ~MASK_LONG_DOUBLE_128;
     }
 
@@ -484,7 +484,7 @@ override_options (void)
        lat = alpha_mlat_string[1] - '0';
        if (lat <= 0 || lat > 3 || cache_latency[alpha_tune][lat-1] == -1)
          {
-           warning ("L%d cache latency unknown for %s",
+           warning (0, "L%d cache latency unknown for %s",
                     lat, alpha_cpu_name[alpha_tune]);
            lat = 3;
          }
@@ -499,7 +499,7 @@ override_options (void)
       }
     else
       {
-       warning ("bad value %qs for -mmemory-latency", alpha_mlat_string);
+       warning (0, "bad value %qs for -mmemory-latency", alpha_mlat_string);
        lat = 3;
       }
 
index 1fc9291..91c27c1 100644 (file)
@@ -410,14 +410,14 @@ arc_handle_interrupt_attribute (tree *node ATTRIBUTE_UNUSED,
 
   if (TREE_CODE (value) != STRING_CST)
     {
-      warning ("argument of %qs attribute is not a string constant",
+      warning (0, "argument of %qs attribute is not a string constant",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
   else if (strcmp (TREE_STRING_POINTER (value), "ilink1")
           && strcmp (TREE_STRING_POINTER (value), "ilink2"))
     {
-      warning ("argument of %qs attribute is not \"ilink1\" or \"ilink2\"",
+      warning (0, "argument of %qs attribute is not \"ilink1\" or \"ilink2\"",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index ab53a17..7349b1e 100644 (file)
@@ -806,7 +806,7 @@ arm_override_options (void)
                       a warning though, and we prefer the CPU over the
                       architecture.  */
                    if (insn_flags != 0 && (insn_flags ^ sel->flags))
-                     warning ("switch -mcpu=%s conflicts with -march= switch",
+                     warning (0, "switch -mcpu=%s conflicts with -march= switch",
                               ptr->string);
 
                    insn_flags = sel->flags;
@@ -925,19 +925,19 @@ arm_override_options (void)
      other command line choices.  */
   if (TARGET_INTERWORK && !(insn_flags & FL_THUMB))
     {
-      warning ("target CPU does not support interworking" );
+      warning (0, "target CPU does not support interworking" );
       target_flags &= ~ARM_FLAG_INTERWORK;
     }
 
   if (TARGET_THUMB && !(insn_flags & FL_THUMB))
     {
-      warning ("target CPU does not support THUMB instructions");
+      warning (0, "target CPU does not support THUMB instructions");
       target_flags &= ~ARM_FLAG_THUMB;
     }
 
   if (TARGET_APCS_FRAME && TARGET_THUMB)
     {
-      /* warning ("ignoring -mapcs-frame because -mthumb was used"); */
+      /* warning (0, "ignoring -mapcs-frame because -mthumb was used"); */
       target_flags &= ~ARM_FLAG_APCS_FRAME;
     }
 
@@ -945,17 +945,17 @@ arm_override_options (void)
      from here where no function is being compiled currently.  */
   if ((target_flags & (THUMB_FLAG_LEAF_BACKTRACE | THUMB_FLAG_BACKTRACE))
       && TARGET_ARM)
-    warning ("enabling backtrace support is only meaningful when compiling for the Thumb");
+    warning (0, "enabling backtrace support is only meaningful when compiling for the Thumb");
 
   if (TARGET_ARM && TARGET_CALLEE_INTERWORKING)
-    warning ("enabling callee interworking support is only meaningful when compiling for the Thumb");
+    warning (0, "enabling callee interworking support is only meaningful when compiling for the Thumb");
 
   if (TARGET_ARM && TARGET_CALLER_INTERWORKING)
-    warning ("enabling caller interworking support is only meaningful when compiling for the Thumb");
+    warning (0, "enabling caller interworking support is only meaningful when compiling for the Thumb");
 
   if (TARGET_APCS_STACK && !TARGET_APCS_FRAME)
     {
-      warning ("-mapcs-stack-check incompatible with -mno-apcs-frame");
+      warning (0, "-mapcs-stack-check incompatible with -mno-apcs-frame");
       target_flags |= ARM_FLAG_APCS_FRAME;
     }
 
@@ -966,7 +966,7 @@ arm_override_options (void)
     error ("-fpic and -mapcs-reent are incompatible");
 
   if (TARGET_APCS_REENT)
-    warning ("APCS reentrant code not supported.  Ignored");
+    warning (0, "APCS reentrant code not supported.  Ignored");
 
   /* If this target is normally configured to use APCS frames, warn if they
      are turned off and debugging is turned on.  */
@@ -974,7 +974,7 @@ arm_override_options (void)
       && write_symbols != NO_DEBUG
       && !TARGET_APCS_FRAME
       && (TARGET_DEFAULT & ARM_FLAG_APCS_FRAME))
-    warning ("-g with -mno-apcs-frame may not give sensible debugging");
+    warning (0, "-g with -mno-apcs-frame may not give sensible debugging");
 
   /* If stack checking is disabled, we can use r10 as the PIC register,
      which keeps r9 available.  */
@@ -982,7 +982,7 @@ arm_override_options (void)
     arm_pic_register = TARGET_APCS_STACK ? 9 : 10;
 
   if (TARGET_APCS_FLOAT)
-    warning ("passing floating point arguments in fp regs not yet supported");
+    warning (0, "passing floating point arguments in fp regs not yet supported");
 
   /* Initialize boolean versions of the flags, for use in the arm.md file.  */
   arm_arch3m = (insn_flags & FL_ARCH3M) != 0;
@@ -1141,7 +1141,7 @@ arm_override_options (void)
          || (ARM_DOUBLEWORD_ALIGN && size == 64))
        arm_structure_size_boundary = size;
       else
-       warning ("structure size boundary can only be set to %s",
+       warning (0, "structure size boundary can only be set to %s",
                 ARM_DOUBLEWORD_ALIGN ? "8, 32 or 64": "8 or 32");
     }
 
@@ -1150,7 +1150,7 @@ arm_override_options (void)
       int pic_register = decode_reg_name (arm_pic_register_string);
 
       if (!flag_pic)
-       warning ("-mpic-register= is useless without -fpic");
+       warning (0, "-mpic-register= is useless without -fpic");
 
       /* Prevent the user from choosing an obviously stupid PIC register.  */
       else if (pic_register < 0 || call_used_regs[pic_register]
@@ -2674,7 +2674,7 @@ arm_handle_fndecl_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -2692,7 +2692,7 @@ arm_handle_isr_attribute (tree *node, tree name, tree args, int flags,
     {
       if (TREE_CODE (*node) != FUNCTION_DECL)
        {
-         warning ("%qs attribute only applies to functions",
+         warning (0, "%qs attribute only applies to functions",
                   IDENTIFIER_POINTER (name));
          *no_add_attrs = true;
        }
@@ -2706,7 +2706,7 @@ arm_handle_isr_attribute (tree *node, tree name, tree args, int flags,
        {
          if (arm_isr_value (args) == ARM_FT_UNKNOWN)
            {
-             warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+             warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
              *no_add_attrs = true;
            }
        }
@@ -2733,7 +2733,7 @@ arm_handle_isr_attribute (tree *node, tree name, tree args, int flags,
            }
          else
            {
-             warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+             warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
            }
        }
     }
@@ -11400,7 +11400,7 @@ arm_debugger_arg_offset (int value, rtx addr)
   if (value == 0)
     {
       debug_rtx (addr);
-      warning ("unable to compute real location of stacked parameter");
+      warning (0, "unable to compute real location of stacked parameter");
       value = 8; /* XXX magic hack */
     }
 
index 0f8f803..bc51d91 100644 (file)
@@ -552,7 +552,7 @@ out_adj_frame_ptr (FILE *file, int adj)
       if (TARGET_TINY_STACK)
        {
          if (adj < -63 || adj > 63)
-           warning ("large frame pointer change (%d) with -mtiny-stack", adj);
+           warning (0, "large frame pointer change (%d) with -mtiny-stack", adj);
 
          /* The high byte (r29) doesn't change - prefer "subi" (1 cycle)
             over "sbiw" (2 cycles, same size).  */
@@ -4670,14 +4670,14 @@ avr_handle_progmem_attribute (tree *node, tree name,
        {
          if (DECL_INITIAL (*node) == NULL_TREE && !DECL_EXTERNAL (*node))
            {
-             warning ("only initialized variables can be placed into "
+             warning (0, "only initialized variables can be placed into "
                       "program memory area");
              *no_add_attrs = true;
            }
        }
       else
        {
-         warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+         warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
          *no_add_attrs = true;
        }
     }
@@ -4696,7 +4696,7 @@ avr_handle_fndecl_attribute (tree *node, tree name,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -4713,7 +4713,7 @@ avr_handle_fndecl_attribute (tree *node, tree name,
         {
           if (strncmp (func_name, "__vector", strlen ("__vector")) != 0)
             {
-              warning ("`%s' appears to be a misspelled interrupt handler",
+              warning (0, "`%s' appears to be a misspelled interrupt handler",
                        func_name);
             }
         }
@@ -4721,7 +4721,7 @@ avr_handle_fndecl_attribute (tree *node, tree name,
         {
           if (strncmp (func_name, "__vector", strlen ("__vector")) != 0)
             {
-              warning ("`%s' appears to be a misspelled signal handler",
+              warning (0, "`%s' appears to be a misspelled signal handler",
                        func_name);
             }
         }
@@ -4790,7 +4790,7 @@ avr_section_type_flags (tree decl, const char *name, int reloc)
          && DECL_INITIAL (decl) == NULL_TREE)
        flags |= SECTION_BSS;  /* @nobits */
       else
-       warning ("only uninitialized variables can be placed in the "
+       warning (0, "only uninitialized variables can be placed in the "
                 ".noinit section");
     }
 
index 559ebb7..966250a 100644 (file)
@@ -2554,7 +2554,7 @@ handle_int_attribute (tree *node, tree name,
 
   if (TREE_CODE (x) != FUNCTION_TYPE)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index 780a12b..fa30b43 100644 (file)
@@ -57,7 +57,7 @@ static int c4x_parse_pragma (const char *, tree *, tree *);
    the STRING_CST node of the string.  If SECT is null, then this
    pragma doesn't take a section string.  Returns 0 for a good pragma,
    -1 for a malformed pragma.  */
-#define BAD(msgid, arg) do { warning (msgid, arg); return -1; } while (0)
+#define BAD(msgid, arg) do { warning (0, msgid, arg); return -1; } while (0)
 
 static int
 c4x_parse_pragma (name, func, sect)
@@ -86,7 +86,7 @@ c4x_parse_pragma (name, func, sect)
     BAD ("missing ')' for '#pragma %s' - ignored", name);
 
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of '#pragma %s'", name);
+    warning (0, "junk at end of '#pragma %s'", name);
 
   *func = f;
   return 0;
index b7f54d9..3847591 100644 (file)
@@ -4485,7 +4485,7 @@ c4x_handle_fntype_attribute (tree *node, tree name,
 {
   if (TREE_CODE (*node) != FUNCTION_TYPE)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index 9c9fb16..19d250c 100644 (file)
@@ -2218,7 +2218,7 @@ cris_override_options (void)
 
   if (write_symbols == DWARF2_DEBUG && ! TARGET_ELF)
     {
-      warning ("that particular -g option is invalid with -maout and -melinux");
+      warning (0, "that particular -g option is invalid with -maout and -melinux");
       write_symbols = DBX_DEBUG;
     }
 
@@ -2730,7 +2730,7 @@ cris_expand_prologue (void)
     }
 
   if (cris_max_stackframe && framesize > cris_max_stackframe)
-    warning ("stackframe too big: %d bytes", framesize);
+    warning (0, "stackframe too big: %d bytes", framesize);
 }
 
 /* The expander for the epilogue pattern.  */
index 58366f7..1aa10d5 100644 (file)
@@ -35,7 +35,7 @@ Boston, MA 02111-1307, USA.  */
 
 /* Pragmas.  */
 
-#define BAD(msgid) do { warning (msgid); return; } while (0)
+#define BAD(msgid) do { warning (0, msgid); return; } while (0)
 
 static bool using_frameworks = false;
 
@@ -111,7 +111,7 @@ darwin_pragma_options (cpp_reader *pfile ATTRIBUTE_UNUSED)
     BAD ("malformed '#pragma options', ignoring");
 
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of '#pragma options'");
+    warning (0, "junk at end of '#pragma options'");
 
   arg = IDENTIFIER_POINTER (t);
   if (!strcmp (arg, "mac68k"))
@@ -121,7 +121,7 @@ darwin_pragma_options (cpp_reader *pfile ATTRIBUTE_UNUSED)
   else if (!strcmp (arg, "reset"))
     pop_field_alignment ();
   else
-    warning ("malformed '#pragma options align={mac68k|power|reset}', ignoring");
+    warning (0, "malformed '#pragma options align={mac68k|power|reset}', ignoring");
 }
 
 /* #pragma unused ([var {, var}*]) */
@@ -154,7 +154,7 @@ darwin_pragma_unused (cpp_reader *pfile ATTRIBUTE_UNUSED)
     BAD ("missing ')' after '#pragma unused', ignoring");
 
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of '#pragma unused'");
+    warning (0, "junk at end of '#pragma unused'");
 }
 
 static struct {
@@ -380,7 +380,7 @@ find_subframework_file (const char *fname, const char *pname)
          if (fast_dir != &subframe_dir)
            {
              if (fast_dir)
-               warning ("subframework include %s conflicts with framework include",
+               warning (0, "subframework include %s conflicts with framework include",
                         fname);
              else
                add_framework (fname, fname_len, &subframe_dir);
index 8c26bf5..ef77cfe 100644 (file)
@@ -1231,7 +1231,7 @@ darwin_handle_weak_import_attribute (tree *node, tree name,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL && TREE_CODE (*node) != VAR_DECL)
     {
-      warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+      warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
   else
@@ -1345,7 +1345,7 @@ darwin_assemble_visibility (tree decl, int vis)
       fputs ("\n", asm_out_file);
     }
   else
-    warning ("internal and protected visibility attributes not supported "
+    warning (0, "internal and protected visibility attributes not supported "
             "in this configuration; ignored");
 }
 
index ea7e520..3ccfea6 100644 (file)
@@ -374,7 +374,7 @@ Boston, MA 02111-1307, USA.  */
   do {                                                                 \
     if (ALIAS)                                                         \
       {                                                                        \
-       warning ("alias definitions not supported in Mach-O; ignored"); \
+       warning (0, "alias definitions not supported in Mach-O; ignored");      \
        break;                                                          \
       }                                                                        \
                                                                        \
index 81e104f..4f12f6a 100644 (file)
@@ -5264,7 +5264,7 @@ h8300_handle_fndecl_attribute (tree *node, tree name,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -5288,7 +5288,7 @@ h8300_handle_eightbit_data_attribute (tree *node, tree name,
     }
   else
     {
-      warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+      warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
 
@@ -5311,7 +5311,7 @@ h8300_handle_tiny_data_attribute (tree *node, tree name,
     }
   else
     {
-      warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+      warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
 
index 03e7aa9..9467823 100644 (file)
@@ -162,7 +162,7 @@ switch_to_section (enum in_section section, tree decl)              \
 do {                                                                   \
   if (flag_pic)                                                                \
     {                                                                  \
-      warning ("-f%s ignored for target (all code is position independent)",\
+      warning (0, "-f%s ignored for target (all code is position independent)",\
               (flag_pic > 1) ? "PIC" : "pic");                         \
       flag_pic = 0;                                                    \
     }                                                                  \
index abb6e5d..aedebb5 100644 (file)
@@ -178,7 +178,7 @@ do \
   { \
     if (TARGET_BNU210) \
       {        \
-        warning ("-mbnu210 is ignored (option is obsolete)"); \
+        warning (0, "-mbnu210 is ignored (option is obsolete)"); \
       }        \
   } \
 while (0)
index b8ac322..5046cf5 100644 (file)
@@ -1477,7 +1477,7 @@ override_options (void)
      Remove this code in GCC 3.2 or later.  */
   if (ix86_align_loops_string)
     {
-      warning ("-malign-loops is obsolete, use -falign-loops");
+      warning (0, "-malign-loops is obsolete, use -falign-loops");
       if (align_loops == 0)
        {
          i = atoi (ix86_align_loops_string);
@@ -1490,7 +1490,7 @@ override_options (void)
 
   if (ix86_align_jumps_string)
     {
-      warning ("-malign-jumps is obsolete, use -falign-jumps");
+      warning (0, "-malign-jumps is obsolete, use -falign-jumps");
       if (align_jumps == 0)
        {
          i = atoi (ix86_align_jumps_string);
@@ -1503,7 +1503,7 @@ override_options (void)
 
   if (ix86_align_funcs_string)
     {
-      warning ("-malign-functions is obsolete, use -falign-functions");
+      warning (0, "-malign-functions is obsolete, use -falign-functions");
       if (align_functions == 0)
        {
          i = atoi (ix86_align_funcs_string);
@@ -1641,7 +1641,7 @@ override_options (void)
        {
          if (!TARGET_SSE)
            {
-             warning ("SSE instruction set disabled, using 387 arithmetics");
+             warning (0, "SSE instruction set disabled, using 387 arithmetics");
              ix86_fpmath = FPMATH_387;
            }
          else
@@ -1652,12 +1652,12 @@ override_options (void)
        {
          if (!TARGET_SSE)
            {
-             warning ("SSE instruction set disabled, using 387 arithmetics");
+             warning (0, "SSE instruction set disabled, using 387 arithmetics");
              ix86_fpmath = FPMATH_387;
            }
          else if (!TARGET_80387)
            {
-             warning ("387 instruction set disabled, using SSE arithmetics");
+             warning (0, "387 instruction set disabled, using SSE arithmetics");
              ix86_fpmath = FPMATH_SSE;
            }
          else
@@ -1815,7 +1815,7 @@ ix86_handle_cdecl_attribute (tree *node, tree name,
       && TREE_CODE (*node) != FIELD_DECL
       && TREE_CODE (*node) != TYPE_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -1843,7 +1843,7 @@ ix86_handle_cdecl_attribute (tree *node, tree name,
 
   if (TARGET_64BIT)
     {
-      warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+      warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
 
@@ -1861,7 +1861,7 @@ ix86_handle_regparm_attribute (tree *node, tree name, tree args,
       && TREE_CODE (*node) != FIELD_DECL
       && TREE_CODE (*node) != TYPE_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -1872,13 +1872,13 @@ ix86_handle_regparm_attribute (tree *node, tree name, tree args,
       cst = TREE_VALUE (args);
       if (TREE_CODE (cst) != INTEGER_CST)
        {
-         warning ("%qs attribute requires an integer constant argument",
+         warning (0, "%qs attribute requires an integer constant argument",
                   IDENTIFIER_POINTER (name));
          *no_add_attrs = true;
        }
       else if (compare_tree_int (cst, REGPARM_MAX) > 0)
        {
-         warning ("argument to %qs attribute larger than %d",
+         warning (0, "argument to %qs attribute larger than %d",
                   IDENTIFIER_POINTER (name), REGPARM_MAX);
          *no_add_attrs = true;
        }
@@ -2990,7 +2990,7 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode orig_mode,
            if (!TARGET_SSE && !warnedsse && cum->warn_sse)
              {
                warnedsse = true;
-               warning ("SSE vector argument without SSE enabled "
+               warning (0, "SSE vector argument without SSE enabled "
                         "changes the ABI");
              }
            if (cum->sse_nregs)
@@ -3007,7 +3007,7 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode orig_mode,
            if (!TARGET_MMX && !warnedmmx && cum->warn_mmx)
              {
                warnedmmx = true;
-               warning ("MMX vector argument without MMX enabled "
+               warning (0, "MMX vector argument without MMX enabled "
                         "changes the ABI");
              }
            if (cum->mmx_nregs)
@@ -3260,7 +3260,7 @@ ix86_struct_value_rtx (tree type, int incoming ATTRIBUTE_UNUSED)
          || (VECTOR_MODE_P (mode) && GET_MODE_SIZE (mode) == 16))
        {
          warned = true;
-         warning ("SSE vector return without SSE enabled changes the ABI");
+         warning (0, "SSE vector return without SSE enabled changes the ABI");
        }
     }
 
@@ -15988,7 +15988,7 @@ ix86_handle_struct_attribute (tree *node, tree name,
   if (!(type && (TREE_CODE (*type) == RECORD_TYPE
                 || TREE_CODE (*type) == UNION_TYPE)))
     {
-      warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+      warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
 
@@ -15997,7 +15997,7 @@ ix86_handle_struct_attribute (tree *node, tree name,
           || ((is_attribute_p ("gcc_struct", name)
                && lookup_attribute ("ms_struct", TYPE_ATTRIBUTES (*type)))))
     {
-      warning ("%qs incompatible attribute ignored",
+      warning (0, "%qs incompatible attribute ignored",
                IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index 0d75238..2630480 100644 (file)
@@ -71,7 +71,7 @@ ix86_handle_shared_attribute (tree *node, tree name,
 {
   if (TREE_CODE (*node) != VAR_DECL)
     {
-      warning ("%qs attribute only applies to variables",
+      warning (0, "%qs attribute only applies to variables",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -199,7 +199,7 @@ i386_pe_dllimport_p (tree decl)
        {
           /* Don't warn about artificial methods.  */
          if (!DECL_ARTIFICIAL (decl))
-           warning ("%Jfunction '%D' is defined after prior declaration "
+           warning (0, "%Jfunction '%D' is defined after prior declaration "
                     "as dllimport: attribute ignored", decl, decl);
          return 0;
        }
@@ -210,7 +210,7 @@ i386_pe_dllimport_p (tree decl)
       else if (TREE_CODE (decl) == FUNCTION_DECL && DECL_INLINE (decl))
         {
          if (extra_warnings)
-           warning ("%Jinline function '%D' is declared as dllimport: "
+           warning (0, "%Jinline function '%D' is declared as dllimport: "
                     "attribute ignored.", decl, decl);
          return 0;
        }
@@ -279,7 +279,7 @@ i386_pe_mark_dllexport (tree decl)
   oldname = XSTR (rtlname, 0);
   if (i386_pe_dllimport_name_p (oldname))
     {
-      warning ("%Jinconsistent dll linkage for '%D', dllexport assumed.",
+      warning (0, "%Jinconsistent dll linkage for '%D', dllexport assumed.",
               decl, decl);
      /* Remove DLL_IMPORT_PREFIX.  */
       oldname += strlen (DLL_IMPORT_PREFIX);
@@ -463,10 +463,10 @@ i386_pe_encode_section_info (tree decl, rtx rtl, int first)
         We leave these alone for now.  */
 
       if (DECL_INITIAL (decl) || !DECL_EXTERNAL (decl))
-       warning ("%J'%D' defined locally after being "
+       warning (0, "%J'%D' defined locally after being "
                 "referenced with dllimport linkage", decl, decl);
       else
-       warning ("%J'%D' redeclared without dllimport attribute "
+       warning (0, "%J'%D' redeclared without dllimport attribute "
                 "after being referenced with dllimport linkage", decl, decl);
     }
 }
index eaa8583..2412f5c 100644 (file)
@@ -49,7 +49,7 @@ ia64_hpux_handle_builtin_pragma (cpp_reader *pfile ATTRIBUTE_UNUSED)
        type = c_lex (&x);
     }
   if (type != CPP_EOF)
-    warning ("malformed #pragma builtin");
+    warning (0, "malformed #pragma builtin");
 }
 
 /* List of standard math functions which do not set matherr by default
index 2435922..9201bb8 100644 (file)
@@ -482,7 +482,7 @@ ia64_handle_model_attribute (tree *node, tree name, tree args,
     }
   else
     {
-      warning ("invalid argument of %qs attribute",
+      warning (0, "invalid argument of %qs attribute",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -514,7 +514,7 @@ ia64_handle_model_attribute (tree *node, tree name, tree args,
       break;
 
     default:
-      warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+      warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
       break;
     }
@@ -4548,7 +4548,7 @@ fix_range (const char *const_str)
       dash = strchr (str, '-');
       if (!dash)
        {
-         warning ("value of -mfixed-range must have form REG1-REG2");
+         warning (0, "value of -mfixed-range must have form REG1-REG2");
          return;
        }
       *dash = '\0';
@@ -4560,14 +4560,14 @@ fix_range (const char *const_str)
       first = decode_reg_name (str);
       if (first < 0)
        {
-         warning ("unknown register name: %s", str);
+         warning (0, "unknown register name: %s", str);
          return;
        }
 
       last = decode_reg_name (dash + 1);
       if (last < 0)
        {
-         warning ("unknown register name: %s", dash + 1);
+         warning (0, "unknown register name: %s", dash + 1);
          return;
        }
 
@@ -4575,7 +4575,7 @@ fix_range (const char *const_str)
 
       if (first > last)
        {
-         warning ("%s-%s is an empty range", str, dash + 1);
+         warning (0, "%s-%s is an empty range", str, dash + 1);
          return;
        }
 
@@ -4656,7 +4656,7 @@ ia64_override_options (void)
 
   if (TARGET_INLINE_SQRT == INL_MIN_LAT)
     {
-      warning ("not yet implemented: latency-optimized inline square root");
+      warning (0, "not yet implemented: latency-optimized inline square root");
       TARGET_INLINE_SQRT = INL_MAX_THR;
     }
 
index 06345c5..314a2c7 100644 (file)
@@ -3154,14 +3154,14 @@ ip2k_handle_progmem_attribute (tree *node, tree name,
        {
          if (DECL_INITIAL (*node) == NULL_TREE && !DECL_EXTERNAL (*node))
            {
-             warning ("only initialized variables can be placed into "
+             warning (0, "only initialized variables can be placed into "
                       "program memory area");
              *no_add_attrs = true;
            }
        }
       else
        {
-         warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+         warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
          *no_add_attrs = true;
        }
     }
@@ -3179,7 +3179,7 @@ ip2k_handle_fndecl_attribute (tree *node, tree name,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index ee3f003..858251b 100644 (file)
@@ -387,7 +387,7 @@ m32r_handle_model_attribute (tree *node ATTRIBUTE_UNUSED, tree name,
       && arg != large_ident1
       && arg != large_ident2)
     {
-      warning ("invalid argument of %qs attribute",
+      warning (0, "invalid argument of %qs attribute",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index bd3d606..06c7e3e 100644 (file)
@@ -284,7 +284,7 @@ m68hc11_override_options (void)
   /* Compilation with -fpic generates a wrong code.  */
   if (flag_pic)
     {
-      warning ("-f%s ignored for 68HC11/68HC12 (not supported)",
+      warning (0, "-f%s ignored for 68HC11/68HC12 (not supported)",
               (flag_pic > 1) ? "PIC" : "pic");
       flag_pic = 0;
     }
@@ -1123,7 +1123,7 @@ m68hc11_handle_page0_attribute (tree *node, tree name,
     }
   else
     {
-      warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+      warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
 
@@ -1159,7 +1159,7 @@ m68hc11_handle_fntype_attribute (tree *node, tree name,
       && TREE_CODE (*node) != FIELD_DECL
       && TREE_CODE (*node) != TYPE_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -1244,13 +1244,13 @@ m68hc11_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED)
   trap_handler = lookup_attribute ("trap", func_attr) != NULL_TREE;
   if (trap_handler && is_far)
     {
-      warning ("%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>");
+      warning (0, "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>");
       trap_handler = 0;
     }
   if (trap_handler)
     {
       if (trap_handler_symbol != 0)
-        warning ("%<trap%> attribute is already used");
+        warning (0, "%<trap%> attribute is already used");
       else
         trap_handler_symbol = XEXP (rtl, 0);
     }
index c119642..60b605c 100644 (file)
@@ -373,7 +373,7 @@ m68k_handle_fndecl_attribute (tree *node, tree name,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -632,7 +632,7 @@ m68k_output_function_prologue (FILE *stream, HOST_WIDE_INT size ATTRIBUTE_UNUSED
        asm_fprintf (stream, "\tcmp" ASM_DOT "l %s,%Rsp\n\ttrapcs\n",
                     M68K_REGNAME(REGNO (stack_limit_rtx)));
       else if (GET_CODE (stack_limit_rtx) != SYMBOL_REF)
-       warning ("stack limit expression is not supported");
+       warning (0, "stack limit expression is not supported");
     }
 
   if (current_frame.reg_no <= 2)
index 0b8b415..826e787 100644 (file)
@@ -3059,7 +3059,7 @@ mcore_handle_naked_attribute (tree * node, tree name, tree args ATTRIBUTE_UNUSED
     }
   else
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index 9e1a308..12a6b2d 100644 (file)
@@ -4350,7 +4350,7 @@ override_options (void)
 
   /* Deprecate -mint64. Remove after 4.0 branches.  */
   if (TARGET_INT64)
-    warning ("-mint64 is a deprecated option");
+    warning (0, "-mint64 is a deprecated option");
 
   if (TARGET_INT64 && !TARGET_LONG64)
     error ("unsupported combination: %s", "-mint64 -mlong32");
@@ -4404,7 +4404,7 @@ override_options (void)
        target_flags &= ~MASK_BRANCHLIKELY;
     }
   if (TARGET_BRANCHLIKELY && !ISA_HAS_BRANCHLIKELY)
-    warning ("generation of Branch Likely instructions enabled, but not supported by architecture");
+    warning (0, "generation of Branch Likely instructions enabled, but not supported by architecture");
 
   /* The effect of -mabicalls isn't defined for the EABI.  */
   if (mips_abi == ABI_EABI && TARGET_ABICALLS)
@@ -4421,7 +4421,7 @@ override_options (void)
     {
       flag_pic = 1;
       if (mips_section_threshold > 0)
-       warning ("-G is incompatible with PIC code which is the default");
+       warning (0, "-G is incompatible with PIC code which is the default");
     }
 
   /* mips_split_addresses is a half-way house between explicit
@@ -9215,7 +9215,7 @@ mips_parse_cpu (const char *cpu_string)
   for (s = cpu_string; *s != 0; s++)
     if (ISUPPER (*s))
       {
-       warning ("the cpu name must be lower case");
+       warning (0, "the cpu name must be lower case");
        break;
       }
 
index 0dd26ed..99e3b17 100644 (file)
@@ -226,7 +226,7 @@ mmix_override_options (void)
      labels.  */
   if (flag_pic)
     {
-      warning ("-f%s not supported: ignored", (flag_pic > 1) ? "PIC" : "pic");
+      warning (0, "-f%s not supported: ignored", (flag_pic > 1) ? "PIC" : "pic");
       flag_pic = 0;
     }
 }
index 8cf3fa7..661d596 100644 (file)
@@ -1105,7 +1105,7 @@ ns32k_handle_fntype_attribute (tree *node, tree name,
       && TREE_CODE (*node) != FIELD_DECL
       && TREE_CODE (*node) != TYPE_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index 994e432..ac07983 100644 (file)
@@ -79,7 +79,7 @@ Boston, MA 02111-1307, USA.  */
                builtin_define ("_INCLUDE_XOPEN_SOURCE_500");           \
              }                                                         \
            else if (flag_isoc94 || flag_isoc99 || c_dialect_cxx ())    \
-             warning ("-munix=98 option required for C89 "             \
+             warning (0, "-munix=98 option required for C89 "          \
                       "Amendment 1 features.\n");                      \
          }                                                             \
        if (TARGET_SIO)                                                 \
index 3ffb7fb..37670f8 100644 (file)
@@ -317,7 +317,7 @@ fix_range (const char *const_str)
       dash = strchr (str, '-');
       if (!dash)
        {
-         warning ("value of -mfixed-range must have form REG1-REG2");
+         warning (0, "value of -mfixed-range must have form REG1-REG2");
          return;
        }
       *dash = '\0';
@@ -329,14 +329,14 @@ fix_range (const char *const_str)
       first = decode_reg_name (str);
       if (first < 0)
        {
-         warning ("unknown register name: %s", str);
+         warning (0, "unknown register name: %s", str);
          return;
        }
 
       last = decode_reg_name (dash + 1);
       if (last < 0)
        {
-         warning ("unknown register name: %s", dash + 1);
+         warning (0, "unknown register name: %s", dash + 1);
          return;
        }
 
@@ -344,7 +344,7 @@ fix_range (const char *const_str)
 
       if (first > last)
        {
-         warning ("%s-%s is an empty range", str, dash + 1);
+         warning (0, "%s-%s is an empty range", str, dash + 1);
          return;
        }
 
@@ -449,18 +449,18 @@ override_options (void)
 
   if (flag_pic && TARGET_PORTABLE_RUNTIME)
     {
-      warning ("PIC code generation is not supported in the portable runtime model\n");
+      warning (0, "PIC code generation is not supported in the portable runtime model\n");
     }
 
   if (flag_pic && TARGET_FAST_INDIRECT_CALLS)
    {
-      warning ("PIC code generation is not compatible with fast indirect calls\n");
+      warning (0, "PIC code generation is not compatible with fast indirect calls\n");
    }
 
   if (! TARGET_GAS && write_symbols != NO_DEBUG)
     {
-      warning ("-g is only supported when using GAS on this processor,");
-      warning ("-g option disabled");
+      warning (0, "-g is only supported when using GAS on this processor,");
+      warning (0, "-g option disabled");
       write_symbols = NO_DEBUG;
     }
 
@@ -7837,7 +7837,7 @@ pa_asm_output_aligned_common (FILE *stream,
   max_common_align = TARGET_64BIT ? 128 : (size >= 4096 ? 256 : 64);
   if (align > max_common_align)
     {
-      warning ("alignment (%u) for %s exceeds maximum alignment "
+      warning (0, "alignment (%u) for %s exceeds maximum alignment "
               "for global common data.  Using %u",
               align / BITS_PER_UNIT, name, max_common_align / BITS_PER_UNIT);
       align = max_common_align;
index f5b6e17..12ac88b 100644 (file)
@@ -46,12 +46,12 @@ do {                                                                        \
   if (TARGET_64BIT && (target_flags & NON_POWERPC_MASKS))              \
     {                                                                  \
       target_flags &= ~NON_POWERPC_MASKS;                              \
-      warning ("-maix64 and POWER architecture are incompatible");     \
+      warning (0, "-maix64 and POWER architecture are incompatible");  \
     }                                                                  \
   if (TARGET_64BIT && ! TARGET_POWERPC64)                              \
     {                                                                  \
       target_flags |= MASK_POWERPC64;                                  \
-      warning ("-maix64 requires PowerPC64 architecture remain enabled"); \
+      warning (0, "-maix64 requires PowerPC64 architecture remain enabled"); \
     }                                                                  \
   if (TARGET_POWERPC64 && ! TARGET_64BIT)                              \
     {                                                                  \
index 033431b..6b13196 100644 (file)
@@ -45,12 +45,12 @@ do {                                                                        \
   if (TARGET_64BIT && (target_flags & NON_POWERPC_MASKS))              \
     {                                                                  \
       target_flags &= ~NON_POWERPC_MASKS;                              \
-      warning ("-maix64 and POWER architecture are incompatible");     \
+      warning (0, "-maix64 and POWER architecture are incompatible");  \
     }                                                                  \
   if (TARGET_64BIT && ! TARGET_POWERPC64)                              \
     {                                                                  \
       target_flags |= MASK_POWERPC64;                                  \
-      warning ("-maix64 requires PowerPC64 architecture remain enabled"); \
+      warning (0, "-maix64 requires PowerPC64 architecture remain enabled"); \
     }                                                                  \
   if (TARGET_POWERPC64 && ! TARGET_64BIT)                              \
     {                                                                  \
index 29646f8..3c1a2ad 100644 (file)
@@ -45,12 +45,12 @@ do {                                                                        \
   if (TARGET_64BIT && (target_flags & NON_POWERPC_MASKS))              \
     {                                                                  \
       target_flags &= ~NON_POWERPC_MASKS;                              \
-      warning ("-maix64 and POWER architecture are incompatible");     \
+      warning (0, "-maix64 and POWER architecture are incompatible");  \
     }                                                                  \
   if (TARGET_64BIT && ! TARGET_POWERPC64)                              \
     {                                                                  \
       target_flags |= MASK_POWERPC64;                                  \
-      warning ("-maix64 requires PowerPC64 architecture remain enabled"); \
+      warning (0, "-maix64 requires PowerPC64 architecture remain enabled"); \
     }                                                                  \
   if (TARGET_POWERPC64 && ! TARGET_64BIT)                              \
     {                                                                  \
index 25f320a..4630674 100644 (file)
@@ -86,20 +86,20 @@ do {                                                                        \
     if (MACHO_DYNAMIC_NO_PIC_P)                                                \
       {                                                                        \
         if (flag_pic)                                                  \
-            warning ("-mdynamic-no-pic overrides -fpic or -fPIC");     \
+            warning (0, "-mdynamic-no-pic overrides -fpic or -fPIC");  \
         flag_pic = 0;                                                  \
       }                                                                        \
     else if (flag_pic == 1)                                            \
       {                                                                        \
         /* Darwin doesn't support -fpic.  */                           \
-        warning ("-fpic is not supported; -fPIC assumed");             \
+        warning (0, "-fpic is not supported; -fPIC assumed");          \
         flag_pic = 2;                                                  \
       }                                                                        \
   }                                                                    \
   if (TARGET_64BIT && ! TARGET_POWERPC64)                              \
     {                                                                  \
       target_flags |= MASK_POWERPC64;                                  \
-      warning ("-m64 requires PowerPC64 architecture, enabling");      \
+      warning (0, "-m64 requires PowerPC64 architecture, enabling");   \
     }                                                                  \
 } while(0)
 
index 5d36d5d..0ce8348 100644 (file)
@@ -42,8 +42,8 @@
    attribute by default.  */
 
 #define SYNTAX_ERROR(msgid) do {                       \
-  warning (msgid);                                     \
-  warning ("ignoring malformed #pragma longcall");     \
+  warning (0, msgid);                                  \
+  warning (0, "ignoring malformed #pragma longcall");  \
   return;                                              \
 } while (0)
 
@@ -66,7 +66,7 @@ rs6000_pragma_longcall (cpp_reader *pfile ATTRIBUTE_UNUSED)
     SYNTAX_ERROR ("number must be 0 or 1");
 
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of #pragma longcall");
+    warning (0, "junk at end of #pragma longcall");
 
   rs6000_default_long_calls = (n == integer_one_node);
 }
index 90ffed0..c980d7d 100644 (file)
@@ -1251,14 +1251,14 @@ rs6000_override_options (const char *default_cpu)
        {
          target_flags &= ~MASK_MULTIPLE;
          if ((target_flags_explicit & MASK_MULTIPLE) != 0)
-           warning ("-mmultiple is not supported on little endian systems");
+           warning (0, "-mmultiple is not supported on little endian systems");
        }
 
       if (TARGET_STRING)
        {
          target_flags &= ~MASK_STRING;
          if ((target_flags_explicit & MASK_STRING) != 0)
-           warning ("-mstring is not supported on little endian systems");
+           warning (0, "-mstring is not supported on little endian systems");
        }
     }
 
@@ -1647,12 +1647,12 @@ rs6000_parse_abi_options (void)
   else if (! strcmp (rs6000_abi_string, "d64"))
     {
       rs6000_darwin64_abi = 1;
-      warning ("Using darwin64 ABI");
+      warning (0, "Using darwin64 ABI");
     }
   else if (! strcmp (rs6000_abi_string, "d32"))
     {
       rs6000_darwin64_abi = 0;
-      warning ("Using old darwin ABI");
+      warning (0, "Using old darwin ABI");
     }
 
   else if (! strcmp (rs6000_abi_string, "no-spe"))
@@ -1691,7 +1691,7 @@ rs6000_parse_alignment_option (void)
         useful for performance studies from time to time though, so
         don't disable it entirely.  */
       if (DEFAULT_ABI == ABI_DARWIN && TARGET_64BIT)
-       warning ("-malign-power is not supported for 64-bit Darwin;"
+       warning (0, "-malign-power is not supported for 64-bit Darwin;"
                 " it is incompatible with the installed C and C++ libraries");
       rs6000_alignment_flags = MASK_ALIGN_POWER;
     }
@@ -3857,7 +3857,7 @@ rs6000_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
       static bool warned_for_return_big_vectors = false;
       if (!warned_for_return_big_vectors)
        {
-         warning ("GCC vector returned by reference: "
+         warning (0, "GCC vector returned by reference: "
                   "non-standard ABI extension with no compatibility guarantee");
          warned_for_return_big_vectors = true;
        }
@@ -5028,7 +5028,7 @@ rs6000_pass_by_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED,
        fprintf (stderr, "function_arg_pass_by_reference: synthetic vector\n");
       if (!warned_for_pass_big_vectors)
        {
-         warning ("GCC vector passed by reference: "
+         warning (0, "GCC vector passed by reference: "
                   "non-standard ABI extension with no compatibility guarantee");
          warned_for_pass_big_vectors = true;
        }
@@ -12408,7 +12408,7 @@ rs6000_emit_allocate_stack (HOST_WIDE_INT size, int copy_r12)
 
   if (INTVAL (todec) != -size)
     {
-      warning ("stack frame too large");
+      warning (0, "stack frame too large");
       emit_insn (gen_trap ());
       return;
     }
@@ -12445,7 +12445,7 @@ rs6000_emit_allocate_stack (HOST_WIDE_INT size, int copy_r12)
                                    const0_rtx));
        }
       else
-       warning ("stack limit expression is not supported");
+       warning (0, "stack limit expression is not supported");
     }
 
   if (copy_r12 || ! TARGET_UPDATE)
@@ -14927,7 +14927,7 @@ output_function_profiler (FILE *file, int labelno)
       save_lr = 4;
       if (!TARGET_32BIT)
        {
-         warning ("no profiling of 64-bit code for this ABI");
+         warning (0, "no profiling of 64-bit code for this ABI");
          return;
        }
       ASM_GENERATE_INTERNAL_LABEL (buf, "LP", labelno);
@@ -16019,7 +16019,7 @@ rs6000_handle_altivec_attribute (tree *node,
     if (TARGET_64BIT)
       error ("use of %<long%> in AltiVec types is invalid for 64-bit code");
     else if (rs6000_warn_altivec_long)
-      warning ("use of %<long%> in AltiVec types is deprecated; use %<int%>");
+      warning (0, "use of %<long%> in AltiVec types is deprecated; use %<int%>");
     }
   else if (type == long_long_unsigned_type_node
            || type == long_long_integer_type_node)
@@ -16114,7 +16114,7 @@ rs6000_handle_longcall_attribute (tree *node, tree name,
       && TREE_CODE (*node) != FIELD_DECL
       && TREE_CODE (*node) != TYPE_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index dfa4ec4..7f8e361 100644 (file)
@@ -6648,11 +6648,11 @@ s390_emit_prologue (void)
 
       if (s390_warn_framesize > 0 
          && cfun_frame_layout.frame_size >= s390_warn_framesize)
-       warning ("frame size of %qs is " HOST_WIDE_INT_PRINT_DEC " bytes", 
+       warning (0, "frame size of %qs is " HOST_WIDE_INT_PRINT_DEC " bytes", 
                 current_function_name (), cfun_frame_layout.frame_size);
 
       if (s390_warn_dynamicstack_p && cfun->calls_alloca)
-       warning ("%qs uses dynamic stack allocation", current_function_name ());
+       warning (0, "%qs uses dynamic stack allocation", current_function_name ());
 
       /* Save incoming stack pointer into temp reg.  */
       if (TARGET_BACKCHAIN || next_fpr)
index 8991c8e..e5c1ded 100644 (file)
@@ -7185,7 +7185,7 @@ sh_handle_interrupt_handler_attribute (tree *node, tree name,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -7206,21 +7206,21 @@ sh_handle_sp_switch_attribute (tree *node, tree name, tree args,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
   else if (!pragma_interrupt)
     {
       /* The sp_switch attribute only has meaning for interrupt functions.  */
-      warning ("%qs attribute only applies to interrupt functions",
+      warning (0, "%qs attribute only applies to interrupt functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
   else if (TREE_CODE (TREE_VALUE (args)) != STRING_CST)
     {
       /* The argument must be a constant string.  */
-      warning ("%qs attribute argument not a string constant",
+      warning (0, "%qs attribute argument not a string constant",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -7241,21 +7241,21 @@ sh_handle_trap_exit_attribute (tree *node, tree name, tree args,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
   else if (!pragma_interrupt)
     {
       /* The trap_exit attribute only has meaning for interrupt functions.  */
-      warning ("%qs attribute only applies to interrupt functions",
+      warning (0, "%qs attribute only applies to interrupt functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
   else if (TREE_CODE (TREE_VALUE (args)) != INTEGER_CST)
     {
       /* The argument must be a constant integer.  */
-      warning ("%qs attribute argument not an integer constant",
+      warning (0, "%qs attribute argument not an integer constant",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index 8f9066f..e5ee36b 100644 (file)
@@ -751,7 +751,7 @@ do {                                                                        \
         here we have a working libgcov, so just assume that we have.  */\
       if (profile_flag)                                                        \
        {                                                               \
-         warning ("Profiling is not supported on this target.");       \
+         warning (0, "Profiling is not supported on this target.");    \
          profile_flag = profile_arc_flag = 0;                          \
        }                                                               \
     }                                                                  \
index cb04c8c..a3a778d 100644 (file)
@@ -144,7 +144,7 @@ sh_symbian_dllimport_p (tree decl)
     {
       /* Don't warn about artificial methods.  */
       if (!DECL_ARTIFICIAL (decl))
-       warning ("%H function '%D' is defined after prior declaration as dllimport: attribute ignored",
+       warning (0, "%H function '%D' is defined after prior declaration as dllimport: attribute ignored",
                 & DECL_SOURCE_LOCATION (decl), decl);
       return false;
     }
@@ -155,7 +155,7 @@ sh_symbian_dllimport_p (tree decl)
   else if (TREE_CODE (decl) == FUNCTION_DECL && DECL_INLINE (decl))
     {
       if (extra_warnings)
-       warning ("%Hinline function '%D' is declared as dllimport: attribute ignored.",
+       warning (0, "%Hinline function '%D' is declared as dllimport: attribute ignored.",
                 & DECL_SOURCE_LOCATION (decl), decl);
       return false;
     }
@@ -329,7 +329,7 @@ sh_symbian_encode_section_info (tree decl, rtx rtl, int first)
       tree idp = get_identifier (oldname + strlen (DLL_IMPORT_PREFIX));
       rtx newrtl = gen_rtx_SYMBOL_REF (Pmode, IDENTIFIER_POINTER (idp));
 
-      warning ("%H%s '%D' %s after being referenced with dllimport linkage.",
+      warning (0, "%H%s '%D' %s after being referenced with dllimport linkage.",
               & DECL_SOURCE_LOCATION (decl),
               TREE_CODE (decl) == VAR_DECL ? "variable" : "function",
               decl, (DECL_INITIAL (decl) || !DECL_EXTERNAL (decl))
@@ -411,14 +411,14 @@ sh_symbian_handle_dll_attribute (tree *pnode, tree name, tree args,
                   | (int) ATTR_FLAG_FUNCTION_NEXT
                   | (int) ATTR_FLAG_ARRAY_NEXT))
        {
-         warning ("%qs attribute ignored", attr);
+         warning (0, "%qs attribute ignored", attr);
          *no_add_attrs = true;
          return tree_cons (name, args, NULL_TREE);
        }
 
       if (TREE_CODE (node) != RECORD_TYPE && TREE_CODE (node) != UNION_TYPE)
        {
-         warning ("%qs attribute ignored", attr);
+         warning (0, "%qs attribute ignored", attr);
          *no_add_attrs = true;
        }
 
index 784d20b..6429717 100644 (file)
@@ -91,7 +91,7 @@ solaris_pragma_align (cpp_reader *pfile ATTRIBUTE_UNUSED)
   if (c_lex (&x) != CPP_NUMBER
       || c_lex (&t) != CPP_OPEN_PAREN)
     {
-      warning ("malformed %<#pragma align%>, ignoring");
+      warning (0, "malformed %<#pragma align%>, ignoring");
       return;
     }
 
@@ -100,14 +100,14 @@ solaris_pragma_align (cpp_reader *pfile ATTRIBUTE_UNUSED)
       || (low != 1 && low != 2 && low != 4 && low != 8 && low != 16
          && low != 32 && low != 64 && low != 128))
     {
-      warning ("invalid alignment for %<#pragma align%>, ignoring");
+      warning (0, "invalid alignment for %<#pragma align%>, ignoring");
       return;
     }
 
   ttype = c_lex (&t);
   if (ttype != CPP_NAME)
     {
-      warning ("malformed %<#pragma align%>, ignoring");
+      warning (0, "malformed %<#pragma align%>, ignoring");
       return;
     }
 
@@ -115,7 +115,7 @@ solaris_pragma_align (cpp_reader *pfile ATTRIBUTE_UNUSED)
     {
       tree decl = identifier_global_value (t);
       if (decl && DECL_P (decl))
-       warning ("%<#pragma align%> must appear before the declaration of "
+       warning (0, "%<#pragma align%> must appear before the declaration of "
                 "%D, ignoring", decl);
       else
        solaris_pending_aligns = tree_cons (t, build_tree_list (NULL, x),
@@ -127,19 +127,19 @@ solaris_pragma_align (cpp_reader *pfile ATTRIBUTE_UNUSED)
          ttype = c_lex (&t);
          if (ttype != CPP_NAME)
            {
-             warning ("malformed %<#pragma align%>");
+             warning (0, "malformed %<#pragma align%>");
              return;
            }
        }
       else if (ttype == CPP_CLOSE_PAREN)
        {
          if (c_lex (&t) != CPP_EOF)
-           warning ("junk at end of %<#pragma align%>");
+           warning (0, "junk at end of %<#pragma align%>");
          return;
        }
       else
        {
-         warning ("malformed %<#pragma align%>");
+         warning (0, "malformed %<#pragma align%>");
          return;
        }
     }
@@ -155,14 +155,14 @@ solaris_pragma_init (cpp_reader *pfile ATTRIBUTE_UNUSED)
 
   if (c_lex (&t) != CPP_OPEN_PAREN)
     {
-      warning ("malformed %<#pragma init%>, ignoring");
+      warning (0, "malformed %<#pragma init%>, ignoring");
       return;
     }
 
   ttype = c_lex (&t);
   if (ttype != CPP_NAME)
     {
-      warning ("malformed %<#pragma init%>, ignoring");
+      warning (0, "malformed %<#pragma init%>, ignoring");
       return;
     }
 
@@ -185,19 +185,19 @@ solaris_pragma_init (cpp_reader *pfile ATTRIBUTE_UNUSED)
          ttype = c_lex (&t);
          if (ttype != CPP_NAME)
            {
-             warning ("malformed %<#pragma init%>");
+             warning (0, "malformed %<#pragma init%>");
              return;
            }
        }
       else if (ttype == CPP_CLOSE_PAREN)
        {
          if (c_lex (&t) != CPP_EOF)
-           warning ("junk at end of %<#pragma init%>");
+           warning (0, "junk at end of %<#pragma init%>");
          return;
        }
       else
        {
-         warning ("malformed %<#pragma init%>");
+         warning (0, "malformed %<#pragma init%>");
          return;
        }
     }
@@ -213,14 +213,14 @@ solaris_pragma_fini (cpp_reader *pfile ATTRIBUTE_UNUSED)
 
   if (c_lex (&t) != CPP_OPEN_PAREN)
     {
-      warning ("malformed %<#pragma fini%>, ignoring");
+      warning (0, "malformed %<#pragma fini%>, ignoring");
       return;
     }
 
   ttype = c_lex (&t);
   if (ttype != CPP_NAME)
     {
-      warning ("malformed %<#pragma fini%>, ignoring");
+      warning (0, "malformed %<#pragma fini%>, ignoring");
       return;
     }
 
@@ -243,19 +243,19 @@ solaris_pragma_fini (cpp_reader *pfile ATTRIBUTE_UNUSED)
          ttype = c_lex (&t);
          if (ttype != CPP_NAME)
            {
-             warning ("malformed %<#pragma fini%>");
+             warning (0, "malformed %<#pragma fini%>");
              return;
            }
        }
       else if (ttype == CPP_CLOSE_PAREN)
        {
          if (c_lex (&t) != CPP_EOF)
-           warning ("junk at end of %<#pragma fini%>");
+           warning (0, "junk at end of %<#pragma fini%>");
          return;
        }
       else
        {
-         warning ("malformed %<#pragma fini%>");
+         warning (0, "malformed %<#pragma fini%>");
          return;
        }
     }
index ae34584..914e77c 100644 (file)
@@ -51,7 +51,7 @@ solaris_insert_attributes (tree decl, tree *attributes)
          {
            if (lookup_attribute ("aligned", DECL_ATTRIBUTES (decl))
                || lookup_attribute ("aligned", *attributes))
-             warning ("%Jignoring %<#pragma align%> for explicitly "
+             warning (0, "%Jignoring %<#pragma align%> for explicitly "
                       "aligned %<%D%>", decl, decl);
            else
              *attributes = tree_cons (get_identifier ("aligned"), value,
index f6c5b43..38b36d5 100644 (file)
@@ -2293,7 +2293,7 @@ xstormy16_handle_interrupt_attribute (tree *node, tree name,
 {
   if (TREE_CODE (*node) != FUNCTION_TYPE)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
@@ -2314,14 +2314,14 @@ xstormy16_handle_below100_attribute (tree *node,
       && TREE_CODE (*node) != POINTER_TYPE
       && TREE_CODE (*node) != TYPE_DECL)
     {
-      warning ("%<__BELOW100__%> attribute only applies to variables");
+      warning (0, "%<__BELOW100__%> attribute only applies to variables");
       *no_add_attrs = true;
     }
   else if (args == NULL_TREE && TREE_CODE (*node) == VAR_DECL)
     {
       if (! (TREE_PUBLIC (*node) || TREE_STATIC (*node)))
        {
-         warning ("__BELOW100__ attribute not allowed with auto storage class.");
+         warning (0, "__BELOW100__ attribute not allowed with auto storage class.");
          *no_add_attrs = true;
        }
     }
index 82c71de..3346fe3 100644 (file)
@@ -64,9 +64,9 @@ static int
 pop_data_area (v850_data_area data_area)
 {
   if (data_area_stack == NULL)
-    warning ("#pragma GHS endXXXX found without previous startXXX");
+    warning (0, "#pragma GHS endXXXX found without previous startXXX");
   else if (data_area != data_area_stack->data_area)
-    warning ("#pragma GHS endXXX does not match previous startXXX");
+    warning (0, "#pragma GHS endXXX does not match previous startXXX");
   else
     {
       data_area_stack_element * elem;
@@ -91,7 +91,7 @@ mark_current_function_as_interrupt (void)
   
   if (current_function_decl ==  NULL_TREE)
     {
-      warning ("cannot set interrupt attribute: no current function");
+      warning (0, "cannot set interrupt attribute: no current function");
       return;
     }
 
@@ -99,7 +99,7 @@ mark_current_function_as_interrupt (void)
 
   if (name == NULL_TREE || TREE_CODE (name) != IDENTIFIER_NODE)
     {
-      warning ("cannot set interrupt attribute: no such identifier");
+      warning (0, "cannot set interrupt attribute: no such identifier");
       return;
     }
   
@@ -144,7 +144,7 @@ ghs_pragma_section (cpp_reader * pfile ATTRIBUTE_UNUSED)
       if (type == CPP_COMMA)
        repeat = 1;
       else if (type != CPP_EOF)
-       warning ("junk at end of #pragma ghs section");
+       warning (0, "junk at end of #pragma ghs section");
       
       if      (streq (sect, "data"))    kind = GHS_SECTION_KIND_DATA;
       else if (streq (sect, "text"))    kind = GHS_SECTION_KIND_TEXT;
@@ -161,7 +161,7 @@ ghs_pragma_section (cpp_reader * pfile ATTRIBUTE_UNUSED)
       else if (streq (sect, "zbss"))    kind = GHS_SECTION_KIND_ZDATA;
       else
        {
-         warning ("unrecognized section name \"%s\"", sect);
+         warning (0, "unrecognized section name \"%s\"", sect);
          return;
        }
       
@@ -176,7 +176,7 @@ ghs_pragma_section (cpp_reader * pfile ATTRIBUTE_UNUSED)
   return;
 
  bad:
-  warning ("malformed #pragma ghs section");
+  warning (0, "malformed #pragma ghs section");
   return;
 
  reset:
@@ -195,7 +195,7 @@ ghs_pragma_interrupt (cpp_reader * pfile ATTRIBUTE_UNUSED)
   tree x;
   
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of #pragma ghs interrupt");
+    warning (0, "junk at end of #pragma ghs interrupt");
   
   mark_current_function_as_interrupt ();
 }
@@ -206,7 +206,7 @@ ghs_pragma_starttda (cpp_reader * pfile ATTRIBUTE_UNUSED)
   tree x;
   
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of #pragma ghs starttda");
+    warning (0, "junk at end of #pragma ghs starttda");
   
   push_data_area (DATA_AREA_TDA);
 }
@@ -217,7 +217,7 @@ ghs_pragma_startsda (cpp_reader * pfile ATTRIBUTE_UNUSED)
   tree x;
   
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of #pragma ghs startsda");
+    warning (0, "junk at end of #pragma ghs startsda");
   
   push_data_area (DATA_AREA_SDA);
 }
@@ -228,7 +228,7 @@ ghs_pragma_startzda (cpp_reader * pfile ATTRIBUTE_UNUSED)
   tree x;
   
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of #pragma ghs startzda");
+    warning (0, "junk at end of #pragma ghs startzda");
   
   push_data_area (DATA_AREA_ZDA);
 }
@@ -239,7 +239,7 @@ ghs_pragma_endtda (cpp_reader * pfile ATTRIBUTE_UNUSED)
   tree x;
   
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of #pragma ghs endtda");
+    warning (0, "junk at end of #pragma ghs endtda");
   
   pop_data_area (DATA_AREA_TDA);
 }
@@ -250,7 +250,7 @@ ghs_pragma_endsda (cpp_reader * pfile ATTRIBUTE_UNUSED)
   tree x;
   
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of #pragma ghs endsda");
+    warning (0, "junk at end of #pragma ghs endsda");
   
   pop_data_area (DATA_AREA_SDA);
 }
@@ -261,7 +261,7 @@ ghs_pragma_endzda (cpp_reader * pfile ATTRIBUTE_UNUSED)
   tree x;
   
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of #pragma ghs endzda");
+    warning (0, "junk at end of #pragma ghs endzda");
   
   pop_data_area (DATA_AREA_ZDA);
 }
index 0215882..01c3722 100644 (file)
@@ -2102,7 +2102,7 @@ v850_handle_interrupt_attribute (tree * node,
 {
   if (TREE_CODE (*node) != FUNCTION_DECL)
     {
-      warning ("%qs attribute only applies to functions",
+      warning (0, "%qs attribute only applies to functions",
               IDENTIFIER_POINTER (name));
       *no_add_attrs = true;
     }
index 7d0ba48..4e8e518 100644 (file)
@@ -2413,7 +2413,7 @@ xtensa_multibss_section_type_flags (tree decl, const char *name, int reloc)
                    && DECL_INITIAL (decl) == NULL_TREE))
        flags |= SECTION_BSS;  /* @nobits */
       else
-       warning ("only uninitialized variables can be placed in a "
+       warning (0, "only uninitialized variables can be placed in a "
                 ".bss section");
     }
 
index fcab997..dc18879 100644 (file)
@@ -180,7 +180,7 @@ read_counts_file (void)
 
   if (!gcov_magic (gcov_read_unsigned (), GCOV_DATA_MAGIC))
     {
-      warning ("%qs is not a gcov data file", da_file_name);
+      warning (0, "%qs is not a gcov data file", da_file_name);
       gcov_close ();
       return;
     }
@@ -191,7 +191,7 @@ read_counts_file (void)
       GCOV_UNSIGNED2STRING (v, tag);
       GCOV_UNSIGNED2STRING (e, GCOV_VERSION);
 
-      warning ("%qs is version %q.*s, expected version %q.*s",
+      warning (0, "%qs is version %q.*s, expected version %q.*s",
               da_file_name, 4, v, 4, e);
       gcov_close ();
       return;
@@ -345,7 +345,7 @@ get_coverage_counts (unsigned counter, unsigned expected,
   entry = htab_find (counts_hash, &elt);
   if (!entry)
     {
-      warning ("no coverage for function %qs found.", IDENTIFIER_POINTER
+      warning (0, "no coverage for function %qs found.", IDENTIFIER_POINTER
               (DECL_ASSEMBLER_NAME (current_function_decl)));
       return 0;
     }
@@ -581,7 +581,7 @@ coverage_end_function (void)
 
   if (bbg_file_opened > 1 && gcov_is_error ())
     {
-      warning ("error writing %qs", bbg_file_name);
+      warning (0, "error writing %qs", bbg_file_name);
       bbg_file_opened = -1;
     }
 
index 14a787b..6f2baf6 100644 (file)
@@ -1,3 +1,10 @@
+2005-04-23  DJ Delorie  <dj@redhat.com>
+
+       * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
+       init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
+       repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
+       callers.
+
 2005-04-22  Per Bothner  <per@bothner.com>
 
        * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
index 7dbb4d6..e40e61f 100644 (file)
@@ -3402,14 +3402,14 @@ build_conditional_expr (tree arg1, tree arg2, tree arg3)
       
       if (TREE_CODE (arg2_type) == ENUMERAL_TYPE
           && TREE_CODE (arg3_type) == ENUMERAL_TYPE)
-         warning ("enumeral mismatch in conditional expression: %qT vs %qT",
+         warning (0, "enumeral mismatch in conditional expression: %qT vs %qT",
                    arg2_type, arg3_type);
       else if (extra_warnings
                && ((TREE_CODE (arg2_type) == ENUMERAL_TYPE
                     && !same_type_p (arg3_type, type_promotes_to (arg2_type)))
                    || (TREE_CODE (arg3_type) == ENUMERAL_TYPE
                        && !same_type_p (arg2_type, type_promotes_to (arg3_type)))))
-        warning ("enumeral and non-enumeral type in conditional expression");
+        warning (0, "enumeral and non-enumeral type in conditional expression");
       
       arg2 = perform_implicit_conversion (result_type, arg2);
       arg3 = perform_implicit_conversion (result_type, arg3);
@@ -3776,7 +3776,7 @@ build_new_op (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3,
                  && (TYPE_MAIN_VARIANT (TREE_TYPE (arg1))
                      != TYPE_MAIN_VARIANT (TREE_TYPE (arg2))))
                {
-                 warning ("comparison between %q#T and %q#T", 
+                 warning (0, "comparison between %q#T and %q#T", 
                            TREE_TYPE (arg1), TREE_TYPE (arg2));
                }
              break;
@@ -4097,7 +4097,7 @@ build_temp (tree expr, tree type, int flags,
                                    build_tree_list (NULL_TREE, expr), 
                                    type, flags);
   if (warningcount > savew)
-    *diagnostic_fn = warning;
+    *diagnostic_fn = warning0;
   else if (errorcount > savee)
     *diagnostic_fn = error;
   else
@@ -4160,10 +4160,10 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
       if (ARITHMETIC_TYPE_P (t) && expr == null_node)
        {
          if (fn)
-           warning ("passing NULL to non-pointer argument %P of %qD",
+           warning (0, "passing NULL to non-pointer argument %P of %qD",
                     argnum, fn);
          else
-           warning ("converting to non-pointer type %qT from NULL", t);
+           warning (0, "converting to non-pointer type %qT from NULL", t);
        }
 
       /* Warn about assigning a floating-point type to an integer type.  */
@@ -4171,10 +4171,10 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
          && TREE_CODE (t) == INTEGER_TYPE)
        {
          if (fn)
-           warning ("passing %qT for argument %P to %qD",
+           warning (0, "passing %qT for argument %P to %qD",
                     TREE_TYPE (expr), argnum, fn);
          else
-           warning ("converting to %qT from %qT", t, TREE_TYPE (expr));
+           warning (0, "converting to %qT from %qT", t, TREE_TYPE (expr));
        }
       /* And warn about assigning a negative value to an unsigned
         variable.  */
@@ -4183,10 +4183,10 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
          if (TREE_CODE (expr) == INTEGER_CST && TREE_NEGATED_INT (expr)) 
            {
              if (fn)
-               warning ("passing negative value %qE for argument %P to %qD",
+               warning (0, "passing negative value %qE for argument %P to %qD",
                         expr, argnum, fn);
              else
-               warning ("converting negative value %qE to %qT", expr, t);
+               warning (0, "converting negative value %qE to %qT", expr, t);
            }
          
          overflow_warning (expr);
@@ -4443,7 +4443,7 @@ convert_arg_to_ellipsis (tree arg)
         there is no need to emit a warning, since the expression won't be 
         evaluated. We keep the builtin_trap just as a safety check.  */
       if (!skip_evaluation)
-       warning ("cannot pass objects of non-POD type %q#T through %<...%>; "
+       warning (0, "cannot pass objects of non-POD type %q#T through %<...%>; "
                 "call will abort at runtime", TREE_TYPE (arg));
       arg = call_builtin_trap ();
       arg = build2 (COMPOUND_EXPR, integer_type_node, arg,
@@ -4469,7 +4469,7 @@ build_x_va_arg (tree expr, tree type)
   if (! pod_type_p (type))
     {
       /* Undefined behavior [expr.call] 5.2.2/7.  */
-      warning ("cannot receive objects of non-POD type %q#T through %<...%>; "
+      warning (0, "cannot receive objects of non-POD type %q#T through %<...%>; "
                "call will abort at runtime", type);
       expr = convert (build_pointer_type (type), null_node);
       expr = build2 (COMPOUND_EXPR, TREE_TYPE (expr),
@@ -5384,7 +5384,7 @@ build_new_method_call (tree instance, tree fns, tree args,
                  || DECL_DESTRUCTOR_P (current_function_decl)))
            /* This is not an error, it is runtime undefined
               behavior.  */
-           warning ((DECL_CONSTRUCTOR_P (current_function_decl) ? 
+           warning (0, (DECL_CONSTRUCTOR_P (current_function_decl) ? 
                      "abstract virtual %q#D called from constructor"
                      : "abstract virtual %q#D called from destructor"),
                     cand->fn);
@@ -5997,9 +5997,9 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn)
 
              if (warn)
                {
-                 warning ("passing %qT chooses %qT over %qT",
+                 warning (0, "passing %qT chooses %qT over %qT",
                              type, type1, type2);
-                 warning ("  in call to %qD", w->fn);
+                 warning (0, "  in call to %qD", w->fn);
                }
              else
                add_warning (w, l);
@@ -6056,10 +6056,10 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn)
          tree source = source_type (w->convs[0]);
          if (! DECL_CONSTRUCTOR_P (w->fn))
            source = TREE_TYPE (source);
-         warning ("choosing %qD over %qD", w->fn, l->fn);
-         warning ("  for conversion from %qT to %qT",
+         warning (0, "choosing %qD over %qD", w->fn, l->fn);
+         warning (0, "  for conversion from %qT to %qT",
                   source, w->second_conv->type);
-         warning ("  because conversion sequence for the argument is better");
+         warning (0, "  because conversion sequence for the argument is better");
        }
       else
        add_warning (w, l);
index 2f2bd23..6423fbc 100644 (file)
@@ -1234,7 +1234,7 @@ check_bases (tree t,
         here because the case of virtual functions but non-virtual
         dtor is handled in finish_struct_1.  */
       if (warn_ecpp && ! TYPE_POLYMORPHIC_P (basetype))
-       warning ("base class %q#T has a non-virtual destructor", basetype);
+       warning (0, "base class %q#T has a non-virtual destructor", basetype);
 
       /* If the base class doesn't have copy constructors or
         assignment operators that take const references, then the
@@ -1548,7 +1548,7 @@ maybe_warn_about_overly_private_class (tree t)
          }
       if (!has_nonprivate_method) 
        {
-         warning ("all member functions in class %qT are private", t);
+         warning (0, "all member functions in class %qT are private", t);
          return;
        }
     }
@@ -1559,7 +1559,7 @@ maybe_warn_about_overly_private_class (tree t)
   fn = CLASSTYPE_DESTRUCTORS (t);
   if (fn && TREE_PRIVATE (fn))
     {
-      warning ("%q#T only defines a private destructor and has no friends",
+      warning (0, "%q#T only defines a private destructor and has no friends",
               t);
       return;
     }
@@ -1599,7 +1599,7 @@ maybe_warn_about_overly_private_class (tree t)
 
       if (nonprivate_ctor == 0)
        {
-         warning ("%q#T only defines private constructors and has no friends",
+         warning (0, "%q#T only defines private constructors and has no friends",
                    t);
          return;
        }
@@ -3035,16 +3035,16 @@ check_field_decls (tree t, tree *access_decls,
        && TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t)
        && !(TYPE_HAS_INIT_REF (t) && TYPE_HAS_ASSIGN_REF (t)))
     {
-      warning ("%q#T has pointer data members", t);
+      warning (0, "%q#T has pointer data members", t);
       
       if (! TYPE_HAS_INIT_REF (t))
        {
-         warning ("  but does not override %<%T(const %T&)%>", t, t);
+         warning (0, "  but does not override %<%T(const %T&)%>", t, t);
          if (! TYPE_HAS_ASSIGN_REF (t))
-           warning ("  or %<operator=(const %T&)%>", t);
+           warning (0, "  or %<operator=(const %T&)%>", t);
        }
       else if (! TYPE_HAS_ASSIGN_REF (t))
-       warning ("  but does not override %<operator=(const %T&)%>", t);
+       warning (0, "  but does not override %<operator=(const %T&)%>", t);
     }
 
 
@@ -3477,7 +3477,7 @@ layout_empty_base (tree binfo, tree eoc, splay_tree offsets)
        propagate_binfo_offsets
          (binfo, size_diffop (size_zero_node, BINFO_OFFSET (binfo)));
       else if (warn_abi)
-       warning ("offset of empty base %qT may not be ABI-compliant and may"
+       warning (0, "offset of empty base %qT may not be ABI-compliant and may"
                 "change in a future version of GCC",
                 BINFO_TYPE (binfo));
     }
@@ -3589,7 +3589,7 @@ build_base_field (record_layout_info rli, tree binfo,
              if (abi_version_at_least (2))
                CLASSTYPE_NEARLY_EMPTY_P (t) = 0;
              else if (warn_abi)
-               warning ("class %qT will be considered nearly empty in a "
+               warning (0, "class %qT will be considered nearly empty in a "
                         "future version of GCC", t);
            }
        }
@@ -4334,7 +4334,7 @@ layout_virtual_bases (record_layout_info rli, splay_tree offsets)
                                         CLASSTYPE_ALIGN (basetype)),
                               bitsize_unit_node),
                   BINFO_OFFSET (vbase))))
-           warning ("offset of virtual base %qT is not ABI-compliant and "
+           warning (0, "offset of virtual base %qT is not ABI-compliant and "
                      "may change in a future version of GCC",
                     basetype);
 
@@ -4433,7 +4433,7 @@ warn_about_ambiguous_bases (tree t)
       basetype = BINFO_TYPE (base_binfo);
 
       if (!lookup_base (t, basetype, ba_unique | ba_quiet, NULL))
-       warning ("direct base %qT inaccessible in %qT due to ambiguity",
+       warning (0, "direct base %qT inaccessible in %qT due to ambiguity",
                 basetype, t);
     }
 
@@ -4445,7 +4445,7 @@ warn_about_ambiguous_bases (tree t)
        basetype = BINFO_TYPE (binfo);
        
        if (!lookup_base (t, basetype, ba_unique | ba_quiet, NULL))
-         warning ("virtual base %qT inaccessible in %qT due to ambiguity",
+         warning (0, "virtual base %qT inaccessible in %qT due to ambiguity",
                   basetype, t);
       }
 }
@@ -4622,7 +4622,7 @@ layout_class_type (tree t, tree *virtuals_p)
              else
                {
                  if (warn_abi && TREE_CODE (t) == UNION_TYPE)
-                   warning ("size assigned to %qT may not be "
+                   warning (0, "size assigned to %qT may not be "
                             "ABI-compliant and may change in a future "
                             "version of GCC", 
                             t);
@@ -4661,7 +4661,7 @@ layout_class_type (tree t, tree *virtuals_p)
                   && DECL_MODE (field) != TYPE_MODE (type))
            /* Versions of G++ before G++ 3.4 did not reset the
               DECL_MODE.  */
-           warning ("the offset of %qD may not be ABI-compliant and may "
+           warning (0, "the offset of %qD may not be ABI-compliant and may "
                     "change in a future version of GCC", field);
        }
       else
@@ -4754,7 +4754,7 @@ layout_class_type (tree t, tree *virtuals_p)
          TYPE_SIZE (base_t) = bitsize_zero_node;
          TYPE_SIZE_UNIT (base_t) = size_zero_node;
          if (warn_abi && !integer_zerop (rli_size_unit_so_far (rli)))
-           warning ("layout of classes derived from empty class %qT "
+           warning (0, "layout of classes derived from empty class %qT "
                     "may change in a future version of GCC",
                     t);
        }
@@ -5045,7 +5045,7 @@ finish_struct_1 (tree t)
              && (!TREE_PRIVATE (dtor) 
                  || CLASSTYPE_FRIEND_CLASSES (t) 
                  || DECL_FRIENDLIST (TYPE_MAIN_DECL (t)))))
-       warning ("%q#T has virtual functions but non-virtual destructor", 
+       warning (0, "%q#T has virtual functions but non-virtual destructor", 
                 t);
     }
 
index 32dc96d..5150fcf 100644 (file)
@@ -194,7 +194,7 @@ cp_convert_to_pointer (tree type, tree expr, bool force)
       if (bk == bk_via_virtual)
        {
          if (force)
-           warning ("pointer to member cast from %qT to %qT is via"
+           warning (0, "pointer to member cast from %qT to %qT is via"
                      " virtual base", intype, type);
          else
            {
@@ -512,7 +512,7 @@ convert_to_reference (tree reftype, tree expr, int convtype,
       if (TREE_CODE (intype) == POINTER_TYPE
          && (comptypes (TREE_TYPE (intype), type,
                         COMPARE_BASE | COMPARE_DERIVED)))
-       warning ("casting %qT to %qT does not dereference pointer",
+       warning (0, "casting %qT to %qT does not dereference pointer",
                 intype, reftype);
          
       rval = build_unary_op (ADDR_EXPR, expr, 0);
@@ -854,10 +854,10 @@ convert_to_void (tree expr, const char *implicit)
         int is_complete = COMPLETE_TYPE_P (complete_type (type));
         
         if (is_volatile && !is_complete)
-          warning ("object of incomplete type %qT will not be accessed in %s",
+          warning (0, "object of incomplete type %qT will not be accessed in %s",
                    type, implicit ? implicit : "void context");
         else if (is_reference && is_volatile)
-          warning ("object of type %qT will not be accessed in %s",
+          warning (0, "object of type %qT will not be accessed in %s",
                    TREE_TYPE (TREE_OPERAND (expr, 0)),
                    implicit ? implicit : "void context");
         if (is_reference || !is_volatile || !is_complete)
@@ -873,7 +873,7 @@ convert_to_void (tree expr, const char *implicit)
         int is_complete = COMPLETE_TYPE_P (complete_type (type));
         
         if (TYPE_VOLATILE (type) && !is_complete)
-          warning ("object %qE of incomplete type %qT will not be accessed in %s",
+          warning (0, "object %qE of incomplete type %qT will not be accessed in %s",
                    expr, type, implicit ? implicit : "void context");
         break;
       }
@@ -895,7 +895,7 @@ convert_to_void (tree expr, const char *implicit)
       }
     else if (implicit && probe == expr && is_overloaded_fn (probe))
       /* Only warn when there is no &.  */
-      warning ("%s is a reference, not call, to function %qE",
+      warning (0, "%s is a reference, not call, to function %qE",
                  implicit, expr);
   }
   
@@ -906,7 +906,7 @@ convert_to_void (tree expr, const char *implicit)
          /* The middle end does not warn about expressions that have
             been explicitly cast to void, so we must do so here.  */
          if (!TREE_SIDE_EFFECTS (expr))
-           warning ("%s has no effect", implicit);
+           warning (0, "%s has no effect", implicit);
          else 
            { 
              tree e;
@@ -938,7 +938,7 @@ convert_to_void (tree expr, const char *implicit)
                            || code == PREINCREMENT_EXPR
                            || code == POSTDECREMENT_EXPR
                            || code == POSTINCREMENT_EXPR)))
-               warning ("value computed is not used");
+               warning (0, "value computed is not used");
            }
        }
       expr = build1 (CONVERT_EXPR, void_type_node, expr);
@@ -1046,7 +1046,7 @@ build_expr_type_conversion (int desires, tree expr, bool complain)
   if (expr == null_node 
       && (desires & WANT_INT) 
       && !(desires & WANT_NULL))
-    warning ("converting NULL to non-pointer type");
+    warning (0, "converting NULL to non-pointer type");
     
   basetype = TREE_TYPE (expr);
 
index 5d52a26..60b478e 100644 (file)
@@ -565,7 +565,7 @@ poplevel (int keep, int reverse, int functionbody)
          && ! TREE_USED (decl)
          && ! DECL_IN_SYSTEM_HEADER (decl)
          && DECL_NAME (decl) && ! DECL_ARTIFICIAL (decl))
-       warning ("%Junused variable %qD", decl, decl);
+       warning (0, "%Junused variable %qD", decl, decl);
 
   /* Remove declarations for all the DECLs in this level.  */
   for (link = decls; link; link = TREE_CHAIN (link))
@@ -1055,17 +1055,17 @@ duplicate_decls (tree newdecl, tree olddecl)
               && DECL_UNINLINABLE (olddecl)
               && lookup_attribute ("noinline", DECL_ATTRIBUTES (olddecl)))
        {
-         warning ("%Jfunction %qD redeclared as inline", newdecl, newdecl);
-         warning ("%Jprevious declaration of %qD with attribute noinline",
+         warning (0, "%Jfunction %qD redeclared as inline", newdecl, newdecl);
+         warning (0, "%Jprevious declaration of %qD with attribute noinline",
                    olddecl, olddecl);
        }
       else if (DECL_DECLARED_INLINE_P (olddecl)
               && DECL_UNINLINABLE (newdecl)
               && lookup_attribute ("noinline", DECL_ATTRIBUTES (newdecl)))
        {
-         warning ("%Jfunction %qD redeclared with attribute noinline",
+         warning (0, "%Jfunction %qD redeclared with attribute noinline",
                   newdecl, newdecl);
-         warning ("%Jprevious declaration of %qD was inline",
+         warning (0, "%Jprevious declaration of %qD was inline",
                   olddecl, olddecl);
        }
     }
@@ -1086,7 +1086,7 @@ duplicate_decls (tree newdecl, tree olddecl)
          if (! TREE_PUBLIC (newdecl))
            {
              if (warn_shadow)
-                warning ("shadowing %s function %q#D",
+                warning (0, "shadowing %s function %q#D",
                          DECL_BUILT_IN (olddecl) ? "built-in" : "library",
                          olddecl);
              /* Discard the old built-in function.  */
@@ -1095,7 +1095,7 @@ duplicate_decls (tree newdecl, tree olddecl)
          /* If the built-in is not ansi, then programs can override
             it even globally without an error.  */
          else if (! DECL_BUILT_IN (olddecl))
-           warning ("library function %q#D redeclared as non-function %q#D",
+           warning (0, "library function %q#D redeclared as non-function %q#D",
                      olddecl, newdecl);
          else
            {
@@ -1152,12 +1152,12 @@ duplicate_decls (tree newdecl, tree olddecl)
 
              if (TREE_PUBLIC (newdecl))
                {
-                 warning ("new declaration %q#D", newdecl);
-                 warning ("ambiguates built-in declaration %q#D",
+                 warning (0, "new declaration %q#D", newdecl);
+                 warning (0, "ambiguates built-in declaration %q#D",
                            olddecl);
                }
              else if (warn_shadow)
-               warning ("shadowing %s function %q#D",
+               warning (0, "shadowing %s function %q#D",
                          DECL_BUILT_IN (olddecl) ? "built-in" : "library",
                          olddecl);
            }
@@ -1363,7 +1363,7 @@ duplicate_decls (tree newdecl, tree olddecl)
        {
          /* Prototype decl follows defn w/o prototype.  */
          cp_warning_at ("prototype for %q#D", newdecl);
-         warning ("%Jfollows non-prototype definition here", olddecl);
+         warning (0, "%Jfollows non-prototype definition here", olddecl);
        }
       else if (TREE_CODE (olddecl) == FUNCTION_DECL
               && DECL_LANGUAGE (newdecl) != DECL_LANGUAGE (olddecl))
@@ -1418,8 +1418,8 @@ duplicate_decls (tree newdecl, tree olddecl)
              && ! DECL_DECLARED_INLINE_P (olddecl)
              && TREE_ADDRESSABLE (olddecl) && warn_inline)
            {
-             warning ("%q#D was used before it was declared inline", newdecl);
-             warning ("%Jprevious non-inline declaration here", olddecl);
+             warning (0, "%q#D was used before it was declared inline", newdecl);
+             warning (0, "%Jprevious non-inline declaration here", olddecl);
            }
        }
     }
@@ -1471,7 +1471,7 @@ duplicate_decls (tree newdecl, tree olddecl)
          /* Don't warn about friends, let add_friend take care of it.  */
          && ! (DECL_FRIEND_P (newdecl) || DECL_FRIEND_P (olddecl)))
        {
-         warning ("redundant redeclaration of %qD in same scope", newdecl);
+         warning (0, "redundant redeclaration of %qD in same scope", newdecl);
          cp_warning_at ("previous declaration of %qD", olddecl);
        }
     }
@@ -1806,9 +1806,9 @@ duplicate_decls (tree newdecl, tree olddecl)
       && DECL_VISIBILITY_SPECIFIED (newdecl)
       && DECL_VISIBILITY (newdecl) != DECL_VISIBILITY (olddecl))
     {
-      warning ("%J%qD: visibility attribute ignored because it",
+      warning (0, "%J%qD: visibility attribute ignored because it",
               newdecl, newdecl);
-      warning ("%Jconflicts with previous declaration here", olddecl);
+      warning (0, "%Jconflicts with previous declaration here", olddecl);
     }
   /* Choose the declaration which specified visibility.  */
   if (DECL_VISIBILITY_SPECIFIED (olddecl))
@@ -3645,7 +3645,7 @@ start_decl (const cp_declarator *declarator,
     {
       if (! toplevel_bindings_p ()
          && DECL_EXTERNAL (decl))
-       warning ("declaration of %q#D has %<extern%> and is initialized",
+       warning (0, "declaration of %q#D has %<extern%> and is initialized",
                  decl);
       DECL_EXTERNAL (decl) = 0;
       if (toplevel_bindings_p ())
@@ -3667,7 +3667,7 @@ start_decl (const cp_declarator *declarator,
       && DECL_DECLARED_INLINE_P (decl)
       && DECL_UNINLINABLE (decl)
       && lookup_attribute ("noinline", DECL_ATTRIBUTES (decl)))
-    warning ("%Jinline function %qD given attribute noinline", decl, decl);
+    warning (0, "%Jinline function %qD given attribute noinline", decl, decl);
 
   if (context && COMPLETE_TYPE_P (complete_type (context)))
     {
@@ -4052,7 +4052,7 @@ maybe_commonize_var (tree decl)
              cp_warning_at ("sorry: semantics of inline function static "
                              "data %q#D are wrong (you'll wind up "
                              "with multiple copies)", decl);
-             warning ("%J  you can work around this by removing "
+             warning (0, "%J  you can work around this by removing "
                        "the initializer",
                       decl);
            }
@@ -4366,7 +4366,7 @@ reshape_init (tree type, tree *initp)
       if (brace_enclosed_p)
        error ("too many initializers for %qT", type);
       else if (warn_missing_braces && !string_init_p)
-       warning ("missing braces around initializer");
+       warning (0, "missing braces around initializer");
     }
 
   return new_init;
@@ -4506,7 +4506,7 @@ check_initializer (tree decl, tree init, int flags, tree *cleanup)
                  && DECL_INITIAL (decl)
                  && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST
                  && PAREN_STRING_LITERAL_P (DECL_INITIAL (decl)))
-               warning ("array %qD initialized by parenthesized string literal %qE",
+               warning (0, "array %qD initialized by parenthesized string literal %qE",
                         decl, DECL_INITIAL (decl));
              init = NULL;
            }
@@ -4783,7 +4783,7 @@ cp_finish_decl (tree decl, tree init, tree asmspec_tree, int flags)
          && IS_AGGR_TYPE (type) && DECL_NAME (decl))
        {
          if (TREE_TYPE (DECL_NAME (decl)) && TREE_TYPE (decl) != type)
-           warning ("shadowing previous type declaration of %q#D", decl);
+           warning (0, "shadowing previous type declaration of %q#D", decl);
          set_identifier_type_value (DECL_NAME (decl), decl);
        }
 
@@ -5885,7 +5885,7 @@ grokvardecl (tree type,
                     no linkage can only be used to declare extern "C"
                     entities.  Since it's not always an error in the
                     ISO C++ 90 Standard, we only issue a warning.  */
-                 warning ("non-local variable %q#D uses anonymous type",
+                 warning (0, "non-local variable %q#D uses anonymous type",
                           decl);
                  if (DECL_ORIGINAL_TYPE (TYPE_NAME (t)))
                    cp_warning_at ("%q#D does not refer to the unqualified "
@@ -5894,7 +5894,7 @@ grokvardecl (tree type,
                }
            }
          else
-           warning ("non-local variable %q#D uses local type %qT", decl, t);
+           warning (0, "non-local variable %q#D uses local type %qT", decl, t);
        }
     }
   else
@@ -6728,7 +6728,7 @@ grokdeclarator (const cp_declarator *declarator,
       else if (pedantic || ! is_main)
        pedwarn ("ISO C++ forbids declaration of %qs with no type", name);
       else if (warn_return_type)
-       warning ("ISO C++ forbids declaration of %qs with no type", name);
+       warning (0, "ISO C++ forbids declaration of %qs with no type", name);
 
       type = integer_type_node;
     }
@@ -7013,7 +7013,7 @@ grokdeclarator (const cp_declarator *declarator,
          /* It's common practice (and completely valid) to have a const
             be initialized and declared extern.  */
          if (!(type_quals & TYPE_QUAL_CONST))
-           warning ("%qs initialized and declared %<extern%>", name);
+           warning (0, "%qs initialized and declared %<extern%>", name);
        }
       else
        error ("%qs has both %<extern%> and initializer", name);
@@ -7953,7 +7953,7 @@ grokdeclarator (const cp_declarator *declarator,
          {
            /* Friends are treated specially.  */
            if (ctype == current_class_type)
-             warning ("member functions are implicitly friends of their class");
+             warning (0, "member functions are implicitly friends of their class");
            else if (decl && DECL_NAME (decl))
              {
                if (template_class_depth (current_class_type) == 0)
@@ -8777,7 +8777,7 @@ grok_op_properties (tree decl, int friendp, bool complain)
                what = "a base class";
 
              if (what && warn_conversion)
-               warning ("conversion to %s%s will never use a type "
+               warning (0, "conversion to %s%s will never use a type "
                          "conversion operator",
                         ref ? "a reference to " : "", what);
            }
@@ -8869,13 +8869,13 @@ grok_op_properties (tree decl, int friendp, bool complain)
                  if (TREE_CODE (ret) != REFERENCE_TYPE
                      || !same_type_p (TYPE_MAIN_VARIANT (TREE_TYPE (ret)),
                                       arg))
-                   warning ("prefix %qD should return %qT", decl,
+                   warning (0, "prefix %qD should return %qT", decl,
                              build_reference_type (arg));
                }
              else
                {
                  if (!same_type_p (TYPE_MAIN_VARIANT (ret), arg))
-                   warning ("postfix %qD should return %qT", decl, arg);
+                   warning (0, "postfix %qD should return %qT", decl, arg);
                }
            }
        }
@@ -8904,7 +8904,7 @@ grok_op_properties (tree decl, int friendp, bool complain)
              && (operator_code == TRUTH_ANDIF_EXPR
                  || operator_code == TRUTH_ORIF_EXPR
                  || operator_code == COMPOUND_EXPR))
-           warning ("user-defined %qD always evaluates both arguments",
+           warning (0, "user-defined %qD always evaluates both arguments",
                      decl);
        }
 
@@ -8918,7 +8918,7 @@ grok_op_properties (tree decl, int friendp, bool complain)
              || operator_code == MULT_EXPR
              || operator_code == TRUNC_MOD_EXPR)
          && TREE_CODE (TREE_TYPE (TREE_TYPE (decl))) == REFERENCE_TYPE)
-       warning ("%qD should return by value", decl);
+       warning (0, "%qD should return by value", decl);
 
       /* [over.oper]/8 */
       for (; argtypes && argtypes != void_list_node;
@@ -9906,7 +9906,7 @@ start_preparsed_function (tree decl1, tree attrs, int flags)
 
   if (DECL_DECLARED_INLINE_P (decl1)
       && lookup_attribute ("noinline", attrs))
-    warning ("%Jinline function %qD given attribute noinline", decl1, decl1);
+    warning (0, "%Jinline function %qD given attribute noinline", decl1, decl1);
 
   if (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (decl1))
     /* This is a constructor, we must ensure that any default args
@@ -9943,7 +9943,7 @@ start_preparsed_function (tree decl1, tree attrs, int flags)
   if (warn_ecpp
       && DECL_OVERLOADED_OPERATOR_P (decl1) == NOP_EXPR
       && TREE_CODE (TREE_TYPE (fntype)) == VOID_TYPE)
-    warning ("%<operator=%> should return a reference to %<*this%>");
+    warning (0, "%<operator=%> should return a reference to %<*this%>");
 
   /* Make the init_value nonzero so pushdecl knows this is not tentative.
      error_mark_node is replaced below (in poplevel) with the BLOCK.  */
@@ -10676,7 +10676,7 @@ finish_function (int flags)
       /* Structor return values (if any) are set by the compiler.  */
       && !DECL_CONSTRUCTOR_P (fndecl)
       && !DECL_DESTRUCTOR_P (fndecl))
-    warning ("no return statement in function returning non-void");
+    warning (0, "no return statement in function returning non-void");
 
   /* Store the end of the function, so that we get good line number
      info for the epilogue.  */
index 6cc68e2..530ba39 100644 (file)
@@ -420,7 +420,7 @@ delete_sanity (tree exp, tree size, bool doing_vec, int use_global_delete)
   /* An array can't have been allocated by new, so complain.  */
   if (TREE_CODE (exp) == VAR_DECL
       && TREE_CODE (TREE_TYPE (exp)) == ARRAY_TYPE)
-    warning ("deleting array %q#D", exp);
+    warning (0, "deleting array %q#D", exp);
 
   t = build_expr_type_conversion (WANT_POINTER, exp, true);
 
@@ -446,7 +446,7 @@ delete_sanity (tree exp, tree size, bool doing_vec, int use_global_delete)
   /* Deleting ptr to void is undefined behavior [expr.delete/3].  */
   if (TREE_CODE (TREE_TYPE (type)) == VOID_TYPE)
     {
-      warning ("deleting %qT is undefined", type);
+      warning (0, "deleting %qT is undefined", type);
       doing_vec = 0;
     }
 
@@ -1168,7 +1168,7 @@ finish_anon_union (tree anon_union_decl)
   main_decl = build_anon_union_vars (type, anon_union_decl);
   if (main_decl == NULL_TREE)
     {
-      warning ("anonymous union with no members");
+      warning (0, "anonymous union with no members");
       return;
     }
 
index ef4fb21..60db762 100644 (file)
@@ -599,7 +599,7 @@ build_throw (tree exp)
     }
 
   if (exp == null_node)
-    warning ("throwing NULL, which has integral, not pointer type");
+    warning (0, "throwing NULL, which has integral, not pointer type");
   
   if (exp != NULL_TREE)
     {
@@ -918,9 +918,9 @@ check_handlers_1 (tree master, tree_stmt_iterator i)
       tree handler = tsi_stmt (i);
       if (TREE_TYPE (handler) && can_convert_eh (type, TREE_TYPE (handler)))
        {
-         warning ("%Hexception of type %qT will be caught",
+         warning (0, "%Hexception of type %qT will be caught",
                   EXPR_LOCUS (handler), TREE_TYPE (handler));
-         warning ("%H   by earlier handler for %qT",
+         warning (0, "%H   by earlier handler for %qT",
                   EXPR_LOCUS (master), type);
          break;
         }
index 8203dbb..213f8d7 100644 (file)
@@ -149,7 +149,7 @@ add_friend (tree type, tree decl, bool complain)
              if (decl == TREE_VALUE (friends))
                {
                  if (complain)
-                   warning ("%qD is already a friend of class %qT",
+                   warning (0, "%qD is already a friend of class %qT",
                             decl, type);
                  return;
                }
@@ -361,7 +361,7 @@ make_friend_class (tree type, tree friend_type, bool complain)
          if (friend_type == probe)
            {
              if (complain)
-               warning ("%qD is already a friend of %qT", probe, type);
+               warning (0, "%qD is already a friend of %qT", probe, type);
              break;
            }
        }
@@ -370,7 +370,7 @@ make_friend_class (tree type, tree friend_type, bool complain)
          if (same_type_p (probe, friend_type))
            {
              if (complain)
-               warning ("%qT is already a friend of %qT", probe, type);
+               warning (0, "%qT is already a friend of %qT", probe, type);
              break;
            }
        }
@@ -550,11 +550,11 @@ do_friend (tree ctype, tree declarator, tree decl,
          if (warn)
            {
              static int explained;
-             warning ("friend declaration %q#D declares a non-template "
+             warning (0, "friend declaration %q#D declares a non-template "
                        "function", decl);
              if (! explained)
                {
-                 warning ("(if this is not what you intended, make sure "
+                 warning (0, "(if this is not what you intended, make sure "
                            "the function template has already been declared "
                            "and add <> after the function name here) "
                            "-Wno-non-template-friend disables this warning");
index 0abf1b2..99891cb 100644 (file)
@@ -323,7 +323,7 @@ perform_member_init (tree member, tree init)
   /* Effective C++ rule 12 requires that all data members be
      initialized.  */
   if (warn_ecpp && !explicit && TREE_CODE (type) != ARRAY_TYPE)
-    warning ("%J%qD should be initialized in the member initialization "
+    warning (0, "%J%qD should be initialized in the member initialization "
             "list", current_function_decl, member);
 
   if (init == void_type_node)
@@ -370,7 +370,7 @@ perform_member_init (tree member, tree init)
            {
              init = build_default_init (type, /*nelts=*/NULL_TREE);
              if (TREE_CODE (type) == REFERENCE_TYPE)
-               warning ("%Jdefault-initialization of %q#D, "
+               warning (0, "%Jdefault-initialization of %q#D, "
                         "which has reference type",
                         current_function_decl, member);
            }
@@ -525,13 +525,13 @@ sort_mem_initializers (tree t, tree mem_inits)
            cp_warning_at ("%qD will be initialized after",
                           TREE_PURPOSE (next_subobject));
          else
-           warning ("base %qT will be initialized after",
+           warning (0, "base %qT will be initialized after",
                     TREE_PURPOSE (next_subobject));
          if (TREE_CODE (subobject) == FIELD_DECL)
            cp_warning_at ("  %q#D", subobject);
          else
-           warning ("  base %qT", subobject);
-         warning ("%J  when initialized here", current_function_decl);
+           warning (0, "  base %qT", subobject);
+         warning (0, "%J  when initialized here", current_function_decl);
        }
 
       /* Look again, from the beginning of the list.  */
@@ -679,7 +679,7 @@ emit_mem_initializers (tree mem_inits)
       if (extra_warnings && !arguments 
          && DECL_COPY_CONSTRUCTOR_P (current_function_decl)
          && TYPE_NEEDS_CONSTRUCTING (BINFO_TYPE (subobject)))
-       warning ("%Jbase class %q#T should be explicitly initialized in the "
+       warning (0, "%Jbase class %q#T should be explicitly initialized in the "
                 "copy constructor",
                 current_function_decl, BINFO_TYPE (subobject));
 
@@ -1645,7 +1645,7 @@ build_new (tree placement, tree type, tree nelts, tree init,
        pedwarn ("size in array new must have integral type");
       nelts = save_expr (cp_convert (sizetype, nelts));
       if (nelts == integer_zero_node)
-       warning ("zero size array reserves no space");
+       warning (0, "zero size array reserves no space");
     }
 
   /* ``A reference cannot be created by the new operator.  A reference
@@ -2735,7 +2735,7 @@ build_delete (tree type, tree addr, special_function_kind auto_delete,
          complete_type (type);
          if (!COMPLETE_TYPE_P (type))
            {
-             warning ("possible problem detected in invocation of "
+             warning (0, "possible problem detected in invocation of "
                       "delete operator:");
              cxx_incomplete_type_diagnostic (addr, type, 1);
              inform ("neither the destructor nor the class-specific "
index 6074fef..9e39241 100644 (file)
@@ -433,7 +433,7 @@ parse_strconst_pragma (const char* name, int opt)
     {
       result = x;
       if (c_lex (&x) != CPP_EOF)
-       warning ("junk at end of #pragma %s", name);
+       warning (0, "junk at end of #pragma %s", name);
       return result;
     }
 
@@ -527,7 +527,7 @@ handle_pragma_implementation (cpp_reader* dfile ATTRIBUTE_UNUSED )
         cookie (if any) of the filename, but this requires completing the
         --enable-mapped-location project first.  See PR 17577.  */
       if (cpp_included (parse_in, filename))
-       warning ("#pragma implementation for %qs appears after "
+       warning (0, "#pragma implementation for %qs appears after "
                 "file is included", filename);
 #endif
     }
@@ -552,7 +552,7 @@ handle_pragma_java_exceptions (cpp_reader* dfile ATTRIBUTE_UNUSED )
 {
   tree x;
   if (c_lex (&x) != CPP_EOF)
-    warning ("junk at end of #pragma GCC java_exceptions");
+    warning (0, "junk at end of #pragma GCC java_exceptions");
 
   choose_personality_routine (lang_java);
 }
index 0f358cd..fc6c424 100644 (file)
@@ -2479,7 +2479,7 @@ static inline const char *
 finish_mangling (const bool warn)
 {
   if (warn_abi && warn && G.need_abi_warning)
-    warning ("the mangled name of %qD will change in a future "
+    warning (0, "the mangled name of %qD will change in a future "
             "version of GCC",
             G.entity);
 
index 7e4e956..2bce7f8 100644 (file)
@@ -1096,7 +1096,7 @@ lazily_declare_fn (special_function_kind sfk, tree type)
         TYPE_METHODS list, which cause the destructor to be emitted
         in an incorrect location in the vtable.  */ 
       if (warn_abi && DECL_VIRTUAL_P (fn))
-       warning ("vtable layout for class %qT may not be ABI-compliant"
+       warning (0, "vtable layout for class %qT may not be ABI-compliant"
                 "and may change in a future version of GCC due to "
                 "implicit virtual destructor",
                 type);
index ce1d5b3..634645d 100644 (file)
@@ -894,7 +894,7 @@ pushdecl (tree x)
                /* OK */;
              else
                {
-                 warning ("extern declaration of %q#D doesn't match", x);
+                 warning (0, "extern declaration of %q#D doesn't match", x);
                  cp_warning_at ("global declaration %q#D", oldglobal);
                }
            }
@@ -938,8 +938,8 @@ pushdecl (tree x)
 
              if (warn_shadow && !err)
                {
-                 warning ("declaration of %q#D shadows a parameter", x);
-                 warning ("%Jshadowed declaration is here", oldlocal);
+                 warning (0, "declaration of %q#D shadows a parameter", x);
+                 warning (0, "%Jshadowed declaration is here", oldlocal);
                }
            }
 
@@ -963,22 +963,22 @@ pushdecl (tree x)
              if (member && !TREE_STATIC (member))
                {
                  /* Location of previous decl is not useful in this case.  */
-                 warning ("declaration of %qD shadows a member of 'this'",
+                 warning (0, "declaration of %qD shadows a member of 'this'",
                           x);
                }
              else if (oldlocal != NULL_TREE
                       && TREE_CODE (oldlocal) == VAR_DECL)
                {
-                 warning ("declaration of %qD shadows a previous local", x);
-                 warning ("%Jshadowed declaration is here", oldlocal);
+                 warning (0, "declaration of %qD shadows a previous local", x);
+                 warning (0, "%Jshadowed declaration is here", oldlocal);
                }
              else if (oldglobal != NULL_TREE
                       && TREE_CODE (oldglobal) == VAR_DECL)
                /* XXX shadow warnings in outer-more namespaces */
                {
-                 warning ("declaration of %qD shadows a global declaration",
+                 warning (0, "declaration of %qD shadows a global declaration",
                           x);
-                 warning ("%Jshadowed declaration is here", oldglobal);
+                 warning (0, "%Jshadowed declaration is here", oldglobal);
                }
            }
        }
@@ -1092,7 +1092,7 @@ check_for_out_of_scope_variable (tree decl)
     {
       if (!DECL_ERROR_REPORTED (decl))
        {
-         warning ("name lookup of %qD changed", DECL_NAME (decl));
+         warning (0, "name lookup of %qD changed", DECL_NAME (decl));
          cp_warning_at ("  matches this %qD under ISO standard rules",
                         shadowed);
          cp_warning_at ("  matches this %qD under old rules", decl);
@@ -1861,7 +1861,7 @@ push_overloaded_decl (tree decl, int flags)
          if (IS_AGGR_TYPE (t) && warn_shadow
              && (! DECL_IN_SYSTEM_HEADER (decl)
                  || ! DECL_IN_SYSTEM_HEADER (old)))
-           warning ("%q#D hides constructor for %q#T", decl, t);
+           warning (0, "%q#D hides constructor for %q#T", decl, t);
          old = NULL_TREE;
        }
       else if (is_overloaded_fn (old))
@@ -3207,7 +3207,7 @@ parse_using_directive (tree namespace, tree attribs)
                           DECL_NAMESPACE_ASSOCIATIONS (namespace));
        }
       else
-       warning ("%qD attribute directive ignored", name);
+       warning (0, "%qD attribute directive ignored", name);
     }
 }
 
index cb09fa1..56ff049 100644 (file)
@@ -1798,7 +1798,7 @@ static inline void
 cp_parser_warn_min_max (void)
 {
   if (warn_deprecated && !in_system_header)
-    warning ("minimum/maximum operators are deprecated");
+    warning (0, "minimum/maximum operators are deprecated");
 }
 
 /* If not parsing tentatively, issue a diagnostic of the form
@@ -5297,7 +5297,7 @@ cp_parser_cast_expression (cp_parser *parser, bool address_p, bool cast_p)
              && !in_system_header
              && !VOID_TYPE_P (type)
              && current_lang_name != lang_name_c)
-           warning ("use of old-style cast");
+           warning (0, "use of old-style cast");
 
          /* Only type conversions to integral or enumeration types
             can be used in constant-expressions.  */
@@ -8128,7 +8128,7 @@ cp_parser_template_declaration (cp_parser* parser, bool member_p)
       /* Consume the `export' token.  */
       cp_lexer_consume_token (parser->lexer);
       /* Warn that we do not support `export'.  */
-      warning ("keyword %<export%> not implemented, and will be ignored");
+      warning (0, "keyword %<export%> not implemented, and will be ignored");
     }
 
   cp_parser_template_declaration_after_export (parser, member_p);
@@ -9914,7 +9914,7 @@ cp_parser_elaborated_type_specifier (cp_parser* parser,
 
          /* Warn about attributes. They are ignored.  */
          if (attributes)
-           warning ("type attributes are honored only at type definition");
+           warning (0, "type attributes are honored only at type definition");
 
          type = xref_tag (tag_type, identifier, ts,
                           parser->num_template_parameter_lists);
@@ -10759,7 +10759,7 @@ cp_parser_init_declarator (cp_parser* parser,
      attributes -- but ignores them.  */
   if (cp_parser_allow_gnu_extensions_p (parser) && is_parenthesized_init)
     if (cp_parser_attributes_opt (parser))
-      warning ("attributes after parenthesized initializer ignored");
+      warning (0, "attributes after parenthesized initializer ignored");
 
   /* For an in-class declaration, use `grokfield' to create the
      declaration.  */
@@ -12036,7 +12036,7 @@ cp_parser_parameter_declaration (cp_parser *parser,
       if (!parser->default_arg_ok_p)
        {
          if (!flag_pedantic_errors)
-           warning ("deprecated use of default argument for parameter of non-function");
+           warning (0, "deprecated use of default argument for parameter of non-function");
          else
            {
              error ("default arguments are only permitted for function parameters");
index 6675980..92a53b5 100644 (file)
@@ -109,7 +109,7 @@ get_base_filename (const char *filename)
 
   if (p && ! compiling)
     {
-      warning ("-frepo must be used with -c");
+      warning (0, "-frepo must be used with -c");
       flag_use_repository = 0;
       return NULL;
     }
index 9368bfe..1cad0bd 100644 (file)
@@ -567,7 +567,7 @@ build_dynamic_cast_1 (tree type, tree expr)
                  && TREE_CODE (TREE_TYPE (old_expr)) == RECORD_TYPE)
                {
                  tree expr = throw_bad_cast ();
-                 warning ("dynamic_cast of %q#D to %q#T can never succeed",
+                 warning (0, "dynamic_cast of %q#D to %q#T can never succeed",
                            old_expr, type);
                  /* Bash it to the expected type.  */
                  TREE_TYPE (expr) = type;
@@ -581,7 +581,7 @@ build_dynamic_cast_1 (tree type, tree expr)
              if (TREE_CODE (op) == VAR_DECL
                  && TREE_CODE (TREE_TYPE (op)) == RECORD_TYPE)
                {
-                 warning ("dynamic_cast of %q#D to %q#T can never succeed",
+                 warning (0, "dynamic_cast of %q#D to %q#T can never succeed",
                            op, type);
                  retval = build_int_cst (type, 0); 
                  return retval;
index 44315f4..9f0776a 100644 (file)
@@ -1767,12 +1767,12 @@ handle_com_interface_attribute (tree* node,
       || !CLASS_TYPE_P (*node)
       || *node != TYPE_MAIN_VARIANT (*node))
     {
-      warning ("%qE attribute can only be applied to class definitions", name);
+      warning (0, "%qE attribute can only be applied to class definitions", name);
       return NULL_TREE;
     }
 
   if (!warned++)
-    warning ("%qE is obsolete; g++ vtables are now COM-compatible by default",
+    warning (0, "%qE is obsolete; g++ vtables are now COM-compatible by default",
             name);
 
   return NULL_TREE;
@@ -1835,7 +1835,7 @@ handle_init_priority_attribute (tree* node,
   if (pri <= MAX_RESERVED_INIT_PRIORITY)
     {
       warning
-       ("requested init_priority is reserved for internal use");
+       (0, "requested init_priority is reserved for internal use");
     }
 
   if (SUPPORTS_INIT_PRIORITY)
index 2829576..2b4d9ec 100644 (file)
@@ -1480,7 +1480,7 @@ string_conv_p (tree totype, tree exp, int warn)
 
   /* This warning is not very useful, as it complains about printf.  */
   if (warn && warn_write_strings)
-    warning ("deprecated conversion from string constant to %qT'", totype);
+    warning (0, "deprecated conversion from string constant to %qT'", totype);
 
   return 1;
 }
@@ -1698,9 +1698,9 @@ build_class_member_access_expr (tree object, tree member,
          && !DECL_FIELD_IS_BASE (member)
          && !skip_evaluation)
        {
-         warning ("invalid access to non-static data member %qD of NULL object", 
+         warning (0, "invalid access to non-static data member %qD of NULL object", 
                   member);
-         warning  ("(perhaps the %<offsetof%> macro was used incorrectly)");
+         warning (0, "(perhaps the %<offsetof%> macro was used incorrectly)");
        }
 
       /* If MEMBER is from an anonymous aggregate, we have converted
@@ -2174,7 +2174,7 @@ build_array_ref (tree array, tree idx)
         must have done so deliberately.  */
       if (warn_char_subscripts
          && TYPE_MAIN_VARIANT (TREE_TYPE (idx)) == char_type_node)
-       warning ("array subscript has type %<char%>");
+       warning (0, "array subscript has type %<char%>");
 
       if (!INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (idx)))
        {
@@ -2226,7 +2226,7 @@ build_array_ref (tree array, tree idx)
          while (TREE_CODE (foo) == COMPONENT_REF)
            foo = TREE_OPERAND (foo, 0);
          if (TREE_CODE (foo) == VAR_DECL && DECL_REGISTER (foo))
-           warning ("subscripting array declared %<register%>");
+           warning (0, "subscripting array declared %<register%>");
        }
 
       type = TREE_TYPE (TREE_TYPE (array));
@@ -2854,9 +2854,9 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
              || code1 == COMPLEX_TYPE || code1 == VECTOR_TYPE))
        {
          if (TREE_CODE (op1) == INTEGER_CST && integer_zerop (op1))
-           warning ("division by zero in %<%E / 0%>", op0);
+           warning (0, "division by zero in %<%E / 0%>", op0);
          else if (TREE_CODE (op1) == REAL_CST && real_zerop (op1))
-           warning ("division by zero in %<%E / 0.%>", op0);
+           warning (0, "division by zero in %<%E / 0.%>", op0);
              
          if (code0 == COMPLEX_TYPE || code0 == VECTOR_TYPE)
            code0 = TREE_CODE (TREE_TYPE (TREE_TYPE (op0)));
@@ -2890,9 +2890,9 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
     case TRUNC_MOD_EXPR:
     case FLOOR_MOD_EXPR:
       if (code1 == INTEGER_TYPE && integer_zerop (op1))
-       warning ("division by zero in %<%E %% 0%>", op0);
+       warning (0, "division by zero in %<%E %% 0%>", op0);
       else if (code1 == REAL_TYPE && real_zerop (op1))
-       warning ("division by zero in %<%E %% 0.%>", op0);
+       warning (0, "division by zero in %<%E %% 0.%>", op0);
       
       if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE)
        {
@@ -2926,13 +2926,13 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
          if (TREE_CODE (op1) == INTEGER_CST)
            {
              if (tree_int_cst_lt (op1, integer_zero_node))
-               warning ("right shift count is negative");
+               warning (0, "right shift count is negative");
              else
                {
                  if (! integer_zerop (op1))
                    short_shift = 1;
                  if (compare_tree_int (op1, TYPE_PRECISION (type0)) >= 0)
-                   warning ("right shift count >= width of type");
+                   warning (0, "right shift count >= width of type");
                }
            }
          /* Convert the shift-count to an integer, regardless of
@@ -2951,9 +2951,9 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
          if (TREE_CODE (op1) == INTEGER_CST)
            {
              if (tree_int_cst_lt (op1, integer_zero_node))
-               warning ("left shift count is negative");
+               warning (0, "left shift count is negative");
              else if (compare_tree_int (op1, TYPE_PRECISION (type0)) >= 0)
-               warning ("left shift count >= width of type");
+               warning (0, "left shift count >= width of type");
            }
          /* Convert the shift-count to an integer, regardless of
             size of value being shifted.  */
@@ -2972,10 +2972,10 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
          if (TREE_CODE (op1) == INTEGER_CST)
            {
              if (tree_int_cst_lt (op1, integer_zero_node))
-               warning ("%s rotate count is negative",
+               warning (0, "%s rotate count is negative",
                         (code == LROTATE_EXPR) ? "left" : "right");
              else if (compare_tree_int (op1, TYPE_PRECISION (type0)) >= 0)
-               warning ("%s rotate count >= width of type",
+               warning (0, "%s rotate count >= width of type",
                         (code == LROTATE_EXPR) ? "left" : "right");
            }
          /* Convert the shift-count to an integer, regardless of
@@ -2988,7 +2988,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
     case EQ_EXPR:
     case NE_EXPR:
       if (warn_float_equal && (code0 == REAL_TYPE || code1 == REAL_TYPE))
-       warning ("comparing floating point with == or != is unsafe");
+       warning (0, "comparing floating point with == or != is unsafe");
 
       build_type = boolean_type_node; 
       if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
@@ -3315,7 +3315,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
              && TYPE_MAIN_VARIANT (TREE_TYPE (orig_op0))
                 != TYPE_MAIN_VARIANT (TREE_TYPE (orig_op1)))
            {
-             warning ("comparison between types %q#T and %q#T", 
+             warning (0, "comparison between types %q#T and %q#T", 
                        TREE_TYPE (orig_op0), TREE_TYPE (orig_op1));
            }
 
@@ -3351,7 +3351,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
                                                (result_type)))))
            /* OK */;
          else
-           warning ("comparison between signed and unsigned integer expressions");
+           warning (0, "comparison between signed and unsigned integer expressions");
 
          /* Warn if two unsigned values are being compared in a size
             larger than their original size, and one (and only one) is the
@@ -3395,7 +3395,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
                    {
                      mask = (~ (HOST_WIDE_INT) 0) << bits;
                      if ((mask & constant) != mask)
-                       warning ("comparison of promoted ~unsigned with constant");
+                       warning (0, "comparison of promoted ~unsigned with constant");
                    }
                }
              else if (unsignedp0 && unsignedp1
@@ -3403,7 +3403,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
                           < TYPE_PRECISION (result_type))
                       && (TYPE_PRECISION (TREE_TYPE (primop1))
                           < TYPE_PRECISION (result_type)))
-               warning ("comparison of promoted ~unsigned with unsigned");
+               warning (0, "comparison of promoted ~unsigned with unsigned");
            }
        }
     }
@@ -3430,7 +3430,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
        performed.  Note that pointer-difference and pointer-addition
        have already been handled above, and so we don't end up here in
        that case.  */
-    warning ("NULL used in arithmetic");
+    warning (0, "NULL used in arithmetic");
 
   if (! converted)
     {
@@ -3593,7 +3593,7 @@ build_x_unary_op (enum tree_code code, tree xarg)
            }         
         }
       else if (TREE_CODE (xarg) == TARGET_EXPR)
-       warning ("taking address of temporary");
+       warning (0, "taking address of temporary");
       exp = build_unary_op (ADDR_EXPR, xarg, 0);
     }
 
@@ -4288,7 +4288,7 @@ cxx_mark_addressable (tree exp)
              }
            else if (extra_warnings)
              warning
-               ("address requested for %qD, which is declared %<register%>", x);
+               (0, "address requested for %qD, which is declared %<register%>", x);
          }
        TREE_ADDRESSABLE (x) = 1;
        return true;
@@ -4492,7 +4492,7 @@ build_static_cast_1 (tree type, tree expr, bool c_cast_p,
     {
       /* C-style casts are allowed to cast away constness.  With
         WARN_CAST_QUAL, we still want to issue a warning.  */ 
-      diag_fn = warn_cast_qual ? warning : NULL;
+      diag_fn = warn_cast_qual ? warning0 : NULL;
       desc = "cast";
     }
   else
@@ -4807,7 +4807,7 @@ build_reinterpret_cast_1 (tree type, tree expr, bool c_cast_p,
       if (TYPE_PTR_P (intype)
          && (comptypes (TREE_TYPE (intype), TREE_TYPE (type),
                         COMPARE_BASE | COMPARE_DERIVED)))
-       warning ("casting %qT to %qT does not dereference pointer",
+       warning (0, "casting %qT to %qT does not dereference pointer",
                 intype, type);
 
       expr = build_unary_op (ADDR_EXPR, expr, 0);
@@ -4879,7 +4879,7 @@ build_reinterpret_cast_1 (tree type, tree expr, bool c_cast_p,
          && COMPLETE_TYPE_P (TREE_TYPE (type))
          && COMPLETE_TYPE_P (TREE_TYPE (intype))
          && TYPE_ALIGN (TREE_TYPE (type)) > TYPE_ALIGN (TREE_TYPE (intype)))
-       warning ("cast from %qT to %qT increases required alignment of "
+       warning (0, "cast from %qT to %qT increases required alignment of "
                 "target type",
                 intype, type);
       
@@ -4893,7 +4893,7 @@ build_reinterpret_cast_1 (tree type, tree expr, bool c_cast_p,
           where possible, and it is necessary in some cases.  DR 195
           addresses this issue, but as of 2004/10/26 is still in
           drafting.  */
-       warning ("ISO C++ forbids casting between pointer-to-function and pointer-to-object");
+       warning (0, "ISO C++ forbids casting between pointer-to-function and pointer-to-object");
       return fold_if_not_in_template (build_nop (type, expr));
     }
   else if (TREE_CODE (type) == VECTOR_TYPE)
@@ -5535,7 +5535,7 @@ get_delta_difference (tree from, tree to,
              virt_binfo = binfo_from_vbase (binfo);
              if (virt_binfo)
                /* This is a reinterpret cast, we choose to do nothing.  */
-               warning ("pointer to member cast via virtual base %qT",
+               warning (0, "pointer to member cast via virtual base %qT",
                         BINFO_TYPE (virt_binfo));
              else
                result = size_diffop (size_zero_node, BINFO_OFFSET (binfo));
@@ -5551,7 +5551,7 @@ get_delta_difference (tree from, tree to,
        {
          /* This is a reinterpret cast, we choose to do nothing.  */
          if (allow_inverse_p)
-           warning ("pointer to member cast via virtual base %qT",
+           warning (0, "pointer to member cast via virtual base %qT",
                     BINFO_TYPE (virt_binfo));
          else
            error ("pointer to member conversion via virtual base %qT",
@@ -5973,14 +5973,14 @@ maybe_warn_about_returning_address_of_local (tree retval)
       if (TREE_CODE (whats_returned) == AGGR_INIT_EXPR
          || TREE_CODE (whats_returned) == TARGET_EXPR)
        {
-         warning ("returning reference to temporary");
+         warning (0, "returning reference to temporary");
          return;
        }
       if (TREE_CODE (whats_returned) == VAR_DECL 
          && DECL_NAME (whats_returned)
          && TEMP_NAME_P (DECL_NAME (whats_returned)))
        {
-         warning ("reference to non-lvalue returned");
+         warning (0, "reference to non-lvalue returned");
          return;
        }
     }
@@ -6019,7 +6019,7 @@ check_return_expr (tree retval)
      (This is a G++ extension, used to get better code for functions
      that call the `volatile' function.)  */
   if (TREE_THIS_VOLATILE (current_function_decl))
-    warning ("function declared %<noreturn%> has a %<return%> statement");
+    warning (0, "function declared %<noreturn%> has a %<return%> statement");
 
   /* Check for various simple errors.  */
   if (DECL_DESTRUCTOR_P (current_function_decl))
@@ -6107,7 +6107,7 @@ check_return_expr (tree retval)
       && !TYPE_NOTHROW_P (TREE_TYPE (current_function_decl))
       && ! flag_check_new
       && null_ptr_cst_p (retval))
-    warning ("%<operator new%> must not return NULL unless it is "
+    warning (0, "%<operator new%> must not return NULL unless it is "
              "declared %<throw()%> (or -fcheck-new is in effect)");
 
   /* Effective C++ rule 15.  See also start_function.  */
@@ -6133,7 +6133,7 @@ check_return_expr (tree retval)
        }
 
       if (warn)
-       warning ("%<operator=%> should return a reference to %<*this%>");
+       warning (0, "%<operator=%> should return a reference to %<*this%>");
     }
 
   /* The fabled Named Return Value optimization, as per [class.copy]/15:
index 81e34d7..37eb023 100644 (file)
@@ -352,7 +352,7 @@ cxx_incomplete_type_diagnostic (tree value, tree type, int diag_type)
 
   if (diag_type == 1)
     {
-      p_msg = warning;
+      p_msg = warning0;
       p_msg_at = cp_warning_at;
     }
   else if (diag_type == 2)
@@ -839,7 +839,7 @@ process_init_constructor (tree type, tree init, tree* elts)
   if (elts)
     {
       if (warn_missing_braces)
-       warning ("aggregate has a partly bracketed initializer");
+       warning (0, "aggregate has a partly bracketed initializer");
       tail = *elts;
     }
   else
@@ -1005,7 +1005,7 @@ process_init_constructor (tree type, tree init, tree* elts)
              /* Warn when some struct elements are implicitly initialized.  */
              if (warn_missing_field_initializers
                  && (!init || BRACE_ENCLOSED_INITIALIZER_P (init)))
-               warning ("missing initializer for member %qD", field);
+               warning (0, "missing initializer for member %qD", field);
            }
          else
            {
@@ -1020,7 +1020,7 @@ process_init_constructor (tree type, tree init, tree* elts)
                 to zero.  */
              if (warn_missing_field_initializers
                  && (!init || BRACE_ENCLOSED_INITIALIZER_P (init)))
-               warning ("missing initializer for member %qD", field);
+               warning (0, "missing initializer for member %qD", field);
 
              if (! zero_init_p (TREE_TYPE (field)))
                next1 = build_zero_init (TREE_TYPE (field),
index 5d10f0c..941ddb8 100644 (file)
@@ -412,7 +412,19 @@ inform (const char *msgid, ...)
 /* A warning.  Use this for code which is correct according to the
    relevant language specification but is likely to be buggy anyway.  */
 void
-warning (const char *msgid, ...)
+warning (int opt ATTRIBUTE_UNUSED, const char *msgid, ...)
+{
+  diagnostic_info diagnostic;
+  va_list ap;
+
+  va_start (ap, msgid);
+  diagnostic_set_info (&diagnostic, msgid, &ap, input_location, DK_WARNING);
+  report_diagnostic (&diagnostic);
+  va_end (ap);
+}
+
+void
+warning0 (const char *msgid, ...)
 {
   diagnostic_info diagnostic;
   va_list ap;
index b67d3b2..0410797 100644 (file)
@@ -3266,7 +3266,7 @@ make_insn_raw (rtx pattern)
          || (GET_CODE (insn) == SET
              && SET_DEST (insn) == pc_rtx)))
     {
-      warning ("ICE: emit_insn used where emit_jump_insn needed:\n");
+      warning (0, "ICE: emit_insn used where emit_jump_insn needed:\n");
       debug_rtx (insn);
     }
 #endif
index 6889c73..9470db1 100644 (file)
@@ -42,7 +42,7 @@ int have_error = 0;
 /* Print a warning message - output produced, but there may be problems.  */
 
 void
-warning (const char *format, ...)
+warning (int opt ATTRIBUTE_UNUSED, const char *format, ...)
 {
   va_list ap;
 
index 03b94ca..99aa241 100644 (file)
@@ -30,7 +30,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #ifndef GCC_ERRORS_H
 #define GCC_ERRORS_H
 
-extern void warning (const char *, ...);
+extern void warning (int, const char *, ...);
 extern void error (const char *, ...);
 extern void fatal (const char *, ...) ATTRIBUTE_NORETURN;
 extern void internal_error (const char *, ...) ATTRIBUTE_NORETURN;
index 1327c74..e928025 100644 (file)
@@ -3226,7 +3226,7 @@ optimize_bit_field_compare (enum tree_code code, tree compare_type,
                                        fold_convert (unsigned_type, rhs),
                                        size_int (lbitsize), 0)))
        {
-         warning ("comparison is always %d due to width of bit-field",
+         warning (0, "comparison is always %d due to width of bit-field",
                   code == NE_EXPR);
          return constant_boolean_node (code == NE_EXPR, compare_type);
        }
@@ -3237,7 +3237,7 @@ optimize_bit_field_compare (enum tree_code code, tree compare_type,
                              size_int (lbitsize - 1), 0);
       if (! integer_zerop (tem) && ! integer_all_onesp (tem))
        {
-         warning ("comparison is always %d due to width of bit-field",
+         warning (0, "comparison is always %d due to width of bit-field",
                   code == NE_EXPR);
          return constant_boolean_node (code == NE_EXPR, compare_type);
        }
@@ -4808,7 +4808,7 @@ fold_truthop (enum tree_code code, tree truth_type, tree lhs, tree rhs)
                                                     lntype, ll_mask),
                                        0)))
        {
-         warning ("comparison is always %d", wanted_code == NE_EXPR);
+         warning (0, "comparison is always %d", wanted_code == NE_EXPR);
 
          return constant_boolean_node (wanted_code == NE_EXPR, truth_type);
        }
@@ -4823,7 +4823,7 @@ fold_truthop (enum tree_code code, tree truth_type, tree lhs, tree rhs)
                                                     lntype, rl_mask),
                                        0)))
        {
-         warning ("comparison is always %d", wanted_code == NE_EXPR);
+         warning (0, "comparison is always %d", wanted_code == NE_EXPR);
 
          return constant_boolean_node (wanted_code == NE_EXPR, truth_type);
        }
@@ -4952,12 +4952,12 @@ fold_truthop (enum tree_code code, tree truth_type, tree lhs, tree rhs)
     {
       if (wanted_code == NE_EXPR)
        {
-         warning ("%<or%> of unmatched not-equal tests is always 1");
+         warning (0, "%<or%> of unmatched not-equal tests is always 1");
          return constant_boolean_node (true, truth_type);
        }
       else
        {
-         warning ("%<and%> of mutually exclusive equal-tests is always 0");
+         warning (0, "%<and%> of mutually exclusive equal-tests is always 0");
          return constant_boolean_node (false, truth_type);
        }
     }
index 94ad2f0..123fb9a 100644 (file)
@@ -1,3 +1,7 @@
+2005-04-23  DJ Delorie  <dj@redhat.com>
+
+       * trans-decl.c: Adjust warning() callers.
+
 2005-04-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
 
        * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
index 08dd72a..8620572 100644 (file)
@@ -1916,7 +1916,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, tree fnbody)
     {
       if (!current_fake_result_decl)
        {
-         warning ("Function does not return a value");
+         warning (0, "Function does not return a value");
          return fnbody;
        }
 
@@ -2111,12 +2111,12 @@ generate_local_decl (gfc_symbol * sym)
       if (sym->attr.referenced)
         gfc_get_symbol_decl (sym);
       else if (sym->attr.dummy && warn_unused_parameter)
-            warning ("unused parameter %qs", sym->name);
+            warning (0, "unused parameter %qs", sym->name);
       /* Warn for unused variables, but not if they're inside a common
         block or are use-associated.  */
       else if (warn_unused_variable
               && !(sym->attr.in_common || sym->attr.use_assoc))
-       warning ("unused variable %qs", sym->name); 
+       warning (0, "unused variable %qs", sym->name); 
     }
 }
 
@@ -2257,7 +2257,7 @@ gfc_generate_function_code (gfc_namespace * ns)
        result = sym->result->backend_decl;
 
       if (result == NULL_TREE)
-       warning ("Function return value not set");
+       warning (0, "Function return value not set");
       else
        {
          /* Set the return value to the dummy result variable.  */
index 7ed6092..cd7bb52 100644 (file)
@@ -3601,7 +3601,7 @@ setjmp_vars_warning (tree block)
          && DECL_RTL_SET_P (decl)
          && REG_P (DECL_RTL (decl))
          && regno_clobbered_at_setjmp (REGNO (DECL_RTL (decl))))
-       warning ("%Jvariable %qD might be clobbered by %<longjmp%>"
+       warning (0, "%Jvariable %qD might be clobbered by %<longjmp%>"
                 " or %<vfork%>",
                 decl, decl);
     }
@@ -3622,7 +3622,7 @@ setjmp_args_warning (void)
     if (DECL_RTL (decl) != 0
        && REG_P (DECL_RTL (decl))
        && regno_clobbered_at_setjmp (REGNO (DECL_RTL (decl))))
-      warning ("%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>",
+      warning (0, "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>",
               decl, decl);
 }
 
@@ -4020,7 +4020,7 @@ init_function_start (tree subr)
      regardless of which calling convention we are using for it.  */
   if (warn_aggregate_return
       && AGGREGATE_TYPE_P (TREE_TYPE (DECL_RESULT (subr))))
-    warning ("function returns an aggregate");
+    warning (0, "function returns an aggregate");
 }
 
 /* Make sure all values used by the optimization passes have sane
@@ -4343,7 +4343,7 @@ do_warn_unused_parameter (tree fn)
        decl; decl = TREE_CHAIN (decl))
     if (!TREE_USED (decl) && TREE_CODE (decl) == PARM_DECL
        && DECL_NAME (decl) && !DECL_ARTIFICIAL (decl))
-      warning ("%Junused parameter %qD", decl, decl);
+      warning (0, "%Junused parameter %qD", decl, decl);
 }
 
 static GTY(()) rtx initial_trampoline;
index 7223f05..10460a8 100644 (file)
@@ -6530,7 +6530,7 @@ is_too_expensive (const char *pass)
   if (n_edges > 20000 + n_basic_blocks * 4)
     {
       if (warn_disabled_optimization)
-       warning ("%s: %d basic blocks and %d edges/basic block",
+       warning (0, "%s: %d basic blocks and %d edges/basic block",
                 pass, n_basic_blocks, n_edges / n_basic_blocks);
 
       return true;
@@ -6543,7 +6543,7 @@ is_too_expensive (const char *pass)
        * sizeof (SBITMAP_ELT_TYPE)) > MAX_GCSE_MEMORY)
     {
       if (warn_disabled_optimization)
-       warning ("%s: %d basic blocks and %d registers",
+       warning (0, "%s: %d basic blocks and %d registers",
                 pass, n_basic_blocks, max_reg_num ());
 
       return true;
index ac1f69c..51e2f41 100644 (file)
@@ -2724,7 +2724,7 @@ add_presence_absence (unit_set_el_t dest_list,
                        }
                      else
                        warning
-                         ("unit `%s' excludes and requires presence of `%s'",
+                         (0, "unit `%s' excludes and requires presence of `%s'",
                           dst->unit_decl->name, unit->name);
                    }
                }
@@ -2744,7 +2744,7 @@ add_presence_absence (unit_set_el_t dest_list,
                      }
                    else
                      warning
-                       ("unit `%s' requires absence and presence of `%s'",
+                       (0, "unit `%s' requires absence and presence of `%s'",
                         dst->unit_decl->name, unit->name);
                  }
            if (no_error_flag)
@@ -2826,7 +2826,7 @@ process_decls (void)
                error ("repeated declaration of automaton `%s'",
                       DECL_AUTOMATON (decl)->name);
              else
-               warning ("repeated declaration of automaton `%s'",
+               warning (0, "repeated declaration of automaton `%s'",
                         DECL_AUTOMATON (decl)->name);
            }
        }
@@ -2946,7 +2946,7 @@ process_decls (void)
                           DECL_BYPASS (decl)->in_insn_name);
                      else
                        warning
-                         ("the same bypass `%s - %s' is already defined",
+                         (0, "the same bypass `%s - %s' is already defined",
                           DECL_BYPASS (decl)->out_insn_name,
                           DECL_BYPASS (decl)->in_insn_name);
                    }
@@ -3056,7 +3056,7 @@ check_automaton_usage (void)
          if (!w_flag)
            error ("automaton `%s' is not used", DECL_AUTOMATON (decl)->name);
          else
-           warning ("automaton `%s' is not used",
+           warning (0, "automaton `%s' is not used",
                     DECL_AUTOMATON (decl)->name);
        }
     }
@@ -3170,14 +3170,14 @@ check_usage (void)
          if (!w_flag)
            error ("unit `%s' is not used", DECL_UNIT (decl)->name);
          else
-           warning ("unit `%s' is not used", DECL_UNIT (decl)->name);
+           warning (0, "unit `%s' is not used", DECL_UNIT (decl)->name);
        }
       else if (decl->mode == dm_reserv && !DECL_RESERV (decl)->reserv_is_used)
        {
          if (!w_flag)
            error ("reservation `%s' is not used", DECL_RESERV (decl)->name);
          else
-           warning ("reservation `%s' is not used", DECL_RESERV (decl)->name);
+           warning (0, "reservation `%s' is not used", DECL_RESERV (decl)->name);
        }
     }
 }
@@ -9818,7 +9818,7 @@ check_automata_insn_issues (void)
                           reserv_ainsn->insn_reserv_decl->name);
                  else
                    warning
-                     ("Automaton `%s': Insn `%s' will never be issued",
+                     (0, "Automaton `%s': Insn `%s' will never be issued",
                       automaton->corresponding_automaton_decl->name,
                       reserv_ainsn->insn_reserv_decl->name);
                }
@@ -9828,7 +9828,7 @@ check_automata_insn_issues (void)
                    error ("Insn `%s' will never be issued",
                           reserv_ainsn->insn_reserv_decl->name);
                  else
-                   warning ("Insn `%s' will never be issued",
+                   warning (0, "Insn `%s' will never be issued",
                             reserv_ainsn->insn_reserv_decl->name);
                }
          }
index b307bd4..87de24e 100644 (file)
@@ -179,7 +179,7 @@ fix_sched_param (const char *param, const char *val)
   if (!strcmp (param, "verbose"))
     sched_verbose_param = atoi (val);
   else
-    warning ("fix_sched_param: unknown param: %s", param);
+    warning (0, "fix_sched_param: unknown param: %s", param);
 }
 
 struct haifa_insn_data *h_i_d;
index f5d39eb..251b8b5 100644 (file)
@@ -1,3 +1,8 @@
+2005-04-23  DJ Delorie  <dj@redhat.com>
+
+       * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
+       parse.y: Adjust warning() callers.
+
 2005-04-21  Bryce McKinlay  <mckinlay@redhat.com>
 
        * gcj.texi (Object fields): Change "Integer" to "Int" in example
index 81ba75d..54e310d 100644 (file)
@@ -788,9 +788,9 @@ void
 set_constant_value (tree field, tree constant)
 {
   if (field == NULL_TREE)
-    warning ("misplaced ConstantValue attribute (not in any field)");
+    warning (0, "misplaced ConstantValue attribute (not in any field)");
   else if (DECL_INITIAL (field) != NULL_TREE)
-    warning ("duplicate ConstantValue attribute for field '%s'",
+    warning (0, "duplicate ConstantValue attribute for field '%s'",
             IDENTIFIER_POINTER (DECL_NAME (field)));
   else
     {
@@ -1417,7 +1417,7 @@ get_dispatch_table (tree type, tree this_class_addr)
       if (METHOD_ABSTRACT (method))
        {
          if (! abstract_p)
-           warning ("%Jabstract method in non-abstract class", method);
+           warning (0, "%Jabstract method in non-abstract class", method);
 
          if (TARGET_VTABLE_USES_DESCRIPTORS)
            for (j = 0; j < TARGET_VTABLE_USES_DESCRIPTORS; ++j)
index 197c391..2feac35 100644 (file)
@@ -1346,7 +1346,7 @@ pushdecl (tree x)
                warnstring = "declaration of %qs shadows global declaration";
 
              if (warnstring)
-               warning (warnstring, IDENTIFIER_POINTER (name));
+               warning (0, warnstring, IDENTIFIER_POINTER (name));
            }
 #endif
 
@@ -1649,7 +1649,7 @@ poplevel (int keep, int reverse, int functionbody)
              define_label (input_location, DECL_NAME (label));
            }
          else if (warn_unused[UNUSED_LABEL] && !TREE_USED (label))
-           warning ("%Jlabel '%D' defined but not used", label, label);
+           warning (0, "%Jlabel '%D' defined but not used", label, label);
          IDENTIFIER_LABEL_VALUE (DECL_NAME (label)) = 0;
 
          /* Put the labels into the "variables" of the
@@ -1777,7 +1777,7 @@ force_poplevels (int start_pc)
   while (current_binding_level->start_pc > start_pc)
     {
       if (pedantic && current_binding_level->start_pc > start_pc)
-       warning ("%JIn %D: overlapped variable and exception ranges at %d",
+       warning (0, "%JIn %D: overlapped variable and exception ranges at %d",
                  current_function_decl, current_function_decl,
                 current_binding_level->start_pc);
       poplevel (1, 0, 0);
@@ -1841,7 +1841,7 @@ give_name_to_locals (JCF *jcf)
          DECL_NAME (decl) = name;
          SET_DECL_ASSEMBLER_NAME (decl, name);
          if (TREE_CODE (decl) != PARM_DECL || TREE_TYPE (decl) != type)
-           warning ("bad type in parameter debug info");
+           warning (0, "bad type in parameter debug info");
        }
       else
        {
@@ -1850,7 +1850,7 @@ give_name_to_locals (JCF *jcf)
          tree decl = build_decl (VAR_DECL, name, type);
          if (end_pc > DECL_CODE_LENGTH (current_function_decl))
            {
-             warning ("%Jbad PC range for debug info for local '%D'",
+             warning (0, "%Jbad PC range for debug info for local '%D'",
                        decl, decl);
              end_pc = DECL_CODE_LENGTH (current_function_decl);
            }
index ee67c22..ae1055e 100644 (file)
@@ -373,7 +373,7 @@ pop_type_0 (tree type, char **messagep)
       && t == object_ptr_type_node)
     {
       if (type != ptr_type_node)
-       warning ("need to insert runtime check for %s", 
+       warning (0, "need to insert runtime check for %s", 
                 xstrdup (lang_printable_name (type, 0)));
       return type;
     }
@@ -502,7 +502,7 @@ can_widen_reference_to (tree source_type, tree target_type)
                          source_type, target_type);
 
       if (!quiet_flag)
-       warning ("assert: %s is assign compatible with %s", 
+       warning (0, "assert: %s is assign compatible with %s", 
                xstrdup (lang_printable_name (target_type, 0)),
                xstrdup (lang_printable_name (source_type, 0)));
       /* Punt everything to runtime.  */
@@ -549,7 +549,7 @@ can_widen_reference_to (tree source_type, tree target_type)
          if (TYPE_DUMMY (source_type) || TYPE_DUMMY (target_type))
            {
              if (! quiet_flag)
-               warning ("assert: %s is assign compatible with %s", 
+               warning (0, "assert: %s is assign compatible with %s", 
                         xstrdup (lang_printable_name (target_type, 0)),
                         xstrdup (lang_printable_name (source_type, 0)));
              return 1;
@@ -2728,7 +2728,7 @@ expand_java_field_op (int is_static, int is_putting, int field_ref_index)
          else if (FIELD_STATIC (field_decl))
            {
              if (!DECL_CLINIT_P (current_function_decl))
-               warning ("%Jassignment to final static field %qD not in "
+               warning (0, "%Jassignment to final static field %qD not in "
                          "class initializer",
                          field_decl, field_decl);
            }
@@ -2737,7 +2737,7 @@ expand_java_field_op (int is_static, int is_putting, int field_ref_index)
              tree cfndecl_name = DECL_NAME (current_function_decl);
              if (! DECL_CONSTRUCTOR_P (current_function_decl)
                  && !ID_FINIT_P (cfndecl_name))
-                warning ("%Jassignment to final field '%D' not in constructor",
+                warning (0, "%Jassignment to final field '%D' not in constructor",
                         field_decl, field_decl);
            }
        }
@@ -2927,7 +2927,7 @@ expand_byte_code (JCF *jcf, tree method)
       int pc = GET_u2 (linenumber_pointer);
       linenumber_pointer += 4;
       if (pc >= length)
-       warning ("invalid PC in line number table");
+       warning (0, "invalid PC in line number table");
       else
        {
          if ((instruction_bits[pc] & BCODE_HAS_LINENUMBER) != 0)
@@ -2983,7 +2983,7 @@ expand_byte_code (JCF *jcf, tree method)
            {
               /* We've just reached the end of a region of dead code.  */
              if (extra_warnings)
-               warning ("unreachable bytecode from %d to before %d",
+               warning (0, "unreachable bytecode from %d to before %d",
                         dead_code_index, PC);
               dead_code_index = -1;
             }
@@ -3025,7 +3025,7 @@ expand_byte_code (JCF *jcf, tree method)
     {
       /* We've just reached the end of a region of dead code.  */
       if (extra_warnings)
-       warning ("unreachable bytecode from %d to the end of the method", 
+       warning (0, "unreachable bytecode from %d to the end of the method", 
                 dead_code_index);
     }
 }
index 534c45b..49d64f0 100644 (file)
@@ -533,7 +533,7 @@ find_class (const char *classname, int classname_length, JCF *jcf,
   if (! java && ! class && java_buf.st_mtime > class_buf.st_mtime)
     {
       if (flag_newer)
-       warning ("source file for class %qs is newer than its matching class file.  Source file %qs used instead", classname, java_buffer);
+       warning (0, "source file for class %qs is newer than its matching class file.  Source file %qs used instead", classname, java_buffer);
       class = -1;
     }
 
index 2af480d..ccf6d34 100644 (file)
@@ -717,8 +717,8 @@ load_class (tree class_or_name, int verbose)
        {
          /* This is just a diagnostic during testing, not a real problem.  */
          if (!quiet_flag)
-           warning("cannot find file for class %s", 
-                   IDENTIFIER_POINTER (saved));
+           warning (0, "cannot find file for class %s", 
+                    IDENTIFIER_POINTER (saved));
          
          /* Fake it.  */
          if (TREE_CODE (class_or_name) == RECORD_TYPE)
@@ -833,7 +833,7 @@ duplicate_class_warning (const char *filename)
   warn_loc.file = filename;
   warn_loc.line = 0;
 #endif
-  warning ("%Hduplicate class will only be compiled once", &warn_loc);
+  warning (0, "%Hduplicate class will only be compiled once", &warn_loc);
 }
 
 static void
@@ -1154,7 +1154,7 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED)
     free (file_list);
 
   if (filename_count == 0)
-    warning ("no input file specified");
+    warning (0, "no input file specified");
 
   if (resource_name)
     {
index a3726fd..fa02c59 100644 (file)
@@ -42,7 +42,8 @@ Boston, MA 02111-1307, USA.  */
 
 extern void fatal_error (const char *msgid, ...)
      ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void warning (const char *msgid, ...) ATTRIBUTE_PRINTF_1;
+void warning (int opt, const char *msgid, ...) ATTRIBUTE_PRINTF_2;
+void warning0 (const char *msgid, ...) ATTRIBUTE_PRINTF_1;
 void report (void);
 
 static void usage (void) ATTRIBUTE_NORETURN;
@@ -256,7 +257,18 @@ fatal_error (const char *msgid, ...)
 }
 
 void
-warning (const char *msgid, ...)
+warning (int opt ATTRIBUTE_UNUSED, const char *msgid, ...)
+{
+  va_list ap;
+  va_start (ap, msgid);
+  fprintf (stderr, _("%s: warning: "), exec_name);
+  vfprintf (stderr, _(msgid), ap);
+  fputc ('\n', stderr);
+  va_end (ap);
+}
+
+void
+warning0 (const char *msgid, ...)
 {
   va_list ap;
   va_start (ap, msgid);
index 7410224..860725f 100644 (file)
@@ -3106,7 +3106,7 @@ yyerror (const char *msgid)
                 code_from_source, strlen (code_from_source));
   remainder = obstack_finish (&temporary_obstack);
   if (do_warning)
-    warning ("%s.\n%s", msgid, remainder);
+    warning (0, "%s.\n%s", msgid, remainder);
   else
     error ("%s.\n%s", msgid, remainder);
 
index b6583b4..3520694 100644 (file)
@@ -1,3 +1,7 @@
+2005-04-23  DJ Delorie  <dj@redhat.com>
+
+       * objc-act.c: Adjust warning() callers.
+
 2005-04-21  Roger Sayle  <roger@eyesopen.com>
 
        * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
index 017c2cd..27e528d 100644 (file)
@@ -753,7 +753,7 @@ objc_finish_implementation (void)
       objc_implementation_context = NULL_TREE;
     }
   else
-    warning ("%<@end%> must appear in an @implementation context");
+    warning (0, "%<@end%> must appear in an @implementation context");
 }
 
 void
@@ -924,7 +924,7 @@ objc_comptypes (tree lhs, tree rhs, int reflexive)
 
                      if (!rproto)
                        warning
-                         ("object does not conform to the %qs protocol",
+                         (0, "object does not conform to the %qs protocol",
                           IDENTIFIER_POINTER (PROTOCOL_NAME (p)));
                    }
                  return 1;
@@ -1014,7 +1014,7 @@ objc_comptypes (tree lhs, tree rhs, int reflexive)
                    }
 
                  if (!rproto)
-                   warning ("class %qs does not implement the %qs protocol",
+                   warning (0, "class %qs does not implement the %qs protocol",
                             IDENTIFIER_POINTER (OBJC_TYPE_NAME (TREE_TYPE (rhs))),
                             IDENTIFIER_POINTER (PROTOCOL_NAME (p)));
                }
@@ -1091,7 +1091,7 @@ objc_comptypes (tree lhs, tree rhs, int reflexive)
                        }
                
                      if (!lproto)
-                       warning ("class %qs does not implement the %qs protocol",
+                       warning (0, "class %qs does not implement the %qs protocol",
                                 IDENTIFIER_POINTER (OBJC_TYPE_NAME
                                                     (TREE_TYPE (lhs))),
                                 IDENTIFIER_POINTER (PROTOCOL_NAME (p)));
@@ -2373,7 +2373,7 @@ build_selector_translation_table (void)
              loc = &DECL_SOURCE_LOCATION (TREE_PURPOSE (chain));
            else
              loc = &input_location;
-           warning ("%Hcreating selector for nonexistent method %qE",
+           warning (0, "%Hcreating selector for nonexistent method %qE",
                     loc, TREE_VALUE (chain));
          }
       }
@@ -2682,9 +2682,9 @@ objc_declare_alias (tree alias_ident, tree class_ident)
 #endif /* OBJCPLUS */
 
   if (!(underlying_class = objc_is_class_name (class_ident)))
-    warning ("cannot find class %qs", IDENTIFIER_POINTER (class_ident));
+    warning (0, "cannot find class %qs", IDENTIFIER_POINTER (class_ident));
   else if (objc_is_class_name (alias_ident))
-    warning ("class %qs already exists", IDENTIFIER_POINTER (alias_ident));
+    warning (0, "class %qs already exists", IDENTIFIER_POINTER (alias_ident));
   else
     alias_chain = tree_cons (underlying_class, alias_ident, alias_chain);
 }
@@ -2945,7 +2945,7 @@ objc_init_exceptions (void)
       /* On Darwin, ObjC exceptions require a sufficiently recent
         version of the runtime, so the user must ask for them explicitly.  */
       if (!flag_objc_exceptions)
-       warning ("use %<-fobjc-exceptions%> to enable Objective-C "
+       warning (0, "use %<-fobjc-exceptions%> to enable Objective-C "
                 "exception syntax");
     }
 #ifndef OBJCPLUS
@@ -3290,9 +3290,9 @@ objc_begin_catch_clause (tree decl)
            continue;
          if (!t || objc_comptypes (TREE_TYPE (t), TREE_TYPE (type), 0) == 1)
            {
-             warning ("exception of type %<%T%> will be caught",
+             warning (0, "exception of type %<%T%> will be caught",
                       TREE_TYPE (type));
-             warning ("%H   by earlier handler for %<%T%>",
+             warning (0, "%H   by earlier handler for %<%T%>",
                       EXPR_LOCUS (stmt), TREE_TYPE (t ? t : objc_object_type));
              break;
            }
@@ -5377,7 +5377,7 @@ check_duplicates (hash hsh, int methods, int is_class)
             different types.  */
          attr loop;
 
-         warning ("multiple %s named %<%c%s%> found",
+         warning (0, "multiple %s named %<%c%s%> found",
                   methods ? "methods" : "selectors",
                   (is_class ? '+' : '-'),
                   IDENTIFIER_POINTER (METHOD_SEL_NAME (meth)));
@@ -5645,7 +5645,7 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params)
                = lookup_method_in_protocol_list (rprotos, sel_name, 0);
 
              if (method_prototype)
-               warning ("found %<-%s%> instead of %<+%s%> in protocol(s)",
+               warning (0, "found %<-%s%> instead of %<+%s%> in protocol(s)",
                         IDENTIFIER_POINTER (sel_name),
                         IDENTIFIER_POINTER (sel_name));
            }
@@ -5704,7 +5704,7 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params)
        }
       else
        {
-         warning ("invalid receiver type %qs",
+         warning (0, "invalid receiver type %qs",
                   gen_type_name (orig_rtype));
          /* After issuing the "invalid receiver" warning, perform method
             lookup as if we were messaging 'id'.  */
@@ -5719,7 +5719,7 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params)
   if (!method_prototype)
     {
       if (rprotos)
-       warning ("%<%c%s%> not found in protocol(s)",
+       warning (0, "%<%c%s%> not found in protocol(s)",
                 (class_tree ? '+' : '-'),
                 IDENTIFIER_POINTER (sel_name));
 
@@ -5733,7 +5733,7 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params)
       static bool warn_missing_methods = false;
 
       if (rtype)
-       warning ("%qs may not respond to %<%c%s%>",
+       warning (0, "%qs may not respond to %<%c%s%>",
                 IDENTIFIER_POINTER (OBJC_TYPE_NAME (rtype)),
                 (class_tree ? '+' : '-'),
                 IDENTIFIER_POINTER (sel_name));
@@ -5741,15 +5741,15 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params)
         then we have failed to find _any_ instance or class method,
         respectively.  */
       else
-       warning ("no %<%c%s%> method found",
+       warning (0, "no %<%c%s%> method found",
                 (class_tree ? '+' : '-'),
                 IDENTIFIER_POINTER (sel_name));
 
       if (!warn_missing_methods)
        {
-         warning ("(Messages without a matching method signature");
-         warning ("will be assumed to return %<id%> and accept");
-         warning ("%<...%> as arguments.)");
+         warning (0, "(Messages without a matching method signature");
+         warning (0, "will be assumed to return %<id%> and accept");
+         warning (0, "%<...%> as arguments.)");
          warn_missing_methods = true;
        }
     }
@@ -5980,7 +5980,7 @@ objc_build_selector_expr (tree selnamelist)
       /* If still not found, print out a warning.  */
       if (!hsh)
        {
-         warning ("undeclared selector %qs", IDENTIFIER_POINTER (selname));
+         warning (0, "undeclared selector %qs", IDENTIFIER_POINTER (selname));
        }
     }
 
@@ -6022,7 +6022,7 @@ build_ivar_reference (tree id)
         to an instance variable.  It's better to catch the cases
         where this is done unknowingly than to support the above
         paradigm.  */
-      warning ("instance variable %qs accessed in class method",
+      warning (0, "instance variable %qs accessed in class method",
               IDENTIFIER_POINTER (id));
       self_decl = convert (objc_instance_type, self_decl); /* cast */
     }
@@ -6279,7 +6279,7 @@ add_category (tree class, tree category)
 
   if (cat)
     {
-      warning ("duplicate interface declaration for category %<%s(%s)%>",
+      warning (0, "duplicate interface declaration for category %<%s(%s)%>",
               IDENTIFIER_POINTER (CLASS_NAME (class)),
               IDENTIFIER_POINTER (CLASS_SUPER_NAME (category)));
     }
@@ -6340,10 +6340,10 @@ add_instance_variable (tree class, int public, tree field_decl)
       /* user-defined constructors and destructors are not known to Obj-C and
          hence will not be called.  This may or may not be a problem. */
       if (TYPE_NEEDS_CONSTRUCTING (field_type))
-        warning ("type %qs has a user-defined constructor", type_name);
+        warning (0, "type %qs has a user-defined constructor", type_name);
       if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (field_type))
-        warning ("type %qs has a user-defined destructor", type_name);
-      warning ("C++ constructors and destructors will not be invoked for Objective-C fields");
+        warning (0, "type %qs has a user-defined destructor", type_name);
+      warning (0, "C++ constructors and destructors will not be invoked for Objective-C fields");
     }
 #endif
 
@@ -6442,7 +6442,7 @@ objc_is_public (tree expr, tree identifier)
                 non-@public ivars.  We will let this slide for now...  */
              if (!objc_method_context)
              {
-               warning ("instance variable %qs is %s; "
+               warning (0, "instance variable %qs is %s; "
                         "this will be a hard error in the future",
                         IDENTIFIER_POINTER (identifier),
                         TREE_PRIVATE (decl) ? "@private" : "@protected");
@@ -6459,7 +6459,7 @@ objc_is_public (tree expr, tree identifier)
       else if (objc_implementation_context && (basetype == objc_object_reference))
        {
          expr = convert (uprivate_record, expr);
-         warning ("static access to object of type %<id%>");
+         warning (0, "static access to object of type %<id%>");
        }
     }
 
@@ -6481,16 +6481,16 @@ check_methods (tree chain, tree list, int mtype)
            {
              if (TREE_CODE (objc_implementation_context)
                  == CLASS_IMPLEMENTATION_TYPE)
-               warning ("incomplete implementation of class %qs",
+               warning (0, "incomplete implementation of class %qs",
                         IDENTIFIER_POINTER (CLASS_NAME (objc_implementation_context)));
              else if (TREE_CODE (objc_implementation_context)
                       == CATEGORY_IMPLEMENTATION_TYPE)
-               warning ("incomplete implementation of category %qs",
+               warning (0, "incomplete implementation of category %qs",
                         IDENTIFIER_POINTER (CLASS_SUPER_NAME (objc_implementation_context)));
              first = 0;
            }
 
-         warning ("method definition for %<%c%s%> not found",
+         warning (0, "method definition for %<%c%s%> not found",
                   mtype, IDENTIFIER_POINTER (METHOD_SEL_NAME (chain)));
        }
 
@@ -6569,17 +6569,17 @@ check_methods_accessible (tree chain, tree context, int mtype)
            {
              if (TREE_CODE (objc_implementation_context)
                  == CLASS_IMPLEMENTATION_TYPE)
-               warning ("incomplete implementation of class %qs",
+               warning (0, "incomplete implementation of class %qs",
                         IDENTIFIER_POINTER
                           (CLASS_NAME (objc_implementation_context)));
              else if (TREE_CODE (objc_implementation_context)
                       == CATEGORY_IMPLEMENTATION_TYPE)
-               warning ("incomplete implementation of category %qs",
+               warning (0, "incomplete implementation of category %qs",
                         IDENTIFIER_POINTER
                           (CLASS_SUPER_NAME (objc_implementation_context)));
              first = 0;
            }
-         warning ("method definition for %<%c%s%> not found",
+         warning (0, "method definition for %<%c%s%> not found",
                   mtype, IDENTIFIER_POINTER (METHOD_SEL_NAME (chain)));
        }
 
@@ -6620,7 +6620,7 @@ check_protocol (tree p, const char *type, const char *name)
        }
 
       if (!f1 || !f2)
-       warning ("%s %qs does not fully implement the %qs protocol",
+       warning (0, "%s %qs does not fully implement the %qs protocol",
                 type, name, IDENTIFIER_POINTER (PROTOCOL_NAME (p)));
     }
 
@@ -6678,7 +6678,7 @@ start_class (enum tree_code code, tree class_name, tree super_name,
 
   if (objc_implementation_context)
     {
-      warning ("%<@end%> missing in implementation context");
+      warning (0, "%<@end%> missing in implementation context");
       finish_class (objc_implementation_context);
       objc_ivar_chain = NULL_TREE;
       objc_implementation_context = NULL_TREE;
@@ -6735,7 +6735,7 @@ start_class (enum tree_code code, tree class_name, tree super_name,
 
       if (!(implementation_template = lookup_interface (class_name)))
         {
-         warning ("cannot find interface declaration for %qs",
+         warning (0, "cannot find interface declaration for %qs",
                   IDENTIFIER_POINTER (class_name));
          add_class (implementation_template = objc_implementation_context);
         }
@@ -6767,7 +6767,7 @@ start_class (enum tree_code code, tree class_name, tree super_name,
 #ifdef OBJCPLUS
        error ("duplicate interface declaration for class %qs",
 #else
-       warning ("duplicate interface declaration for class %qs",
+       warning (0, "duplicate interface declaration for class %qs",
 #endif 
         IDENTIFIER_POINTER (class_name));
       else
@@ -7022,7 +7022,7 @@ start_protocol (enum tree_code code, tree name, tree list)
     }
   else
     {
-      warning ("duplicate declaration for protocol %qs",
+      warning (0, "duplicate declaration for protocol %qs",
               IDENTIFIER_POINTER (name));
     }
   return protocol;
@@ -7552,7 +7552,7 @@ static void
 warn_with_method (const char *message, int mtype, tree method)
 {
   /* Add a readable method name to the warning.  */
-  warning ("%J%s %<%c%s%>", method,
+  warning (0, "%J%s %<%c%s%>", method,
            message, mtype, gen_method_decl (method));
 }
 
@@ -8285,7 +8285,7 @@ finish_objc (void)
   /* A missing @end may not be detected by the parser.  */
   if (objc_implementation_context)
     {
-      warning ("%<@end%> missing in implementation context");
+      warning (0, "%<@end%> missing in implementation context");
       finish_class (objc_implementation_context);
       objc_ivar_chain = NULL_TREE;
       objc_implementation_context = NULL_TREE;
@@ -8567,7 +8567,7 @@ objc_lookup_ivar (tree other, tree id)
   if (TREE_CODE (objc_method_context) == INSTANCE_METHOD_DECL
       && other && other != error_mark_node && !DECL_FILE_SCOPE_P (other))
     {
-      warning ("local declaration of %qs hides instance variable",
+      warning (0, "local declaration of %qs hides instance variable",
               IDENTIFIER_POINTER (id));
 
       return other;
index 10946ff..f1580d5 100644 (file)
@@ -255,7 +255,7 @@ complain_wrong_lang (const char *text, const struct cl_option *option,
   bad_lang = write_langs (lang_mask);
 
   /* Eventually this should become a hard error IMO.  */
-  warning ("command line option \"%s\" is valid for %s but not for %s",
+  warning (0, "command line option \"%s\" is valid for %s but not for %s",
           text, ok_langs, bad_lang);
 
   free (ok_langs);
@@ -660,7 +660,7 @@ decode_options (unsigned int argc, const char **argv)
         this to `2' if -Wall is used, so we can avoid giving out
         lots of errors for people who don't realize what -Wall does.  */
       if (warn_uninitialized == 1)
-       warning ("-Wuninitialized is not supported without -O");
+       warning (0, "-Wuninitialized is not supported without -O");
     }
 
   if (flag_really_no_inline == 2)
@@ -975,7 +975,7 @@ common_handle_option (size_t scode, const char *arg, int value)
       else if (!strcmp (arg, "local-exec"))
        flag_tls_default = TLS_MODEL_LOCAL_EXEC;
       else
-       warning ("unknown tls-model \"%s\"", arg);
+       warning (0, "unknown tls-model \"%s\"", arg);
       break;
 
     case OPT_ftracer:
@@ -1146,7 +1146,7 @@ set_debug_level (enum debug_info_type type, int extended, const char *arg)
            }
 
          if (write_symbols == NO_DEBUG)
-           warning ("target system does not support debug output");
+           warning (0, "target system does not support debug output");
        }
     }
   else
index d210bcf..9d8e2da 100644 (file)
@@ -1212,7 +1212,7 @@ rest_of_handle_branch_target_load_optimize (void)
       && flag_branch_target_load_optimize2
       && !warned)
     {
-      warning ("branch target register load optimization is not intended "
+      warning (0, "branch target register load optimization is not intended "
               "to be run twice");
 
       warned = 1;
index 78951cf..5ed04e0 100644 (file)
@@ -778,7 +778,7 @@ fix_register (const char *name, int fixed, int call_used)
     }
   else
     {
-      warning ("unknown register name: %s", name);
+      warning (0, "unknown register name: %s", name);
     }
 }
 
@@ -792,12 +792,12 @@ globalize_reg (int i)
 
   if (global_regs[i])
     {
-      warning ("register used for two global register variables");
+      warning (0, "register used for two global register variables");
       return;
     }
 
   if (call_used_regs[i] && ! fixed_regs[i])
-    warning ("call-clobbered register used for global register variable");
+    warning (0, "call-clobbered register used for global register variable");
 
   global_regs[i] = 1;
 
index fbe491b..06df026 100644 (file)
@@ -1233,10 +1233,10 @@ reload (rtx first, int global)
 
       if (size > STACK_CHECK_MAX_FRAME_SIZE)
        {
-         warning ("frame size too large for reliable stack checking");
+         warning (0, "frame size too large for reliable stack checking");
          if (! verbose_warned)
            {
-             warning ("try reducing the number of local variables");
+             warning (0, "try reducing the number of local variables");
              verbose_warned = 1;
            }
        }
index 2e29202..9b68595 100644 (file)
@@ -329,7 +329,7 @@ parse_output_constraint (const char **constraint_p, int operand_num,
       size_t c_len = strlen (constraint);
 
       if (p != constraint)
-       warning ("output constraint %qc for operand %d "
+       warning (0, "output constraint %qc for operand %d "
                 "is not at the beginning",
                 *p, operand_num);
 
@@ -553,7 +553,7 @@ parse_input_constraint (const char **constraint_p, int input_num,
       }
 
   if (saw_match && !*allows_reg)
-    warning ("matching constraint does not allow a register");
+    warning (0, "matching constraint does not allow a register");
 
   return true;
 }
@@ -880,7 +880,7 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
          if (allows_reg)
            op = force_reg (TYPE_MODE (type), op);
          else if (!allows_mem)
-           warning ("asm operand %d probably doesn%'t match constraints",
+           warning (0, "asm operand %d probably doesn%'t match constraints",
                     i + noutputs);
          else if (MEM_P (op))
            {
@@ -890,7 +890,7 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
            }
          else
            {
-             warning ("use of memory input without lvalue in "
+             warning (0, "use of memory input without lvalue in "
                       "asm operand %d is deprecated", i + noutputs);
 
              if (CONSTANT_P (op))
@@ -1475,7 +1475,7 @@ warn_if_unused_value (tree exp, location_t locus)
       if (TREE_SIDE_EFFECTS (exp))
        return 0;
 
-      warning ("%Hvalue computed is not used", &locus);
+      warning (0, "%Hvalue computed is not used", &locus);
       return 1;
     }
 }
index 25420e0..b0cc42e 100644 (file)
@@ -451,9 +451,9 @@ layout_decl (tree decl, unsigned int known_align)
          int size_as_int = TREE_INT_CST_LOW (size);
 
          if (compare_tree_int (size, size_as_int) == 0)
-           warning ("%Jsize of %qD is %d bytes", decl, decl, size_as_int);
+           warning (0, "%Jsize of %qD is %d bytes", decl, decl, size_as_int);
          else
-           warning ("%Jsize of %qD is larger than %d bytes",
+           warning (0, "%Jsize of %qD is larger than %d bytes",
                      decl, decl, larger_than_size);
        }
     }
@@ -837,10 +837,10 @@ place_field (record_layout_info rli, tree field)
          if (TYPE_ALIGN (type) > desired_align)
            {
              if (STRICT_ALIGNMENT)
-               warning ("%Jpacked attribute causes inefficient alignment "
+               warning (0, "%Jpacked attribute causes inefficient alignment "
                          "for %qD", field, field);
              else
-               warning ("%Jpacked attribute is unnecessary for %qD",
+               warning (0, "%Jpacked attribute is unnecessary for %qD",
                         field, field);
            }
        }
@@ -856,7 +856,7 @@ place_field (record_layout_info rli, tree field)
         Bump the cumulative size to multiple of field alignment.  */
 
       if (warn_padded)
-       warning ("%Jpadding struct to align %qD", field, field);
+       warning (0, "%Jpadding struct to align %qD", field, field);
 
       /* If the alignment is still within offset_align, just align
         the bit position.  */
@@ -1198,7 +1198,7 @@ finalize_record_size (record_layout_info rli)
 
   if (warn_padded && TREE_CONSTANT (unpadded_size)
       && simple_cst_equal (unpadded_size, TYPE_SIZE (rli->t)) == 0)
-    warning ("padding struct size to alignment boundary");
+    warning (0, "padding struct size to alignment boundary");
 
   if (warn_packed && TREE_CODE (rli->t) == RECORD_TYPE
       && TYPE_PACKED (rli->t) && ! rli->packed_maybe_necessary
@@ -1228,17 +1228,17 @@ finalize_record_size (record_layout_info rli)
                name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (rli->t)));
 
              if (STRICT_ALIGNMENT)
-               warning ("packed attribute causes inefficient "
+               warning (0, "packed attribute causes inefficient "
                         "alignment for %qs", name);
              else
-               warning ("packed attribute is unnecessary for %qs", name);
+               warning (0, "packed attribute is unnecessary for %qs", name);
            }
          else
            {
              if (STRICT_ALIGNMENT)
-               warning ("packed attribute causes inefficient alignment");
+               warning (0, "packed attribute causes inefficient alignment");
              else
-               warning ("packed attribute is unnecessary");
+               warning (0, "packed attribute is unnecessary");
            }
        }
     }
index 8cfd740..19411e1 100644 (file)
@@ -851,7 +851,7 @@ check_global_declarations (tree *vec, int len)
          if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)))
            pedwarn ("%J%qF used but never defined", decl, decl);
          else
-           warning ("%J%qF declared %<static%> but never defined",
+           warning (0, "%J%qF declared %<static%> but never defined",
                     decl, decl);
          /* This symbol is effectively an "extern" declaration now.  */
          TREE_PUBLIC (decl) = 1;
@@ -877,7 +877,7 @@ check_global_declarations (tree *vec, int len)
          && ! (TREE_CODE (decl) == VAR_DECL && DECL_REGISTER (decl))
          /* Otherwise, ask the language.  */
          && lang_hooks.decls.warn_unused_global (decl))
-       warning ("%J%qD defined but not used", decl, decl);
+       warning (0, "%J%qD defined but not used", decl, decl);
 
       /* Avoid confusing the debug information machinery when there are
         errors.  */
@@ -900,7 +900,7 @@ warn_deprecated_use (tree node)
   if (DECL_P (node))
     {
       expanded_location xloc = expand_location (DECL_SOURCE_LOCATION (node));
-      warning ("%qs is deprecated (declared at %s:%d)",
+      warning (0, "%qs is deprecated (declared at %s:%d)",
               IDENTIFIER_POINTER (DECL_NAME (node)),
               xloc.file, xloc.line);
     }
@@ -923,18 +923,18 @@ warn_deprecated_use (tree node)
          expanded_location xloc
            = expand_location (DECL_SOURCE_LOCATION (decl));
          if (what)
-           warning ("%qs is deprecated (declared at %s:%d)", what,
+           warning (0, "%qs is deprecated (declared at %s:%d)", what,
                       xloc.file, xloc.line);
          else
-           warning ("type is deprecated (declared at %s:%d)",
+           warning (0, "type is deprecated (declared at %s:%d)",
                     xloc.file, xloc.line);
        }
       else
        {
          if (what)
-           warning ("%qs is deprecated", what);
+           warning (0, "%qs is deprecated", what);
          else
-           warning ("type is deprecated");
+           warning (0, "type is deprecated");
        }
     }
 }
@@ -1187,7 +1187,7 @@ decode_d_option (const char *arg)
       case 'a':
       default:
        if (!enable_rtl_dump_file (c))
-         warning ("unrecognized gcc debugging option: %c", c);
+         warning (0, "unrecognized gcc debugging option: %c", c);
        break;
       }
 }
@@ -1768,11 +1768,11 @@ process_options (void)
   /* Warn about options that are not supported on this machine.  */
 #ifndef INSN_SCHEDULING
   if (flag_schedule_insns || flag_schedule_insns_after_reload)
-    warning ("instruction scheduling not supported on this target machine");
+    warning (0, "instruction scheduling not supported on this target machine");
 #endif
 #ifndef DELAY_SLOTS
   if (flag_delayed_branch)
-    warning ("this target machine does not have delayed branches");
+    warning (0, "this target machine does not have delayed branches");
 #endif
 
   user_label_prefix = USER_LABEL_PREFIX;
@@ -1786,7 +1786,7 @@ process_options (void)
          user_label_prefix = flag_leading_underscore ? "_" : "";
        }
       else
-       warning ("-f%sleading-underscore not supported on this target machine",
+       warning (0, "-f%sleading-underscore not supported on this target machine",
                 flag_leading_underscore ? "" : "no-");
     }
 
@@ -1872,10 +1872,10 @@ process_options (void)
       if (flag_var_tracking == 1)
         {
          if (debug_info_level < DINFO_LEVEL_NORMAL)
-           warning ("variable tracking requested, but useless unless "
+           warning (0, "variable tracking requested, but useless unless "
                     "producing debug info");
          else
-           warning ("variable tracking requested, but not supported "
+           warning (0, "variable tracking requested, but not supported "
                     "by this debug format");
        }
       flag_var_tracking = 0;
@@ -1902,44 +1902,44 @@ process_options (void)
     {
       if (flag_function_sections)
        {
-         warning ("-ffunction-sections not supported for this target");
+         warning (0, "-ffunction-sections not supported for this target");
          flag_function_sections = 0;
        }
       if (flag_data_sections)
        {
-         warning ("-fdata-sections not supported for this target");
+         warning (0, "-fdata-sections not supported for this target");
          flag_data_sections = 0;
        }
     }
 
   if (flag_function_sections && profile_flag)
     {
-      warning ("-ffunction-sections disabled; it makes profiling impossible");
+      warning (0, "-ffunction-sections disabled; it makes profiling impossible");
       flag_function_sections = 0;
     }
 
 #ifndef HAVE_prefetch
   if (flag_prefetch_loop_arrays)
     {
-      warning ("-fprefetch-loop-arrays not supported for this target");
+      warning (0, "-fprefetch-loop-arrays not supported for this target");
       flag_prefetch_loop_arrays = 0;
     }
   if (flag_speculative_prefetching)
     {
       if (flag_speculative_prefetching_set)
-       warning ("-fspeculative-prefetching not supported for this target");
+       warning (0, "-fspeculative-prefetching not supported for this target");
       flag_speculative_prefetching = 0;
     }
 #else
   if (flag_prefetch_loop_arrays && !HAVE_prefetch)
     {
-      warning ("-fprefetch-loop-arrays not supported for this target (try -march switches)");
+      warning (0, "-fprefetch-loop-arrays not supported for this target (try -march switches)");
       flag_prefetch_loop_arrays = 0;
     }
   if (flag_speculative_prefetching && !HAVE_prefetch)
     {
       if (flag_speculative_prefetching_set)
-       warning ("-fspeculative-prefetching not supported for this target (try -march switches)");
+       warning (0, "-fspeculative-prefetching not supported for this target (try -march switches)");
       flag_speculative_prefetching = 0;
     }
 #endif
@@ -1948,13 +1948,13 @@ process_options (void)
      make much sense anyway, so don't allow it.  */
   if (flag_prefetch_loop_arrays && optimize_size)
     {
-      warning ("-fprefetch-loop-arrays is not supported with -Os");
+      warning (0, "-fprefetch-loop-arrays is not supported with -Os");
       flag_prefetch_loop_arrays = 0;
     }
 
 #ifndef OBJECT_FORMAT_ELF
   if (flag_function_sections && write_symbols != NO_DEBUG)
-    warning ("-ffunction-sections may affect debugging on some targets");
+    warning (0, "-ffunction-sections may affect debugging on some targets");
 #endif
 
   /* The presence of IEEE signaling NaNs, implies all math can trap.  */
index a1a388b..cf11d29 100644 (file)
@@ -65,7 +65,8 @@ extern void _fatal_insn (const char *, rtx, const char *, int, const char *)
 #endif
 extern void internal_error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2)
      ATTRIBUTE_NORETURN;
-extern void warning (const char *, ...) ATTRIBUTE_GCC_FE_DIAG(1,2);
+extern void warning0 (const char *, ...) ATTRIBUTE_GCC_FE_DIAG(1,2);
+extern void warning (int, const char *, ...) ATTRIBUTE_GCC_FE_DIAG(2,3);
 extern void error (const char *, ...) ATTRIBUTE_GCC_FE_DIAG(1,2);
 extern void fatal_error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2)
      ATTRIBUTE_NORETURN;
index bf4d934..d3c71ab 100644 (file)
@@ -1384,7 +1384,7 @@ remove_useless_stmts_warn_notreached (tree stmt)
       location_t loc = EXPR_LOCATION (stmt);
       if (LOCATION_LINE (loc) > 0)
        {
-         warning ("%Hwill never be executed", &loc);
+         warning (0, "%Hwill never be executed", &loc);
          return true;
        }
     }
@@ -2000,10 +2000,10 @@ remove_bb (basic_block bb)
      in the block.  */
 #ifdef USE_MAPPED_LOCATION
   if (warn_notreached && loc > BUILTINS_LOCATION)
-    warning ("%Hwill never be executed", &loc);
+    warning (0, "%Hwill never be executed", &loc);
 #else
   if (warn_notreached && loc)
-    warning ("%Hwill never be executed", loc);
+    warning (0, "%Hwill never be executed", loc);
 #endif
 
   remove_phi_nodes_and_edges_for_unreachable_block (bb);
@@ -5599,7 +5599,7 @@ execute_warn_function_return (void)
       && !TREE_THIS_VOLATILE (cfun->decl)
       && EDGE_COUNT (EXIT_BLOCK_PTR->preds) == 0
       && !lang_hooks.function.missing_noreturn_ok_p (cfun->decl))
-    warning ("%Jfunction might be possible candidate for "
+    warning (0, "%Jfunction might be possible candidate for "
             "attribute %<noreturn%>",
             cfun->decl);
 
@@ -5626,11 +5626,11 @@ execute_warn_function_return (void)
 #ifdef USE_MAPPED_LOCATION
       if (location == UNKNOWN_LOCATION)
        location = cfun->function_end_locus;
-      warning ("%H%<noreturn%> function does return", &location);
+      warning (0, "%H%<noreturn%> function does return", &location);
 #else
       if (!locus)
        locus = &cfun->function_end_locus;
-      warning ("%H%<noreturn%> function does return", locus);
+      warning (0, "%H%<noreturn%> function does return", locus);
 #endif
     }
 
@@ -5651,12 +5651,12 @@ execute_warn_function_return (void)
              location = EXPR_LOCATION (last);
              if (location == UNKNOWN_LOCATION)
                  location = cfun->function_end_locus;
-             warning ("%Hcontrol reaches end of non-void function", &location);
+             warning (0, "%Hcontrol reaches end of non-void function", &location);
 #else
              locus = EXPR_LOCUS (last);
              if (!locus)
                locus = &cfun->function_end_locus;
-             warning ("%Hcontrol reaches end of non-void function", locus);
+             warning (0, "%Hcontrol reaches end of non-void function", locus);
 #endif
              TREE_NO_WARNING (cfun->decl) = 1;
              break;
index d81c4b8..451fe2b 100644 (file)
@@ -964,7 +964,7 @@ dump_switch_p_1 (const char *arg, struct dump_file_info *dfi, bool doglob)
            flags |= option_ptr->value;
            goto found;
          }
-      warning ("ignoring unknown option %q.*s in %<-fdump-%s%>",
+      warning (0, "ignoring unknown option %q.*s in %<-fdump-%s%>",
               length, ptr, dfi->swtch);
     found:;
       ptr = end_ptr;
index c5634fd..696e7b4 100644 (file)
@@ -1163,7 +1163,7 @@ inlinable_function_p (tree fn)
       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)))
        sorry (inline_forbidden_reason, fn, fn);
       else if (do_warning)
-       warning (inline_forbidden_reason, fn, fn);
+       warning (0, inline_forbidden_reason, fn, fn);
 
       inlinable = false;
     }
@@ -1571,8 +1571,8 @@ expand_call_inline (tree *tp, int *walk_subtrees, void *data)
               && strlen (reason)
               && !lookup_attribute ("noinline", DECL_ATTRIBUTES (fn)))
        {
-         warning ("%Jinlining failed in call to %qF: %s", fn, fn, reason);
-         warning ("called from here");
+         warning (0, "%Jinlining failed in call to %qF: %s", fn, fn, reason);
+         warning (0, "called from here");
        }
       goto egress;
     }
@@ -1686,7 +1686,7 @@ expand_call_inline (tree *tp, int *walk_subtrees, void *data)
        && return_slot_addr == NULL_TREE
        && block_may_fallthru (copy))
       {
-       warning ("control may reach end of non-void function %qD being inlined",
+       warning (0, "control may reach end of non-void function %qD being inlined",
                 fn);
        TREE_NO_WARNING (fn) = 1;
       }
index b1efae8..b28a427 100644 (file)
@@ -839,7 +839,7 @@ mf_xform_derefs_1 (block_stmt_iterator *iter, tree *tp,
       break;
 
     case ARRAY_RANGE_REF:
-      warning ("mudflap checking not yet implemented for ARRAY_RANGE_REF");
+      warning (0, "mudflap checking not yet implemented for ARRAY_RANGE_REF");
       return;
 
     case BIT_FIELD_REF:
@@ -1030,7 +1030,7 @@ mx_register_decls (tree decl, tree *stmt_list)
 
           /* Add the __mf_register call at the current appending point.  */
           if (tsi_end_p (initially_stmts))
-           warning ("mudflap cannot track %qs in stub function",
+           warning (0, "mudflap cannot track %qs in stub function",
                     IDENTIFIER_POINTER (DECL_NAME (decl)));
          else
            {
@@ -1261,7 +1261,7 @@ mudflap_finish_file (void)
 
           if (! COMPLETE_TYPE_P (TREE_TYPE (obj)))
             {
-              warning ("mudflap cannot track unknown size extern %qs",
+              warning (0, "mudflap cannot track unknown size extern %qs",
                        IDENTIFIER_POINTER (DECL_NAME (obj)));
               continue;
             }
index b0b6b34..40020ac 100644 (file)
@@ -774,10 +774,10 @@ tree_rest_of_compilation (tree fndecl)
            = TREE_INT_CST_LOW (TYPE_SIZE_UNIT (ret_type));
 
          if (compare_tree_int (TYPE_SIZE_UNIT (ret_type), size_as_int) == 0)
-           warning ("%Jsize of return value of %qD is %u bytes",
+           warning (0, "%Jsize of return value of %qD is %u bytes",
                      fndecl, fndecl, size_as_int);
          else
-           warning ("%Jsize of return value of %qD is larger than %wd bytes",
+           warning (0, "%Jsize of return value of %qD is larger than %wd bytes",
                      fndecl, fndecl, larger_than_size);
        }
     }
index 125e6c8..822a757 100644 (file)
@@ -1102,7 +1102,7 @@ warn_uninit (tree t, const char *msgid, void *data)
   locus = (context != NULL && EXPR_HAS_LOCATION (context)
           ? EXPR_LOCUS (context)
           : &DECL_SOURCE_LOCATION (var));
-  warning (msgid, locus, var);
+  warning (0, msgid, locus, var);
   TREE_NO_WARNING (var) = 1;
 }
    
index a718bde..71ba456 100644 (file)
@@ -3275,7 +3275,7 @@ handle_dll_attribute (tree * pnode, tree name, tree args, int flags,
        }
       if (TREE_CODE (node) != RECORD_TYPE && TREE_CODE (node) != UNION_TYPE)
        {
-         warning ("%qs attribute ignored", IDENTIFIER_POINTER (name));
+         warning (0, "%qs attribute ignored", IDENTIFIER_POINTER (name));
          *no_add_attrs = true;
        }
 
index 8865f35..17dc156 100644 (file)
@@ -1,3 +1,7 @@
+2005-04-23  DJ Delorie  <dj@redhat.com>
+
+       * parse.y: Adjust warning() callers.
+
 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
 
        * lang.opt: Refer to the GCC internals documentation instead of c.opt.
index be44362..3509095 100644 (file)
@@ -525,7 +525,7 @@ tl_RETURN expression_opt {
       tree_code_generate_return (type_prod->tp.pro.code, NULL);
     else
       {
-       warning ("%HRedundant expression in return.",
+       warning (0, "%HRedundant expression in return.",
                 &ret_tok->tp.tok.location, ret_tok->tp.tok.length,
                 ret_tok->tp.tok.chars);
         tree_code_generate_return (type_prod->tp.pro.code, NULL);
index 35052a5..86d386e 100644 (file)
@@ -943,7 +943,7 @@ make_decl_rtl (tree decl)
              error ("global register variable has initial value");
            }
          if (TREE_THIS_VOLATILE (decl))
-           warning ("volatile register variables don%'t "
+           warning (0, "volatile register variables don%'t "
                     "work as you might wish");
 
          /* If the user specified one of the eliminables registers here,
@@ -1675,7 +1675,7 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED,
      In particular, a.out format supports a maximum alignment of 4.  */
   if (align > MAX_OFILE_ALIGNMENT)
     {
-      warning ("%Jalignment of %qD is greater than maximum object "
+      warning (0, "%Jalignment of %qD is greater than maximum object "
                "file alignment.  Using %d", decl, decl,
               MAX_OFILE_ALIGNMENT/BITS_PER_UNIT);
       align = MAX_OFILE_ALIGNMENT;
@@ -1739,7 +1739,7 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED,
 
 #if !defined(ASM_OUTPUT_ALIGNED_COMMON) && !defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) && !defined(ASM_OUTPUT_ALIGNED_BSS)
       if ((unsigned HOST_WIDE_INT) DECL_ALIGN_UNIT (decl) > rounded)
-       warning ("%Jrequested alignment for %qD is greater than "
+       warning (0, "%Jrequested alignment for %qD is greater than "
                  "implemented alignment of %d", decl, decl, rounded);
 #endif
 
@@ -4305,7 +4305,7 @@ merge_weak (tree newdecl, tree olddecl)
         a weak symbol.  */
       else if (TREE_USED (olddecl)
               && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (olddecl)))
-       warning ("%Jweak declaration of %qD after first use results "
+       warning (0, "%Jweak declaration of %qD after first use results "
                  "in unspecified behavior", newdecl, newdecl);
 
       if (SUPPORTS_WEAK)
@@ -4348,7 +4348,7 @@ declare_weak (tree decl)
        weak_decls = tree_cons (NULL, decl, weak_decls);
     }
   else
-    warning ("%Jweak declaration of %qD not supported", decl, decl);
+    warning (0, "%Jweak declaration of %qD not supported", decl, decl);
 
   mark_weak (decl);
 }
@@ -4377,7 +4377,7 @@ weak_finish (void)
       ASM_WEAKEN_LABEL (asm_out_file, name);
 #else
 #ifdef ASM_OUTPUT_WEAK_ALIAS
-      warning ("only weak aliases are supported in this configuration");
+      warning (0, "only weak aliases are supported in this configuration");
       return;
 #endif
 #endif
@@ -4639,7 +4639,7 @@ default_assemble_visibility (tree decl, int vis)
   assemble_name (asm_out_file, name);
   fprintf (asm_out_file, "\n");
 #else
-  warning ("visibility attribute not supported in this configuration; ignored");
+  warning (0, "visibility attribute not supported in this configuration; ignored");
 #endif
 }