Use POINTER_PLUS_EXPR for pointer types.

2010-04-04  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
	POINTER_PLUS_EXPR for pointer types.

	* gcc.dg/graphite/id-19.c: New.

From-SVN: r158027
This commit is contained in:
Sebastian Pop 2010-04-06 21:02:25 +00:00 committed by Sebastian Pop
parent bd32f344ed
commit dbe0d65216
3 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2010-04-04 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/43519
* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
POINTER_PLUS_EXPR for pointer types.
* gcc.dg/graphite/id-19.c: New.
2010-04-04 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/43519

View File

@ -1035,7 +1035,8 @@ graphite_create_new_loop_guard (sese region, edge entry_edge,
one = gmp_cst_to_tree (type, gmp_one);
value_clear (gmp_one);
ub = fold_build2 (PLUS_EXPR, type, ub, one);
ub = fold_build2 (POINTER_TYPE_P (type) ? POINTER_PLUS_EXPR : PLUS_EXPR,
type, ub, one);
cond_expr = fold_build2 (LT_EXPR, boolean_type_node, lb, ub);
exit_edge = create_empty_if_region_on_edge (entry_edge, cond_expr);

View File

@ -0,0 +1,6 @@
void byte_insert_op1 (unsigned char *loc, unsigned char *end)
{
register unsigned char *pto = end + 1 + 2;
while (end != loc)
*--pto = *--end;
}