re PR middle-end/39701 (Revision 145846 caused many test failures)

2009-04-10  Paolo Bonzini  <bonzini@gnu.org>

	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
This commit is contained in:
Paolo Bonzini 2009-04-10 16:06:43 +00:00 committed by Paolo Bonzini
parent b0d3b11d8c
commit 4d35e75cf9
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2009-04-10 Paolo Bonzini <bonzini@gnu.org>
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 <hongjiu.lu@intel.com>
* config/rs6000/darwin-vecsave.asm: Remove extra "*/".

View File

@ -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. */