+2013-06-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (Raise_Error_to_gnu) <CE_Index_Check_Failed>:
+ Record the unpadded type of the index type on the RCI stack.
+
2013-03-06 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (emit_range_check): Assert that the range type
{
rci->low_bound = gnu_low_bound;
rci->high_bound = gnu_high_bound;
- rci->type = gnat_to_gnu_type (gnat_type);
+ rci->type = get_unpadded_type (gnat_type);
rci->invariant_cond = build1 (SAVE_EXPR, boolean_type_node,
boolean_true_node);
gnu_cond = build_binary_op (TRUTH_ANDIF_EXPR,
+2013-06-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_optimization15.ad[sb]: New test.
+
2013-03-06 Jakub Jelinek <jakub@redhat.com>
PR middle-end/56548
--- /dev/null
+-- { dg-do compile }\r
+-- { dg-options "-O3" }\r
+\r
+package body Loop_Optimization15 is\r
+\r
+ type Integer_Array_T is array (B16_T range <>) of Integer;\r
+\r
+ Len : constant B16_T := 10;\r
+\r
+ Src : constant Integer_Array_T (1 .. Len) := (others => 0);\r
+ Dst : Integer_Array_T (1 .. Len);\r
+\r
+ procedure Proc (L : B16_T) is\r
+ begin\r
+ for I in 1 .. B16_T'Min (L, Len) loop\r
+ Dst (I) := Src (I);\r
+ end loop;\r
+ end;\r
+\r
+end Loop_Optimization15;\r
--- /dev/null
+package Loop_Optimization15 is\r
+\r
+ type B16_T is mod 2 ** 16;\r
+ for B16_T'Size use 16;\r
+ for B16_T'Alignment use 1;\r
+\r
+ procedure Proc (L : B16_T);\r
+\r
+end Loop_Optimization15;\r