OSDN Git Service

* tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Mar 2011 13:28:29 +0000 (13:28 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Mar 2011 13:28:29 +0000 (13:28 +0000)
typo potentially leading to null pointer dereference.

* caller-save.c (new_saved_hard_reg): Eliminate return value.
(setup_save_areas): Corresponding changes to avoid useless
assignments.

* jump.c (reversed_comparison_code_parts): Avoid successive return
statements when REVERSE_CONDITION is defined.

* expr.c (expand_assignment): Avoid useless assignments.
(expand_expr_real_1): Likewise.
(expand_expr_real_2): Avoid useless statements.

* tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.

* cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.

* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
statements.

* stmt.c (expand_expr_stmt): Avoid useless assignment.

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

gcc/ChangeLog
gcc/caller-save.c
gcc/cfgexpand.c
gcc/expr.c
gcc/jump.c
gcc/stmt.c
gcc/tree-ssa-dce.c
gcc/tree-ssa-forwprop.c
gcc/tree-ssa-phiopt.c

index 9442b24..f33051f 100644 (file)
@@ -1,3 +1,28 @@
+2011-03-31  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid 
+       typo potentially leading to null pointer dereference.
+
+       * caller-save.c (new_saved_hard_reg): Eliminate return value.
+       (setup_save_areas): Corresponding changes to avoid useless
+       assignments.
+
+       * jump.c (reversed_comparison_code_parts): Avoid successive return
+       statements when REVERSE_CONDITION is defined.
+
+       * expr.c (expand_assignment): Avoid useless assignments.
+       (expand_expr_real_1): Likewise.
+       (expand_expr_real_2): Avoid useless statements.
+
+       * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
+
+       * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
+
+       * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
+       statements.
+
+       * stmt.c (expand_expr_stmt): Avoid useless assignment.
+
 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
 
        PR target/47109
index 54de30b..369b55c 100644 (file)
@@ -82,7 +82,7 @@ static int reg_restore_code (int, enum machine_mode);
 
 struct saved_hard_reg;
 static void initiate_saved_hard_regs (void);
-static struct saved_hard_reg *new_saved_hard_reg (int, int);
+static void new_saved_hard_reg (int, int);
 static void finish_saved_hard_regs (void);
 static int saved_hard_reg_compare_func (const void *, const void *);
 
@@ -346,7 +346,7 @@ initiate_saved_hard_regs (void)
 
 /* Allocate and return new saved hard register with given REGNO and
    CALL_FREQ.  */
-static struct saved_hard_reg *
+static void
 new_saved_hard_reg (int regno, int call_freq)
 {
   struct saved_hard_reg *saved_reg;
@@ -359,7 +359,6 @@ new_saved_hard_reg (int regno, int call_freq)
   saved_reg->call_freq = call_freq;
   saved_reg->first_p = FALSE;
   saved_reg->next = -1;
-  return saved_reg;
 }
 
 /* Free memory allocated for the saved hard registers.  */
@@ -463,7 +462,7 @@ setup_save_areas (void)
            if (hard_reg_map[regno] != NULL)
              hard_reg_map[regno]->call_freq += freq;
            else
-             saved_reg = new_saved_hard_reg (regno, freq);
+             new_saved_hard_reg (regno, freq);
            SET_HARD_REG_BIT (hard_regs_used, regno);
          }
       /* Look through all live pseudos, mark their hard registers.  */
@@ -483,7 +482,7 @@ setup_save_areas (void)
                if (hard_reg_map[r] != NULL)
                  hard_reg_map[r]->call_freq += freq;
                else
-                 saved_reg = new_saved_hard_reg (r, freq);
+                 new_saved_hard_reg (r, freq);
                 SET_HARD_REG_BIT (hard_regs_to_save, r);
                 SET_HARD_REG_BIT (hard_regs_used, r);
              }
index e075c53..cdd7d03 100644 (file)
@@ -3576,7 +3576,7 @@ expand_gimple_basic_block (basic_block bb)
              val = gen_rtx_VAR_LOCATION
                (mode, var, (rtx)value, VAR_INIT_STATUS_INITIALIZED);
 
-             val = emit_debug_insn (val);
+             emit_debug_insn (val);
 
              if (dump_file && (dump_flags & TDF_DETAILS))
                {
index 076b8d2..ca61804 100644 (file)
@@ -4124,7 +4124,7 @@ expand_assignment (tree to, tree from, bool nontemporal)
   /* Don't crash if the lhs of the assignment was erroneous.  */
   if (TREE_CODE (to) == ERROR_MARK)
     {
-      result = expand_normal (from);
+      expand_normal (from);
       return;
     }
 
@@ -8170,7 +8170,6 @@ expand_expr_real_2 (sepops ops, rtx target, enum machine_mode tmode,
     case VEC_UNPACK_LO_EXPR:
       {
        op0 = expand_normal (treeop0);
-       this_optab = optab_for_tree_code (code, type, optab_default);
        temp = expand_widen_pattern_expr (ops, op0, NULL_RTX, NULL_RTX,
                                          target, unsignedp);
        gcc_assert (temp);
@@ -8182,9 +8181,6 @@ expand_expr_real_2 (sepops ops, rtx target, enum machine_mode tmode,
       {
        op0 = expand_normal (treeop0);
        /* The signedness is determined from input operand.  */
-       this_optab = optab_for_tree_code (code,
-                                         TREE_TYPE (treeop0),
-                                         optab_default);
        temp = expand_widen_pattern_expr
          (ops, op0, NULL_RTX, NULL_RTX,
           target, TYPE_UNSIGNED (TREE_TYPE (treeop0)));
@@ -8334,7 +8330,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
        {
          temp = expand_expr (exp, NULL_RTX, VOIDmode, modifier);
          if (MEM_P (temp))
-           temp = copy_to_reg (temp);
+           copy_to_reg (temp);
          return const0_rtx;
        }
 
index 9721fe1..8adfbfd 100644 (file)
@@ -308,8 +308,9 @@ reversed_comparison_code_parts (enum rtx_code code, const_rtx arg0,
     {
 #ifdef REVERSE_CONDITION
       return REVERSE_CONDITION (code, mode);
-#endif
+#else
       return reverse_condition (code);
+#endif
     }
 
   /* Try a few special cases based on the comparison code.  */
index b65c6db..1a9f9e5 100644 (file)
@@ -1455,7 +1455,7 @@ expand_expr_stmt (tree exp)
       if (TYPE_MODE (type) == VOIDmode)
        ;
       else if (TYPE_MODE (type) != BLKmode)
-       value = copy_to_reg (value);
+       copy_to_reg (value);
       else
        {
          rtx lab = gen_label_rtx ();
index ce2d41b..c46836d 100644 (file)
@@ -271,8 +271,6 @@ mark_operand_necessary (tree op)
 static void
 mark_stmt_if_obviously_necessary (gimple stmt, bool aggressive)
 {
-  tree lhs = NULL_TREE;
-
   /* With non-call exceptions, we have to assume that all statements could
      throw.  If a statement may throw, it is inherently necessary.  */
   if (cfun->can_throw_non_call_exceptions && stmt_could_throw_p (stmt))
@@ -311,12 +309,6 @@ mark_stmt_if_obviously_necessary (gimple stmt, bool aggressive)
        }
       if (!gimple_call_lhs (stmt))
         return;
-      lhs = gimple_call_lhs (stmt);
-      /* Fall through */
-
-    case GIMPLE_ASSIGN:
-      if (!lhs)
-        lhs = gimple_assign_lhs (stmt);
       break;
 
     case GIMPLE_DEBUG:
index f183159..aaed6cb 100644 (file)
@@ -553,7 +553,7 @@ forward_propagate_into_cond (gimple_stmt_iterator *gsi_p)
       {
        name = cond;
        def_stmt = get_prop_source_stmt (name, true, NULL);
-       if (def_stmt || !can_propagate_from (def_stmt))
+       if (!def_stmt || !can_propagate_from (def_stmt))
          return did_something;
 
        rhs0 = gimple_assign_rhs1 (def_stmt);
index caea9ac..6b15ae0 100644 (file)
@@ -695,7 +695,6 @@ minmax_replacement (basic_block cond_bb, basic_block middle_bb,
 
   cond = last_stmt (cond_bb);
   cmp = gimple_cond_code (cond);
-  result = PHI_RESULT (phi);
 
   /* This transformation is only valid for order comparisons.  Record which
      operand is smaller/larger if the result of the comparison is true.  */