From ca24357c30334cec2322e857a41294899a05d57f Mon Sep 17 00:00:00 2001 From: sayle Date: Sat, 13 Jan 2007 05:39:57 +0000 Subject: [PATCH] * c-typeck.c (null_pointer_constant_p): Replace use of TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. (build_c_cast): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120747 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/c-typeck.c | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 17baae3..fcaf921 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2007-01-12 Roger Sayle + * c-typeck.c (null_pointer_constant_p): Replace use of + TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. + (build_c_cast): Likewise. + +2007-01-12 Roger Sayle + * tree.h (force_fit_type_double): Remove unused final argument. * c-common.c (constant_expression_warning): Replace use of TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 50db7d4..66b109e 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -1,6 +1,6 @@ /* Build expressions with type checking for C compiler. Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -117,7 +117,7 @@ null_pointer_constant_p (tree expr) yet available everywhere required. */ tree type = TREE_TYPE (expr); return (TREE_CODE (expr) == INTEGER_CST - && !TREE_CONSTANT_OVERFLOW (expr) + && !TREE_OVERFLOW (expr) && integer_zerop (expr) && (INTEGRAL_TYPE_P (type) || (TREE_CODE (type) == POINTER_TYPE @@ -3588,15 +3588,16 @@ build_c_cast (tree type, tree expr) /* Ignore any integer overflow caused by the cast. */ if (TREE_CODE (value) == INTEGER_CST) { - if (CONSTANT_CLASS_P (ovalue) - && (TREE_OVERFLOW (ovalue) || TREE_CONSTANT_OVERFLOW (ovalue))) + if (CONSTANT_CLASS_P (ovalue) && TREE_OVERFLOW (ovalue)) { - /* Avoid clobbering a shared constant. */ - value = copy_node (value); - TREE_OVERFLOW (value) = TREE_OVERFLOW (ovalue); - TREE_CONSTANT_OVERFLOW (value) = TREE_CONSTANT_OVERFLOW (ovalue); + if (!TREE_OVERFLOW (value)) + { + /* Avoid clobbering a shared constant. */ + value = copy_node (value); + TREE_OVERFLOW (value) = TREE_OVERFLOW (ovalue); + } } - else if (TREE_OVERFLOW (value) || TREE_CONSTANT_OVERFLOW (value)) + else if (TREE_OVERFLOW (value)) /* Reset VALUE's overflow flags, ensuring constant sharing. */ value = build_int_cst_wide (TREE_TYPE (value), TREE_INT_CST_LOW (value), -- 2.7.4