Commit 8bcd6380 by Roger Sayle Committed by Roger Sayle

c-typeck.c (null_pointer_constant_p): Replace use of TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.


	* c-typeck.c (null_pointer_constant_p): Replace use of
	TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
	(build_c_cast): Likewise.

From-SVN: r120747
parent d95787e6
2007-01-12 Roger Sayle <roger@eyesopen.com> 2007-01-12 Roger Sayle <roger@eyesopen.com>
* 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 <roger@eyesopen.com>
* tree.h (force_fit_type_double): Remove unused final argument. * tree.h (force_fit_type_double): Remove unused final argument.
* c-common.c (constant_expression_warning): Replace use of * c-common.c (constant_expression_warning): Replace use of
TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
......
/* Build expressions with type checking for C compiler. /* Build expressions with type checking for C compiler.
Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 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. Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -117,7 +117,7 @@ null_pointer_constant_p (tree expr) ...@@ -117,7 +117,7 @@ null_pointer_constant_p (tree expr)
yet available everywhere required. */ yet available everywhere required. */
tree type = TREE_TYPE (expr); tree type = TREE_TYPE (expr);
return (TREE_CODE (expr) == INTEGER_CST return (TREE_CODE (expr) == INTEGER_CST
&& !TREE_CONSTANT_OVERFLOW (expr) && !TREE_OVERFLOW (expr)
&& integer_zerop (expr) && integer_zerop (expr)
&& (INTEGRAL_TYPE_P (type) && (INTEGRAL_TYPE_P (type)
|| (TREE_CODE (type) == POINTER_TYPE || (TREE_CODE (type) == POINTER_TYPE
...@@ -3588,15 +3588,16 @@ build_c_cast (tree type, tree expr) ...@@ -3588,15 +3588,16 @@ build_c_cast (tree type, tree expr)
/* Ignore any integer overflow caused by the cast. */ /* Ignore any integer overflow caused by the cast. */
if (TREE_CODE (value) == INTEGER_CST) if (TREE_CODE (value) == INTEGER_CST)
{ {
if (CONSTANT_CLASS_P (ovalue) if (CONSTANT_CLASS_P (ovalue) && TREE_OVERFLOW (ovalue))
&& (TREE_OVERFLOW (ovalue) || TREE_CONSTANT_OVERFLOW (ovalue)))
{ {
/* Avoid clobbering a shared constant. */ if (!TREE_OVERFLOW (value))
value = copy_node (value); {
TREE_OVERFLOW (value) = TREE_OVERFLOW (ovalue); /* Avoid clobbering a shared constant. */
TREE_CONSTANT_OVERFLOW (value) = TREE_CONSTANT_OVERFLOW (ovalue); 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. */ /* Reset VALUE's overflow flags, ensuring constant sharing. */
value = build_int_cst_wide (TREE_TYPE (value), value = build_int_cst_wide (TREE_TYPE (value),
TREE_INT_CST_LOW (value), TREE_INT_CST_LOW (value),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment