Various fixes for -Wall problems from Kaveh. See ChangeLog for details.
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Mon, 2 Feb 1998 00:04:13 +0000 (00:04 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 2 Feb 1998 00:04:13 +0000 (17:04 -0700)
From-SVN: r17586

22 files changed:
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/error.c
gcc/cp/except.c
gcc/cp/friend.c
gcc/cp/init.c
gcc/cp/lex.c
gcc/cp/method.c
gcc/cp/parse.c
gcc/cp/parse.y
gcc/cp/pt.c
gcc/cp/repo.c
gcc/cp/search.c
gcc/cp/sig.c
gcc/cp/tree.c
gcc/cp/typeck.c
gcc/cp/typeck2.c
gcc/cp/xref.c

index 4bd271f71342dc8ca3cb88e5e36f661623d1c1a0..4d6476adacfbbb5e1a2e5f54a3af153eea943091 100644 (file)
@@ -1,3 +1,127 @@
+Mon Feb  2 00:57:38 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * call.c (user_harshness): Initialize `code' to 0.
+       (build_method_call): Initialize `candidates', `cp' and `len' to 0.
+       (null_ptr_cst_p): Add parentheses around && within ||.
+       (standard_conversion): Likewise.
+       (z_candidate): Likewise.
+       (build_user_type_conversion_1): Initialize `args' to NULL_TREE.
+       (build_object_call): Likewise for `mem_args'.
+       (build_new_op): Likewise for `mem_arglist'.  Add `return' from
+       default case in enumeration switch.
+
+       * class.c (build_vtable_entry): Add explicit braces to avoid
+       ambiguous `else'.
+       (build_class_init_list): Likewise.
+       (finish_struct_1): Initialize `width' to 0.
+       (instantiate_type): Initialize `name' to NULL_TREE.  Add
+       explicit braces to avoid ambiguous `else'.
+
+       * cvt.c (convert_to_aggr): Add explicit braces to avoid ambiguous
+       `else'.
+
+       * decl.c (grok_reference_init): Eliminate unused parameter, all
+       callers changed.
+       (record_builtin_type): Initialize `tdecl' to NULL_TREE.
+       (init_decl_processing): Initialize `vb_off_identifier' to NULL_TREE.
+       (cp_finish_decl): Initialize `ttype' to NULL_TREE.
+       (grokdeclarator): Add parentheses around && within ||.  Add
+       explicit braces to avoid ambiguous `else'.
+       (grokparms): Initialize `type' to NULL_TREE.
+       (xref_tag): Remove unused label `just_return'.
+       (finish_enum): Initialize `minnode' and `maxnode' to NULL_TREE.
+       (finish_function): Initialize `cond' and `thenclause' to NULL_TREE.
+       (hack_incomplete_structures): Add parentheses around assignment
+       used as truth value.
+
+       * decl2.c (coerce_delete_type): Hide definition of `e3'.
+
+       * error.c: Include <stdlib.h>.
+       (dump_expr): Change the type of `i' to size_t.  Remove unused
+       label `error'. 
+
+       * except.c (init_exception_processing): Remove unused variable `d'.
+       (expand_throw): Likewise for `label'.
+
+       * friend.c (add_friends): Add explicit braces to avoid ambiguous
+       `else'.
+
+       * init.c (sort_member_init): Initialize `last_field' to NULL_TREE.
+       (sort_base_init): Likewise for `binfo'.
+       (expand_member_init): Likewise for `rval'.
+       (build_member_call): Add parentheses around assignment used as
+       truth value.
+       (build_offset_ref): Add explicit braces to avoid ambiguous `else'.
+       (build_new): Initialize `nelts' to NULL_TREE.  Initialize
+       `old_immediate_size_expand' to 0.
+       (build_new_1): Initialize `nelts' and `alloc_node' to NULL_TREE.
+       (build_vec_delete_1): Remove unused variable `block'.
+       (expand_vec_init): Initialize `itype' to NULL_TREE.
+
+       * lex.c: Include <strings.h> if we don't have <string.h>.  Protect
+       declaration of `index' and `rindex' with autoconf macros.
+       (reinit_parse_for_expr): Remove unused variables
+       `look_for_semicolon' and `look_for_lbrac'.
+       (cons_up_default_function): Initialize `args' to NULL_TREE.
+       (readescape): Initialize `firstdig' to 0.
+       (real_yylex): Add parentheses around assignment used as truth value. 
+
+       * method.c: Include <strings.h> if we don't have <string.h>.
+       Protect declaration of `index' with autoconf macro.
+
+       * parse.y (primary): Add explicit braces to avoid ambiguous `else'.
+       Initialize `type' to NULL_TREE.
+       (structsp): Remove unused variable `id'.
+
+       * pt.c (coerce_template_parms): Add explicit braces to avoid
+       ambiguous `else'.
+       (lookup_template_class): Initialize `template' to NULL_TREE.
+       (instantiate_class_template): Remove unused variable `name' and `e'.
+       (tsubst): Likewise for `i'.  Initialize `last' to NULL_TREE.
+       (do_poplevel): Initialize `saved_warn_unused' to 0.
+       (type_unification): Remove unused varable `parm'.
+       (unify): Likewise for `j'.
+
+       * repo.c (init_repo): Add parentheses around assignment used as
+       truth value.
+       (finish_repo): Remove unused varable `p'.
+       
+       * search.c (get_binfo): Initiize `type' to NULL_TREE.
+       (get_base_distance): Likewise.
+       (lookup_field): Initialize `rval_binfo_h', `type', `basetype_path'
+       and `new_v' to NULL_TREE.
+       (lookup_fnfields): Likewise for `rval_binfo_h'.
+       (breadth_first_search): Add parentheses around assignment used as
+       truth value.
+       (get_template_base): Initialize `type' to NULL_TREE.
+
+       * sig.c (append_signature_fields): Initialize `last_mfptr' to
+       NULL_TREE.
+       (build_signature_table_constructor): Likewise for
+       `last_rhs_field', `pfn' and `vt_off'.
+       (build_sigtable): Likewise for `init'.
+
+       * tree.c (break_out_calls): Initialize `t2' to NULL_TREE.
+       (propagate_binfo_offsets): Likewise for `delta'.
+       (hash_tree_cons): Initialize hashcode to 0.
+       (can_free): Likewise for `size'.
+       (cp_tree_equal): Add explicit braces to avoid ambiguous `else'.
+       
+       * typeck.c (convert_sequence): Hide prototype.
+       (common_type): Add explicit braces to avoid ambiguous `else'.
+       (comp_target_types): Likewise.
+       (build_x_function_call): Initialize `ctypeptr' to NULL_TREE.
+       (build_function_call_real): Add explicit braces to avoid ambiguous
+       `else'.
+       (convert_arguments): Initialize `called_thing' to 0.
+       (convert_for_initialization): Initialize `savew' and `savee' to 0.
+
+       * typeck2.c (incomplete_type_error): Initialize `errmsg' to 0.
+       (digest_init): Initialize `old_tail_contents' to NULL_TREE.
+       (build_x_arrow): Likewise for `last_rval'.
+
+       * xref.c (GNU_xref_decl): Initialize `cls' to 0.
+
 Sun Feb  1 12:45:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * decl.c (init_decl_processing): Use set_sizetype.
index c841dca8879275bb7043b196d398f1c5cea2c60c..d97f86167d51e82956025970ed26cab7302e4c49 100644 (file)
@@ -692,7 +692,7 @@ user_harshness (type, parmtype)
 {
   tree conv;
   tree winner = NULL_TREE;
-  int code;
+  int code = 0;
 
   {
     tree typename = build_typename_overload (type);
@@ -2195,9 +2195,9 @@ build_method_call (instance, name, parms, basetype_path, flags)
 
   for (pass = 0; pass < 2; pass++)
     {
-      struct candidate *candidates;
-      struct candidate *cp;
-      int len;
+      struct candidate *candidates = 0;
+      struct candidate *cp = 0;
+      int len = 0;
       unsigned best = 1;
 
       baselink = result;
@@ -3000,7 +3000,7 @@ null_ptr_cst_p (t)
      tree t;
 {
   if (t == null_node
-      || integer_zerop (t) && TREE_CODE (TREE_TYPE (t)) == INTEGER_TYPE)
+      || (integer_zerop (t) && TREE_CODE (TREE_TYPE (t)) == INTEGER_TYPE))
     return 1;
   return 0;
 }
@@ -3192,8 +3192,8 @@ standard_conversion (to, from, expr)
        return 0;
 
       conv = build_conv (STD_CONV, to, conv);
-      if (fcode == POINTER_TYPE || TYPE_PTRMEMFUNC_P (from)
-         && ICS_STD_RANK (conv) < PBOOL_RANK)
+      if (fcode == POINTER_TYPE
+         || (TYPE_PTRMEMFUNC_P (from) && ICS_STD_RANK (conv) < PBOOL_RANK))
        ICS_STD_RANK (conv) = PBOOL_RANK;
     }
   /* We don't check for ENUMERAL_TYPE here because there are no standard
@@ -3768,8 +3768,8 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
 
     case EQ_EXPR:
     case NE_EXPR:
-      if (TYPE_PTRMEMFUNC_P (type1) && TYPE_PTRMEMFUNC_P (type2)
-         || TYPE_PTRMEM_P (type1) && TYPE_PTRMEM_P (type2))
+      if ((TYPE_PTRMEMFUNC_P (type1) && TYPE_PTRMEMFUNC_P (type2))
+         || (TYPE_PTRMEM_P (type1) && TYPE_PTRMEM_P (type2)))
        break;
       if ((TYPE_PTRMEMFUNC_P (type1) || TYPE_PTRMEM_P (type1))
          && null_ptr_cst_p (args[1]))
@@ -3789,8 +3789,8 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
     case GE_EXPR:
     case MAX_EXPR:
     case MIN_EXPR:
-      if (ARITHMETIC_TYPE_P (type1) && ARITHMETIC_TYPE_P (type2)
-         || TYPE_PTR_P (type1) && TYPE_PTR_P (type2))
+      if ((ARITHMETIC_TYPE_P (type1) && ARITHMETIC_TYPE_P (type2))
+         || (TYPE_PTR_P (type1) && TYPE_PTR_P (type2)))
        break;
       if (TYPE_PTR_P (type1) && null_ptr_cst_p (args[1]))
        {
@@ -4322,7 +4322,7 @@ build_user_type_conversion_1 (totype, expr, flags)
   struct z_candidate *candidates, *cand;
   tree fromtype = TREE_TYPE (expr);
   tree ctors = NULL_TREE, convs = NULL_TREE, *p;
-  tree args;
+  tree args = NULL_TREE;
   tree templates = NULL_TREE;
 
   if (IS_AGGR_TYPE (totype))
@@ -4597,7 +4597,7 @@ build_object_call (obj, args)
      tree obj, args;
 {
   struct z_candidate *candidates = 0, *cand;
-  tree fns, convs, mem_args;
+  tree fns, convs, mem_args = NULL_TREE;
   tree type = TREE_TYPE (obj);
   tree templates = NULL_TREE;
 
@@ -4725,7 +4725,7 @@ build_new_op (code, flags, arg1, arg2, arg3)
      tree arg1, arg2, arg3;
 {
   struct z_candidate *candidates = 0, *cand;
-  tree fns, mem_arglist, arglist, fnname;
+  tree fns, mem_arglist = NULL_TREE, arglist, fnname;
   enum tree_code code2 = NOP_EXPR;
   tree templates = NULL_TREE;
   tree conv;
@@ -5117,6 +5117,7 @@ builtin:
 
     default:
       my_friendly_abort (367);
+      return NULL_TREE;
     }
 }
 
@@ -5665,7 +5666,7 @@ build_new_method_call (instance, name, args, basetype_path, flags)
 {
   struct z_candidate *candidates = 0, *cand;
   tree explicit_targs = NULL_TREE;
-  tree basetype, mem_args, fns, instance_ptr;
+  tree basetype, mem_args = NULL_TREE, fns, instance_ptr;
   tree pretty_name;
   tree user_args = args;
   tree templates = NULL_TREE;
index c1afde4d9cc608a780f4a3941744d4f3aec1ecb7..e8d9ab19a4f64165c410a305801695cc8aea7372 100644 (file)
@@ -458,11 +458,13 @@ build_vtable_entry (delta, pfn)
           < TREE_INT_CST_LOW (delta))
          || (TREE_INT_CST_LOW (delta)
              < TREE_INT_CST_LOW (TYPE_MIN_VALUE (delta_type_node))))
-       if (flag_huge_objects)
-         sorry ("object size exceeds built-in limit for virtual function table implementation");
-       else
-         sorry ("object size exceeds normal limit for virtual function table implementation, recompile all source and use -fhuge-objects");
-
+       {
+         if (flag_huge_objects)
+           sorry ("object size exceeds built-in limit for virtual function table implementation");
+         else
+           sorry ("object size exceeds normal limit for virtual function table implementation, recompile all source and use -fhuge-objects");
+       }
+      
       TREE_CONSTANT (entry) = 1;
       TREE_STATIC (entry) = 1;
       TREE_READONLY (entry) = 1;
@@ -1493,10 +1495,13 @@ build_class_init_list (type)
     }
 
   if (base_init_list)
-    if (member_init_list)
-      CLASSTYPE_BASE_INIT_LIST (type) = build_tree_list (base_init_list, member_init_list);
-    else
-      CLASSTYPE_BASE_INIT_LIST (type) = base_init_list;
+    {
+      if (member_init_list)
+       CLASSTYPE_BASE_INIT_LIST (type) =
+         build_tree_list (base_init_list, member_init_list);
+      else
+       CLASSTYPE_BASE_INIT_LIST (type) = base_init_list;
+    }
   else if (member_init_list)
     CLASSTYPE_BASE_INIT_LIST (type) = member_init_list;
 }
@@ -3461,7 +3466,7 @@ finish_struct_1 (t, warn_anon)
          if (DECL_INITIAL (x))
            {
              tree w = DECL_INITIAL (x);
-             register int width;
+             register int width = 0;
 
              /* Avoid the non_lvalue wrapper added by fold for PLUS_EXPRs.  */
              STRIP_NOPS (w);
@@ -5102,7 +5107,7 @@ instantiate_type (lhstype, rhs, complain)
 
     case TREE_LIST:
       {
-       tree elem, baselink, name;
+       tree elem, baselink, name = NULL_TREE;
        int globals = overloaded_globals_p (rhs);
 
        /* First look for an exact match.  Search either overloaded
@@ -5113,15 +5118,17 @@ instantiate_type (lhstype, rhs, complain)
          lhstype = TYPE_PTRMEMFUNC_FN_TYPE (lhstype);
 
        if (TREE_CODE (lhstype) == POINTER_TYPE)
-         if (TREE_CODE (TREE_TYPE (lhstype)) == FUNCTION_TYPE
-             || TREE_CODE (TREE_TYPE (lhstype)) == METHOD_TYPE)
-           lhstype = TREE_TYPE (lhstype);
-         else
-           {
-             if (complain)
-               error ("invalid type combination for overload");
-             return error_mark_node;
-           }
+         {
+           if (TREE_CODE (TREE_TYPE (lhstype)) == FUNCTION_TYPE
+               || TREE_CODE (TREE_TYPE (lhstype)) == METHOD_TYPE)
+             lhstype = TREE_TYPE (lhstype);
+           else
+             {
+               if (complain)
+                 error ("invalid type combination for overload");
+               return error_mark_node;
+             }
+         }
 
        if (TREE_CODE (lhstype) != FUNCTION_TYPE && globals > 0)
          {
@@ -5138,13 +5145,15 @@ instantiate_type (lhstype, rhs, complain)
               can match.  */
            if (explicit_targs == NULL_TREE)
              while (elem)
-               if (! comptypes (lhstype, TREE_TYPE (elem), 1))
-                 elem = DECL_CHAIN (elem);
-               else
-                 {
-                   mark_used (elem);
-                   return elem;
-                 }
+               {
+                 if (! comptypes (lhstype, TREE_TYPE (elem), 1))
+                   elem = DECL_CHAIN (elem);
+                 else
+                   {
+                     mark_used (elem);
+                     return elem;
+                   }
+               }
 
            /* No exact match found, look for a compatible template.  */
            {
index fe3c794d70a81b142666529f869fcd0d2479b8ab..c5a5f938943a60f20945cee1ed0b31758a243cca 100644 (file)
@@ -818,10 +818,12 @@ convert_to_aggr (type, expr, msgp, protect)
     else if (msgp)
       {
        if (saw_private)
-         if (saw_protected)
-           *msgp = "only private and protected conversions apply";
-         else
-           *msgp = "only private conversions apply";
+         {
+           if (saw_protected)
+             *msgp = "only private and protected conversions apply";
+           else
+             *msgp = "only private conversions apply";
+         }
        else if (saw_protected)
          *msgp = "only protected conversions apply";
        else
index c939b42d965dd7161877d4cff97e35e31beb28fc..27e4b31c08b79f030c392fe0e98b6e46f909aa25 100644 (file)
@@ -164,7 +164,7 @@ static tree obscure_complex_init PROTO((tree, tree));
 static tree maybe_build_cleanup_1 PROTO((tree, tree));
 static tree lookup_name_real PROTO((tree, int, int));
 static void warn_extern_redeclared_static PROTO((tree, tree));
-static void grok_reference_init PROTO((tree, tree, tree, tree *));
+static void grok_reference_init PROTO((tree, tree, tree));
 static tree grokfndecl PROTO((tree, tree, tree, tree, int,
                              enum overload_flags,
                              tree, tree, tree, int, int, int, int, int, int));
@@ -4798,7 +4798,7 @@ record_builtin_type (rid_index, name, type)
      tree type;
 {
   tree rname = NULL_TREE, tname = NULL_TREE;
-  tree tdecl;
+  tree tdecl = NULL_TREE;
 
   if ((int) rid_index < (int) RID_MAX)
     rname = ridpointers[(int) rid_index];
@@ -4870,7 +4870,7 @@ init_decl_processing ()
   tree temp;
   tree array_domain_type;
   extern int flag_strict_prototype;
-  tree vb_off_identifier;
+  tree vb_off_identifier = NULL_TREE;
   /* Function type `char *(char *, char *)' and similar ones */
   tree string_ftype_ptr_ptr, int_ftype_string_string;
   tree sizetype_endlink;
@@ -6299,9 +6299,8 @@ start_decl_1 (decl)
    Quotes on semantics can be found in ARM 8.4.3.  */
 
 static void
-grok_reference_init (decl, type, init, cleanupp)
+grok_reference_init (decl, type, init)
      tree decl, type, init;
-     tree *cleanupp;
 {
   tree tmp;
 
@@ -6442,7 +6441,7 @@ cp_finish_decl (decl, init, asmspec_tree, need_pop, flags)
      int flags;
 {
   register tree type;
-  tree cleanup = NULL_TREE, ttype;
+  tree cleanup = NULL_TREE, ttype = NULL_TREE;
   int was_incomplete;
   int temporary = allocation_temporary_p ();
   char *asmspec = NULL;
@@ -6569,7 +6568,7 @@ cp_finish_decl (decl, init, asmspec_tree, need_pop, flags)
        make_decl_rtl (decl, NULL_PTR,
                       toplevel_bindings_p ()
                       || pseudo_global_level_p ());
-      grok_reference_init (decl, type, init, &cleanup);
+      grok_reference_init (decl, type, init);
       init = NULL_TREE;
     }
 
@@ -7976,7 +7975,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
              }
            if (! IDENTIFIER_OPNAME_P (dname)
                /* GNU/Linux headers use '__op'.  Arrgh.  */
-               || IDENTIFIER_TYPENAME_P (dname) && ! TREE_TYPE (dname))
+               || (IDENTIFIER_TYPENAME_P (dname) && ! TREE_TYPE (dname)))
              name = IDENTIFIER_POINTER (dname);
            else
              {
@@ -9521,10 +9520,12 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
       /* Note that the grammar rejects storage classes
         in typenames, fields or parameters.  */
       if (constp || volatilep)
-       if (IS_SIGNATURE (type))
-         error ("`const' or `volatile' specified with signature type");
-       else  
-         type = cp_build_type_variant (type, constp, volatilep);
+       {
+         if (IS_SIGNATURE (type))
+           error ("`const' or `volatile' specified with signature type");
+         else  
+           type = cp_build_type_variant (type, constp, volatilep);
+       }
 
       /* Special case: "friend class foo" looks like a TYPENAME context.  */
       if (friendp)
@@ -10204,7 +10205,7 @@ grokparms (first_parm, funcdef_flag)
 
          for (parm = first_parm; parm != NULL_TREE; parm = chain)
            {
-             tree type, list_node = parm;
+             tree type = NULL_TREE, list_node = parm;
              register tree decl = TREE_VALUE (parm);
              tree init = TREE_PURPOSE (parm);
 
@@ -10951,8 +10952,6 @@ xref_tag (code_type_node, name, binfo, globalize)
   if (binfo)
     xref_basetypes (code_type_node, name, ref, binfo);
 
- just_return:
-
   /* Until the type is defined, tentatively accept whatever
      structure tag the user hands us.  */
   if (TYPE_SIZE (ref) == NULL_TREE
@@ -11182,7 +11181,7 @@ tree
 finish_enum (enumtype, values)
      register tree enumtype, values;
 {
-  register tree minnode, maxnode;
+  register tree minnode = NULL_TREE, maxnode = NULL_TREE;
   /* Calculate the maximum value of any enumerator in this type.  */
 
   if (values)
@@ -12328,7 +12327,7 @@ finish_function (lineno, call_poplevel, nested)
        }
       else if (DECL_CONSTRUCTOR_P (fndecl))
        {
-         tree cond, thenclause;
+         tree cond = NULL_TREE, thenclause = NULL_TREE;
          /* Allow constructor for a type to get a new instance of the object
             using `build_new'.  */
          tree abstract_virtuals = CLASSTYPE_ABSTRACT_VIRTUALS (current_class_type);
@@ -12816,7 +12815,7 @@ hack_incomplete_structures (type)
   for (list = &current_binding_level->incomplete; *list; )
     {
       tree decl = TREE_VALUE (*list);
-      if (decl && TREE_TYPE (decl) == type
+      if ((decl && TREE_TYPE (decl) == type)
          || (TREE_TYPE (decl)
              && TREE_CODE (TREE_TYPE (decl)) == ARRAY_TYPE
              && TREE_TYPE (TREE_TYPE (decl)) == type))
index 4290f71b696cb364ada684d4300cf38c4f0451e3..1409c2fd3212a996c1d8c993affa2ee6253a4150 100644 (file)
@@ -2399,7 +2399,10 @@ tree
 coerce_delete_type (type)
      tree type;
 {
-  int e1 = 0, e2 = 0, e3 = 0;
+  int e1 = 0, e2 = 0;
+#if 0
+  e3 = 0;
+#endif
   tree arg_types = TYPE_ARG_TYPES (type);
 
   if (TREE_CODE (type) == METHOD_TYPE)
index d21e722d959dd6db33881582d97196fc20467248..a8be7582d26c7a72b36218a31a0cfe21ca2ebe56 100644 (file)
@@ -21,6 +21,9 @@ Boston, MA 02111-1307, USA.  */
 
 #include "config.h"
 #include <stdio.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
 #include "tree.h"
 #include "cp-tree.h"
 #include "obstack.h"
@@ -1221,7 +1224,7 @@ dump_expr (t, nop)
 #else
       {
        unsigned char *p = (unsigned char *) &TREE_REAL_CST (t);
-       int i;
+       size_t i;
        strcpy (digit_buffer, "0x");
        for (i = 0; i < sizeof TREE_REAL_CST (t); i++)
          sprintf (digit_buffer + 2 + 2*i, "%02x", *p++);
@@ -1629,7 +1632,6 @@ dump_expr (t, nop)
 
       /* fall through to ERROR_MARK...  */
     case ERROR_MARK:
-    error:
       OB_PUTCP ("{error}");
       break;
     }
index 36c64e12d65fc668e6aa87e5752838508e801cc4..0f2a8df81adc577dd38cf301fc3e8ac8f7175735 100644 (file)
@@ -215,8 +215,6 @@ do_function_call (func, params, return_type)
 void
 init_exception_processing ()
 {
-  tree d;
-
   /* void vtype () */
   tree vtype = build_function_type (void_type_node, void_list_node);
   
@@ -972,7 +970,6 @@ void
 expand_throw (exp)
      tree exp;
 {
-  rtx label;
   tree fn;
   static tree cleanup_type;
 
index 28c0bb44a68e67e8ef5aac3a45832b66d129d511..7263e6426c02af65f74c924522ff6f02926bc63a 100644 (file)
@@ -195,14 +195,16 @@ add_friends (type, name, friend_type)
          while (friends && TREE_PURPOSE (friends) != friend_type)
            friends = TREE_CHAIN (friends);
          if (friends)
-           if (friend_type)
-             warning ("method `%s::%s' is already a friend of class",
-                      TYPE_NAME_STRING (friend_type),
-                      IDENTIFIER_POINTER (name));
-           else
-             warning ("function `%s' is already a friend of class `%s'",
-                      IDENTIFIER_POINTER (name),
-                      IDENTIFIER_POINTER (DECL_NAME (typedecl)));
+           {
+             if (friend_type)
+               warning ("method `%s::%s' is already a friend of class",
+                        TYPE_NAME_STRING (friend_type),
+                        IDENTIFIER_POINTER (name));
+             else
+               warning ("function `%s' is already a friend of class `%s'",
+                        IDENTIFIER_POINTER (name),
+                        IDENTIFIER_POINTER (DECL_NAME (typedecl)));
+           }
          else
            TREE_VALUE (list) = tree_cons (friend_type, NULL_TREE,
                                           TREE_VALUE (list));
index e383405334889c26a4c0c6f70ac46ff494ee3955..c3bb1a86ee60be99f8732302c51df3826cc700d0 100644 (file)
@@ -259,7 +259,7 @@ sort_member_init (t)
   tree x, member, name, field;
   tree init_list = NULL_TREE;
   int last_pos = 0;
-  tree last_field;
+  tree last_field = NULL_TREE;
 
   for (member = TYPE_FIELDS (t); member ; member = TREE_CHAIN (member))
     {
@@ -369,7 +369,7 @@ sort_base_init (t, rbase_ptr, vbase_ptr)
   for (x = TREE_CHAIN (last); x; x = TREE_CHAIN (x))
     {
       tree basetype = TREE_PURPOSE (x);
-      tree binfo;
+      tree binfo = NULL_TREE;
 
       if (basetype == NULL_TREE)
        {
@@ -925,7 +925,7 @@ expand_member_init (exp, name, init)
 
   tree basetype = NULL_TREE, field;
   tree parm;
-  tree rval, type;
+  tree rval = NULL_TREE, type;
 
   if (exp == NULL_TREE)
     return;                    /* complain about this later */
@@ -1776,7 +1776,7 @@ build_member_call (type, name, parmlist)
   if (method_name == constructor_name (type)
       || method_name == constructor_name_full (type))
     return build_functional_cast (type, parmlist);
-  if (t = lookup_fnfields (basetype_path, method_name, 0))
+  if ((t = lookup_fnfields (basetype_path, method_name, 0)))
     return build_method_call (decl, 
                              TREE_CODE (name) == TEMPLATE_ID_EXPR
                              ? name : method_name,
@@ -1906,10 +1906,12 @@ build_offset_ref (type, name)
     decl = current_class_ref;
 
   if (constructor_name (BINFO_TYPE (basebinfo)) == name)
-    if (dtor)
-      name = dtor_identifier;
-    else
-      name = ctor_identifier;
+    {
+      if (dtor)
+       name = dtor_identifier;
+      else
+       name = ctor_identifier;
+    }
   else
     if (dtor)
       my_friendly_abort (999);
@@ -2250,7 +2252,7 @@ build_new (placement, decl, init, use_global_new)
      int use_global_new;
 {
   tree type, rval;
-  tree nelts, t;
+  tree nelts = NULL_TREE, t;
   int has_array = 0;
 
   tree pending_sizes = NULL_TREE;
@@ -2262,7 +2264,7 @@ build_new (placement, decl, init, use_global_new)
     {
       tree absdcl = TREE_VALUE (decl);
       tree last_absdcl = NULL_TREE;
-      int old_immediate_size_expand;
+      int old_immediate_size_expand = 0;
 
       if (current_function_decl
          && DECL_CONSTRUCTOR_P (current_function_decl))
@@ -2434,8 +2436,8 @@ build_new_1 (exp)
 {
   tree placement, init, t;
   tree type, true_type, size, rval;
-  tree nelts;
-  tree alloc_expr, alloc_node;
+  tree nelts = NULL_TREE;
+  tree alloc_expr, alloc_node = NULL_TREE;
   int has_array = 0;
   enum tree_code code = NEW_EXPR;
   int use_cookie, nothrow, check_new;
@@ -2806,9 +2808,6 @@ build_vec_delete_1 (base, maxindex, type, auto_delete_vec, auto_delete,
      This is also the containing expression returned by this function.  */
   tree controller = NULL_TREE;
 
-  /* This is the BLOCK to record the symbol binding for debugging.  */
-  tree block;
-
   if (! IS_AGGR_TYPE (type) || ! TYPE_NEEDS_DESTRUCTOR (type))
     {
       loop = integer_zero_node;
@@ -3049,6 +3048,7 @@ expand_vec_init (decl, base, maxindex, init, from_array)
       iterator = get_temp_regvar (ptrdiff_type_node, maxindex);
 
     init_by_default:
+      itype = NULL_TREE;
 
       /* If initializing one array from another,
         initialize element by element.  */
index d8d7d90300ab50bd1812db1544060e4cb7810536..2960d24b9fe8bde663a2550490871167b32694c7 100644 (file)
@@ -62,7 +62,16 @@ extern double atof ();
 #ifdef HAVE_STRING_H
 #include <string.h>
 #else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+
+#ifdef NEED_DECLARATION_INDEX
 extern char *index ();
+#endif
+
+#ifdef NEED_DECLARATION_RINDEX
 extern char *rindex ();
 #endif
 
@@ -1675,8 +1684,6 @@ reinit_parse_for_expr (obstackp)
   int starting_lineno = lineno;
   char *starting_filename = input_filename;
   int len;
-  int look_for_semicolon = 0;
-  int look_for_lbrac = 0;
   int plev = 0;
 
   if (nextchar != EOF)
@@ -1936,7 +1943,7 @@ cons_up_default_function (type, full_name, kind)
 {
   extern tree void_list_node;
   tree declspecs = NULL_TREE;
-  tree fn, args;
+  tree fn, args = NULL_TREE;
   tree argtype;
   int retref = 0;
   tree name = constructor_name (full_name);
@@ -2612,7 +2619,7 @@ readescape (ignore_ptr)
   register int c = getch ();
   register int code;
   register unsigned count;
-  unsigned firstdig;
+  unsigned firstdig = 0;
   int nonnull;
 
   switch (c)
@@ -3218,7 +3225,7 @@ real_yylex ()
        {
          register struct resword *ptr;
 
-         if (ptr = is_reserved_word (token_buffer, p - token_buffer))
+         if ((ptr = is_reserved_word (token_buffer, p - token_buffer)))
            {
              if (ptr->rid)
                {
index 7f28e769df289dfba80fac8c6e1d1dee03bdf1cd..30ddf5227e7e2d9e4b0f16dc20e218bbfce56b53 100644 (file)
@@ -42,6 +42,12 @@ Boston, MA 02111-1307, USA.  */
 #ifdef HAVE_STRING_H
 #include <string.h>
 #else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+
+#ifdef NEED_DECLARATION_INDEX
 extern char *index ();
 #endif
 
index 5f2e32965c355ae0c41527079bb1fff9ff956c1a..c72cc082cbab48f2898cfc14f8292d7ca95b4577 100644 (file)
@@ -5192,21 +5192,23 @@ case 281:
                  if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
                    yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
                  else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
-                   if (processing_template_arg)
-                     {
-                       tree id;
-                       arg_looking_for_template = processing_template_arg;
-                       id = lookup_name (yyval.ttype, 0);
-                       arg_looking_for_template = 0;
+                   {
+                     if (processing_template_arg)
+                       {
+                         tree id;
+                         arg_looking_for_template = processing_template_arg;
+                         id = lookup_name (yyval.ttype, 0);
+                         arg_looking_for_template = 0;
                        
-                       if (!id || id == error_mark_node
-                           || (TREE_CODE (id) != TEMPLATE_DECL
-                               && TREE_CODE (id) != TEMPLATE_TEMPLATE_PARM))
-                         id = do_identifier (yyval.ttype, 1);
-                       yyval.ttype = id;
-                     } 
-                   else
-                     yyval.ttype = do_identifier (yyval.ttype, 1);
+                         if (!id || id == error_mark_node
+                             || (TREE_CODE (id) != TEMPLATE_DECL
+                                 && TREE_CODE (id) != TEMPLATE_TEMPLATE_PARM))
+                           id = do_identifier (yyval.ttype, 1);
+                         yyval.ttype = id;
+                       } 
+                     else
+                       yyval.ttype = do_identifier (yyval.ttype, 1);
+                   }
                ;
     break;}
 case 284:
@@ -5343,7 +5345,7 @@ case 295:
 case 296:
 #line 1511 "parse.y"
 {
-                 tree type;
+                 tree type = NULL_TREE;
                  tree id = yyval.ttype;
 
                  /* This is a C cast in C++'s `functional' notation.  */
@@ -6178,7 +6180,6 @@ case 453:
 #line 2307 "parse.y"
 {
                  int semi;
-                 tree id;
 
                  yyval.ttype = yyvsp[-4].ttype;
 #if 0
index 13a728b111c1242f9ad9bb520d0782f5762121c1..45e14a7507cfb97b3d5a5873011aeeff349697c9 100644 (file)
@@ -1381,21 +1381,23 @@ primary:
                  if (TREE_CODE ($$) == BIT_NOT_EXPR)
                    $$ = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND ($$, 0));
                  else if (TREE_CODE ($$) != TEMPLATE_ID_EXPR)
-                   if (processing_template_arg)
-                     {
-                       tree id;
-                       arg_looking_for_template = processing_template_arg;
-                       id = lookup_name ($$, 0);
-                       arg_looking_for_template = 0;
+                   {
+                     if (processing_template_arg)
+                       {
+                         tree id;
+                         arg_looking_for_template = processing_template_arg;
+                         id = lookup_name ($$, 0);
+                         arg_looking_for_template = 0;
                        
-                       if (!id || id == error_mark_node
-                           || (TREE_CODE (id) != TEMPLATE_DECL
-                               && TREE_CODE (id) != TEMPLATE_TEMPLATE_PARM))
-                         id = do_identifier ($$, 1);
-                       $$ = id;
-                     } 
-                   else
-                     $$ = do_identifier ($$, 1);
+                         if (!id || id == error_mark_node
+                             || (TREE_CODE (id) != TEMPLATE_DECL
+                                 && TREE_CODE (id) != TEMPLATE_TEMPLATE_PARM))
+                           id = do_identifier ($$, 1);
+                         $$ = id;
+                       } 
+                     else
+                       $$ = do_identifier ($$, 1);
+                   }
                }               
        | CONSTANT
        | boolean.literal
@@ -1509,7 +1511,7 @@ primary:
                }
        | CV_QUALIFIER '(' nonnull_exprlist ')'
                {
-                 tree type;
+                 tree type = NULL_TREE;
                  tree id = $$;
 
                  /* This is a C cast in C++'s `functional' notation.  */
@@ -2306,7 +2308,6 @@ structsp:
           opt.component_decl_list '}' maybe_attribute
                {
                  int semi;
-                 tree id;
 
                  $<ttype>$ = $1;
 #if 0
index 77672b197dc482d4306ba0e288e6456c1b519a18..ba1d884e38e07abdb097c2a6ce3268db75e9dce3 100644 (file)
@@ -1742,31 +1742,33 @@ coerce_template_parms (parms, arglist, in_decl,
     }
 
   if (arglist && TREE_CODE (arglist) == TREE_VEC)
-    if (nargs == nparms)
-      vec = copy_node (arglist);
-    else
-      {
-       /* We arrive here when a template with some default arguments
-          is used as template template argument.  */
-       is_tmpl_parm = 1;
-       vec = make_tree_vec (nparms);
-       for (i = 0; i < nparms; i++)
-         {
-           tree arg;
-
-           if (i < nargs)
+    {
+      if (nargs == nparms)
+       vec = copy_node (arglist);
+      else
+       {
+         /* We arrive here when a template with some default arguments
+            is used as template template argument.  */
+         is_tmpl_parm = 1;
+         vec = make_tree_vec (nparms);
+         for (i = 0; i < nparms; i++)
+           {
+             tree arg;
+             
+             if (i < nargs)
              arg = TREE_VEC_ELT (arglist, i);
-           else if (TREE_CODE (TREE_VALUE (TREE_VEC_ELT (parms, i)))
-                    == TYPE_DECL)
-             arg = tsubst (TREE_PURPOSE (TREE_VEC_ELT (parms, i)),
-                           vec, i, in_decl);
-           else
-             arg = tsubst_expr (TREE_PURPOSE (TREE_VEC_ELT (parms, i)),
-                                vec, i, in_decl);
-
-           TREE_VEC_ELT (vec, i) = arg;
-         }
-      }
+             else if (TREE_CODE (TREE_VALUE (TREE_VEC_ELT (parms, i)))
+                      == TYPE_DECL)
+               arg = tsubst (TREE_PURPOSE (TREE_VEC_ELT (parms, i)),
+                             vec, i, in_decl);
+             else
+               arg = tsubst_expr (TREE_PURPOSE (TREE_VEC_ELT (parms, i)),
+                                  vec, i, in_decl);
+             
+             TREE_VEC_ELT (vec, i) = arg;
+           }
+       }
+    }
   else
     {
       vec = make_tree_vec (nparms);
@@ -2213,7 +2215,7 @@ lookup_template_class (d1, arglist, in_decl, context)
      tree in_decl;
      tree context;
 {
-  tree template, parmlist;
+  tree template = NULL_TREE, parmlist;
   char *mangled_name;
   tree id, t;
 
@@ -2819,14 +2821,13 @@ instantiate_class_template (type)
 
   for (t = CLASSTYPE_TAGS (pattern); t; t = TREE_CHAIN (t))
     {
-      tree name = TREE_PURPOSE (t);
       tree tag = TREE_VALUE (t);
 
       /* These will add themselves to CLASSTYPE_TAGS for the new type.  */
       if (TREE_CODE (tag) == ENUMERAL_TYPE)
        {
-         tree e, newtag = tsubst_enum (tag, args, 
-                                       TREE_VEC_LENGTH (args), field_chain);
+         tree newtag =
+           tsubst_enum (tag, args, TREE_VEC_LENGTH (args), field_chain);
 
          while (*field_chain)
            {
@@ -3190,7 +3191,6 @@ tsubst (t, args, nargs, in_decl)
        tree new_decl;
        tree parms;
        tree spec;
-       int i;
 
        /* We might already have an instance of this template. */
        spec = retrieve_specialization (t, args);
@@ -3785,7 +3785,7 @@ tsubst (t, args, nargs, in_decl)
            /* This should probably be rewritten to use hash_tree_cons for
                the memory savings.  */
            tree first = NULL_TREE;
-           tree last;
+           tree last = NULL_TREE;
 
            for (; values && values != void_list_node;
                 values = TREE_CHAIN (values))
@@ -3934,7 +3934,7 @@ tree
 do_poplevel ()
 {
   tree t;
-  int saved_warn_unused;
+  int saved_warn_unused = 0;
 
   if (processing_template_decl)
     {
@@ -4652,7 +4652,6 @@ type_unification (tparms, targs, parms, args, targs_in, nsubsts,
 {
   int ntparms = TREE_VEC_LENGTH (tparms);
   tree arg;
-  tree parm;
   int i;
   int r;
 
@@ -4937,7 +4936,7 @@ unify (tparms, targs, ntparms, parm, arg, nsubsts, strict)
            tree argvec = CLASSTYPE_TI_ARGS (arg);
            tree argtmplvec
              = DECL_INNERMOST_TEMPLATE_PARMS (CLASSTYPE_TI_TEMPLATE (arg));
-           int i, j;
+           int i;
 
            /* The parameter and argument roles have to be switched here 
               in order to handle default arguments properly.  For example, 
index cc6eab650269054dc90819b37c91b51e8623a9e4..27a1f4dda316d499814a540373fb10ac900c01b0 100644 (file)
@@ -336,7 +336,7 @@ init_repo (filename)
   if (repo_file == 0)
     return;
 
-  while (buf = afgets (repo_file))
+  while ((buf = afgets (repo_file)))
     {
       switch (buf[0])
        {
@@ -396,7 +396,6 @@ void
 finish_repo ()
 {
   tree t;
-  char *p;
   int repo_changed = 0;
   char *dir, *args;
 
index 7e1fb49618d74d8628ceabdb707f453c7be43b67..b059fbdb589d658f875bb5e8d60eb5265b0360b7 100644 (file)
@@ -545,7 +545,7 @@ get_binfo (parent, binfo, protect)
      register tree parent, binfo;
      int protect;
 {
-  tree type;
+  tree type = NULL_TREE;
   int dist;
   tree rval = NULL_TREE;
   
@@ -716,7 +716,7 @@ get_base_distance (parent, binfo, protect, path_ptr)
 {
   int rval;
   int rval_private = 0;
-  tree type;
+  tree type = NULL_TREE;
   tree new_binfo = NULL_TREE;
   int via_virtual;
   int watch_access = protect;
@@ -1154,8 +1154,8 @@ lookup_field (xbasetype, name, protect, want_type)
      int protect, want_type;
 {
   int head = 0, tail = 0;
-  tree rval, rval_binfo = NULL_TREE, rval_binfo_h;
-  tree type, basetype_chain, basetype_path;
+  tree rval, rval_binfo = NULL_TREE, rval_binfo_h = NULL_TREE;
+  tree type = NULL_TREE, basetype_chain, basetype_path = NULL_TREE;
   tree this_v = access_default_node;
   tree entry, binfo, binfo_h;
   tree own_access = access_default_node;
@@ -1470,7 +1470,7 @@ lookup_field (xbasetype, name, protect, want_type)
            /* If is possible for one of the derived types on the path to
               have defined special access for this field.  Look for such
               declarations and report an error if a conflict is found.  */
-           tree new_v;
+           tree new_v = NULL_TREE;
 
            if (this_v != access_default_node)
              new_v = compute_access (TREE_VALUE (TREE_CHAIN (*tp)), rval);
@@ -1689,8 +1689,8 @@ lookup_fnfields (basetype_path, name, complain)
      int complain;
 {
   int head = 0, tail = 0;
-  tree type, rval, rval_binfo = NULL_TREE, rvals = NULL_TREE, rval_binfo_h;
-  tree entry, binfo, basetype_chain, binfo_h;
+  tree type, rval, rval_binfo = NULL_TREE, rvals = NULL_TREE;
+  tree rval_binfo_h = NULL_TREE, entry, binfo, basetype_chain, binfo_h;
   int find_all = 0;
 
   /* rval_binfo is the binfo associated with the found member, note,
@@ -2034,7 +2034,7 @@ breadth_first_search (binfo, testfn, qfn)
 
       binfo = search_stack->first[head++];
       i = (HOST_WIDE_INT) search_stack->first[head++];
-      if (rval = (*testfn) (binfo, i))
+      if ((rval = (*testfn) (binfo, i)))
        break;
       binfo = BINFO_BASETYPE (binfo, i);
     }
@@ -3768,7 +3768,7 @@ tree
 get_template_base (template, binfo)
      register tree template, binfo;
 {
-  tree type, rval;
+  tree type = NULL_TREE, rval;
 
   if (TREE_CODE (binfo) == TREE_VEC)
     type = BINFO_TYPE (binfo);
index ba3af4253840709668633800579147b0fbfe2748..72eb314aeb231aaf177ff36244a6cf97f0016a6e 100644 (file)
@@ -350,7 +350,7 @@ append_signature_fields (list_of_fieldlists)
   tree l, x;
   tree last_x = NULL_TREE;
   tree mfptr;
-  tree last_mfptr;
+  tree last_mfptr = NULL_TREE;
   tree mfptr_list = NULL_TREE;
              
   /* For signatures it should actually be only a list with one element.  */
@@ -461,7 +461,7 @@ build_signature_table_constructor (sig_ty, rhs)
   tree sig_field = TYPE_FIELDS (sig_ty);
   tree result = NULL_TREE;
   tree first_rhs_field = NULL_TREE;
-  tree last_rhs_field;
+  tree last_rhs_field = NULL_TREE;
   int sig_ptr_p = IS_SIGNATURE (rhstype);
   int offset_p = sig_ptr_p;
 
@@ -574,7 +574,7 @@ build_signature_table_constructor (sig_ty, rhs)
        }
       else
        {
-         tree tag, vb_off, delta, idx, pfn, vt_off;
+         tree tag, vb_off, delta, idx, pfn = NULL_TREE, vt_off = NULL_TREE;
          tree tag_decl, vb_off_decl, delta_decl, index_decl;
          tree pfn_decl, vt_off_decl;
 
@@ -724,7 +724,7 @@ build_sigtable (sig_type, rhs_type, init_from)
     }
   if (decl == NULL_TREE)
     {
-      tree init;
+      tree init = NULL_TREE;
 
       /* We allow only one signature table to be generated for signatures
         with opaque types.  Otherwise we create a loophole in the type
index 16bcb1357351fc98a265e44b59c2ac70fed97d3a..bfe25991465e046e1d1d9a27f5b66de0cfbc77eb 100644 (file)
@@ -323,7 +323,7 @@ tree
 break_out_calls (exp)
      tree exp;
 {
-  register tree t1, t2;
+  register tree t1, t2 = NULL_TREE;
   register enum tree_code code;
   register int changed = 0;
   register int i;
@@ -574,7 +574,7 @@ propagate_binfo_offsets (binfo, offset)
        {
          int j;
          tree base_binfos = BINFO_BASETYPES (base_binfo);
-         tree delta;
+         tree delta = NULL_TREE;
 
          for (j = i+1; j < n_baselinks; j++)
            if (! TREE_VIA_VIRTUAL (TREE_VEC_ELT (binfos, j)))
@@ -1046,7 +1046,7 @@ hash_tree_cons (via_public, via_virtual, via_protected, purpose, value, chain)
 {
   struct obstack *ambient_obstack = current_obstack;
   tree t;
-  int hashcode;
+  int hashcode = 0;
 
   if (! debug_no_list_hash)
     {
@@ -1928,7 +1928,7 @@ can_free (obstack, t)
      struct obstack *obstack;
      tree t;
 {
-  int size;
+  int size = 0;
 
   if (TREE_CODE (t) == TREE_VEC)
     size = (TREE_VEC_LENGTH (t)-1) * sizeof (tree) + sizeof (struct tree_vec);
@@ -1997,10 +1997,12 @@ cp_tree_equal (t1, t2)
   code2 = TREE_CODE (t2);
 
   if (code1 == NOP_EXPR || code1 == CONVERT_EXPR || code1 == NON_LVALUE_EXPR)
-    if (code2 == NOP_EXPR || code2 == CONVERT_EXPR || code2 == NON_LVALUE_EXPR)
-      return cp_tree_equal (TREE_OPERAND (t1, 0), TREE_OPERAND (t2, 0));
-    else
-      return cp_tree_equal (TREE_OPERAND (t1, 0), t2);
+    {
+      if (code2 == NOP_EXPR || code2 == CONVERT_EXPR || code2 == NON_LVALUE_EXPR)
+       return cp_tree_equal (TREE_OPERAND (t1, 0), TREE_OPERAND (t2, 0));
+      else
+       return cp_tree_equal (TREE_OPERAND (t1, 0), t2);
+    }
   else if (code2 == NOP_EXPR || code2 == CONVERT_EXPR
           || code2 == NON_LVALUE_EXPR)
     return cp_tree_equal (t1, TREE_OPERAND (t2, 0));
index 76302a8c634ae91f2bbe61629b03c6c21a12fc6f..f401d68a1e3eb888a2ca87873057ec38dc0ca6c6 100644 (file)
@@ -56,7 +56,9 @@ static int comp_array_types PROTO((int (*) (tree, tree, int), tree,
                                   tree, int));
 static tree build_ptrmemfunc1 PROTO((tree, tree, tree, tree, tree));
 static tree common_base_type PROTO((tree, tree));
+#if 0
 static tree convert_sequence PROTO((tree, tree));
+#endif
 static tree lookup_anon_field PROTO((tree, tree));
 static tree pointer_diff PROTO((tree, tree, tree));
 static tree qualify_type PROTO((tree, tree));
@@ -327,25 +329,27 @@ common_type (t1, t2)
     /* One that completely contains the other?  Take it.  */
 
     else if (a2 && !attribute_list_contained (a1, a2))
-       if (attribute_list_contained (a2, a1))
+      {
+       if (attribute_list_contained (a2, a1))
          attributes = a2;
-       else
-       {
-         /* Pick the longest list, and hang on the other list.  */
-         /* ??? For the moment we punt on the issue of attrs with args.  */
+       else
+         {
+           /* Pick the longest list, and hang on the other list.  */
+           /* ??? For the moment we punt on the issue of attrs with args.  */
        
-         if (list_length (a1) < list_length (a2))
-            attributes = a2, a2 = a1;
+           if (list_length (a1) < list_length (a2))
+             attributes = a2, a2 = a1;
 
-         for (; a2; a2 = TREE_CHAIN (a2))
-           if (lookup_attribute (IDENTIFIER_POINTER (TREE_PURPOSE (a2)),
-                                 attributes) == NULL_TREE)
-             {
-               a1 = copy_node (a2);
-               TREE_CHAIN (a1) = attributes;
-               attributes = a1;
-             }
-       }
+           for (; a2; a2 = TREE_CHAIN (a2))
+             if (lookup_attribute (IDENTIFIER_POINTER (TREE_PURPOSE (a2)),
+                                   attributes) == NULL_TREE)
+               {
+                 a1 = copy_node (a2);
+                 TREE_CHAIN (a1) = attributes;
+                 attributes = a1;
+               }
+         }
+      }
   }
 
   /* Treat an enum type as the unsigned integer type of the same width.  */
@@ -966,21 +970,22 @@ comp_target_types (ttl, ttr, nptrs)
   if (TREE_CODE (ttr) == ARRAY_TYPE)
     return comp_array_types (comp_target_types, ttl, ttr, 0);
   else if (TREE_CODE (ttr) == FUNCTION_TYPE || TREE_CODE (ttr) == METHOD_TYPE)
-    if (comp_target_types (TREE_TYPE (ttl), TREE_TYPE (ttr), -1))
-      switch (comp_target_parms (TYPE_ARG_TYPES (ttl), TYPE_ARG_TYPES (ttr), 1))
-       {
-       case 0:
-         return 0;
-       case 1:
-         return 1;
-       case 2:
-         return -1;
-       default:
-         my_friendly_abort (112);
-       }
-    else
-      return 0;
-
+    {
+      if (comp_target_types (TREE_TYPE (ttl), TREE_TYPE (ttr), -1))
+       switch (comp_target_parms (TYPE_ARG_TYPES (ttl), TYPE_ARG_TYPES (ttr), 1))
+         {
+         case 0:
+           return 0;
+         case 1:
+           return 1;
+         case 2:
+           return -1;
+         default:
+           my_friendly_abort (112);
+         }
+      else
+       return 0;
+    }
   /* for C++ */
   else if (TREE_CODE (ttr) == OFFSET_TYPE)
     {
@@ -2521,7 +2526,7 @@ build_x_function_call (function, params, decl)
   if (is_method)
     {
       tree fntype = TREE_TYPE (function);
-      tree ctypeptr;
+      tree ctypeptr = NULL_TREE;
 
       /* Explicitly named method?  */
       if (TREE_CODE (function) == FUNCTION_DECL)
@@ -2746,10 +2751,12 @@ build_function_call_real (function, params, require_complete, flags)
                                        params, fndecl, 0);
 
   if (coerced_params == error_mark_node)
-    if (flags & LOOKUP_SPECULATIVELY)
-      return NULL_TREE;
-    else
-      return error_mark_node;
+    {
+      if (flags & LOOKUP_SPECULATIVELY)
+       return NULL_TREE;
+      else
+       return error_mark_node;
+    }
 
   /* Check for errors in format strings.  */
 
@@ -2831,7 +2838,7 @@ convert_arguments (return_loc, typelist, values, fndecl, flags)
 {
   register tree typetail, valtail;
   register tree result = NULL_TREE;
-  char *called_thing;
+  char *called_thing = 0;
   int i = 0;
 
   if (! flag_elide_constructors)
@@ -7048,7 +7055,7 @@ convert_for_initialization (exp, type, rhs, flags, errtype, fndecl, parmnum)
     {
       /* This should eventually happen in convert_arguments.  */
       extern int warningcount, errorcount;
-      int savew, savee;
+      int savew = 0, savee = 0;
 
       if (fndecl)
        savew = warningcount, savee = errorcount;
index 92cbcc34aa8e0139793d931131185d0463e1c116..c460f45652690f9a29f24350b942717424b7e841 100644 (file)
@@ -208,7 +208,7 @@ incomplete_type_error (value, type)
      tree value;
      tree type;
 {
-  char *errmsg;
+  char *errmsg = 0;
 
   /* Avoid duplicate error message.  */
   if (TREE_CODE (type) == ERROR_MARK)
@@ -685,7 +685,7 @@ digest_init (type, init, tail)
 {
   enum tree_code code = TREE_CODE (type);
   tree element = NULL_TREE;
-  tree old_tail_contents;
+  tree old_tail_contents = NULL_TREE;
   /* Nonzero if INIT is a braced grouping, which comes in as a CONSTRUCTOR
      tree node which has no TREE_TYPE.  */
   int raw_constructor;
@@ -1265,7 +1265,7 @@ build_x_arrow (datum)
   tree types_memoized = NULL_TREE;
   register tree rval = datum;
   tree type = TREE_TYPE (rval);
-  tree last_rval;
+  tree last_rval = NULL_TREE;
 
   if (type == error_mark_node)
     return error_mark_node;
index 40cdf42103f8987dc97e5325fbf7170a970c62a1..c3c35de7f4ab5a4bdea6fa48296ce9dcbc327828 100644 (file)
@@ -337,7 +337,7 @@ GNU_xref_decl (fndecl,decl)
    tree decl;
 {
   XREF_FILE xf,xf1;
-  char *cls;
+  char *cls = 0;
   char *name;
   char buf[10240];
   int uselin;