+2008-09-19 Ian Lance Taylor <iant@google.com>
+
+ * varasm.c (narrowing_initializer_constant_valid_p): Return
+ NULL_TREE if ENDTYPE is not an integer.
+
2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/30930
}
/* A subroutine of initializer_constant_valid_p. VALUE is either a
- MINUS_EXPR or a POINTER_PLUS_EXPR, and ENDTYPE is a narrowing
- conversion to something smaller than a pointer. This returns
- null_pointer_node if the resulting value is an absolute constant
+ MINUS_EXPR or a POINTER_PLUS_EXPR. This looks for cases of VALUE
+ which are valid when ENDTYPE is an integer of any size; in
+ particular, this does not accept a pointer minus a constant. This
+ returns null_pointer_node if the VALUE is an absolute constant
which can be used to initialize a static variable. Otherwise it
returns NULL. */
{
tree op0, op1;
+ if (!INTEGRAL_TYPE_P (endtype))
+ return NULL_TREE;
+
op0 = TREE_OPERAND (value, 0);
op1 = TREE_OPERAND (value, 1);