OSDN Git Service

Use POINTER_PLUS_EXPR for pointer types.
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Apr 2010 21:02:25 +0000 (21:02 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Apr 2010 21:02:25 +0000 (21:02 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158027 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog.graphite
gcc/graphite-clast-to-gimple.c
gcc/testsuite/gcc.dg/graphite/id-19.c [new file with mode: 0644]

index a24f499..89e1a0a 100644 (file)
@@ -1,6 +1,14 @@
 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
        * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
        * graphite-clast-to-gimple.c: Include langhooks.h.
        (max_signed_precision_type): New.
index 6aab2a5..106ff7c 100644 (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);
diff --git a/gcc/testsuite/gcc.dg/graphite/id-19.c b/gcc/testsuite/gcc.dg/graphite/id-19.c
new file mode 100644 (file)
index 0000000..b0d626b
--- /dev/null
@@ -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;
+}