The following fixes an overly restrictive condition on the zeros we
produce when folding a read from a zero-initialized global.  Now it
matches what we allow elsewhere and what is useful.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2014-11-26  Richard Biener  <rguent...@suse.de>

        * gimple-fold.c (get_symbol_constant_value): Allow all
        GIMPLE register type zero-constants.

Index: gcc/gimple-fold.c
===================================================================
--- gcc/gimple-fold.c   (revision 218073)
+++ gcc/gimple-fold.c   (working copy)
@@ -254,8 +254,7 @@ get_symbol_constant_value (tree sym)
         have zero as the initializer if they may not be
         overridden at link or run time.  */
       if (!val
-          && (INTEGRAL_TYPE_P (TREE_TYPE (sym))
-              || SCALAR_FLOAT_TYPE_P (TREE_TYPE (sym))))
+          && is_gimple_reg_type (TREE_TYPE (sym)))
        return build_zero_cst (TREE_TYPE (sym));
     }
 

Reply via email to