From: Paolo Bonzini Date: Fri, 10 Apr 2009 16:06:43 +0000 (+0000) Subject: re PR middle-end/39701 (Revision 145846 caused many test failures) X-Git-Tag: releases/gcc-4.5.0~6675 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=4d35e75cf9b4acaca40316a42de29ab3858b5c91;p=gcc.git re PR middle-end/39701 (Revision 145846 caused many test failures) 2009-04-10 Paolo Bonzini PR middle-end/39701 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static variables as non-NULL even with -fdelete-null-pointer-checks. From-SVN: r145927 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 62a1c433b60f..a77df07a6af3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-04-10 Paolo Bonzini + + PR middle-end/39701 + * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static + variables as non-NULL even with -fdelete-null-pointer-checks. + 2009-04-10 H.J. Lu * config/rs6000/darwin-vecsave.asm: Remove extra "*/". diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 821e581348a8..dd2f62d4a4b4 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -15017,8 +15017,12 @@ tree_single_nonzero_warnv_p (tree t, bool *strict_overflow_p) if (!base) return false; - /* Weak declarations may link to NULL. */ - if (DECL_P (base) && flag_delete_null_pointer_checks) + /* Weak declarations may link to NULL. Other things may also be NULL + so protect with -fdelete-null-pointer-checks; but not variables + allocated on the stack. */ + if (DECL_P (base) + && (flag_delete_null_pointer_checks + || (TREE_CODE (base) == VAR_DECL && !TREE_STATIC (base)))) return !VAR_OR_FUNCTION_DECL_P (base) || !DECL_WEAK (base); /* Constants are never weak. */