c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not PLUS_EXPR.

* c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
	PLUS_EXPR.

From-SVN: r184965
This commit is contained in:
Bernd Schmidt 2012-03-05 22:48:30 +00:00 committed by Bernd Schmidt
parent 3b1552c135
commit 5de724244f
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2012-03-05 Bernd Schmidt <bernds@codesourcery.com>
* c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
PLUS_EXPR.
2012-03-05 Richard Henderson <rth@redhat.com>
* genemit.c (main): Include "target.h" in insn-emit.c.

View File

@ -3447,7 +3447,9 @@ pointer_diff (location_t loc, tree op0, tree op1)
else
con1 = op1;
if (TREE_CODE (con0) == PLUS_EXPR)
gcc_assert (TREE_CODE (con0) != PLUS_EXPR
&& TREE_CODE (con1) != PLUS_EXPR);
if (TREE_CODE (con0) == POINTER_PLUS_EXPR)
{
lit0 = TREE_OPERAND (con0, 1);
con0 = TREE_OPERAND (con0, 0);
@ -3455,7 +3457,7 @@ pointer_diff (location_t loc, tree op0, tree op1)
else
lit0 = integer_zero_node;
if (TREE_CODE (con1) == PLUS_EXPR)
if (TREE_CODE (con1) == POINTER_PLUS_EXPR)
{
lit1 = TREE_OPERAND (con1, 1);
con1 = TREE_OPERAND (con1, 0);