* ldexp.c (exp_fold_tree): Ensure return value is initialized.
authorAlan Modra <amodra@gmail.com>
Mon, 14 Mar 2005 12:29:13 +0000 (12:29 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 14 Mar 2005 12:29:13 +0000 (12:29 +0000)
Tidy etree_assert case.

ld/ChangeLog
ld/ldexp.c

index 6b1fbd394b7a0aae61df03109af40c1cebd74d8e..1eb405056cea4216e2666070253a195f6aa2960b 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * ldexp.c (exp_fold_tree): Ensure return value is initialized.
+       Tidy etree_assert case.
+
 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
 
        * po/tr.po: Commit new Turkish translation.
index ec25557bafb3879da2cc7f4b1f3dee05bc66eefd..b194bec468c096f1f0f29d630cf5bba6fb265bfd 100644 (file)
@@ -699,7 +699,7 @@ exp_fold_tree (etree_type *tree,
 
   if (tree == NULL)
     {
-      result.valid_p = FALSE;
+      memset (&result, 0, sizeof (result));
       return result;
     }
 
@@ -711,7 +711,7 @@ exp_fold_tree (etree_type *tree,
 
     case etree_rel:
       if (allocation_done != lang_final_phase_enum)
-       result.valid_p = FALSE;
+       memset (&result, 0, sizeof (result));
       else
        result = new_rel ((tree->rel.value
                           + tree->rel.section->output_section->vma
@@ -724,12 +724,8 @@ exp_fold_tree (etree_type *tree,
       result = exp_fold_tree (tree->assert_s.child,
                              current_section,
                              allocation_done, dot, dotp);
-      if (result.valid_p)
-       {
-         if (! result.value)
-           einfo ("%X%P: %s\n", tree->assert_s.message);
-         return result;
-       }
+      if (result.valid_p && !result.value)
+       einfo ("%X%P: %s\n", tree->assert_s.message);
       break;
 
     case etree_unary:
@@ -787,6 +783,8 @@ exp_fold_tree (etree_type *tree,
                    }
                }
            }
+         else
+           memset (&result, 0, sizeof (result));
        }
       else
        {
@@ -839,6 +837,7 @@ exp_fold_tree (etree_type *tree,
 
     default:
       FAIL ();
+      memset (&result, 0, sizeof (result));
       break;
     }