trans.c (Raise_Error_to_gnu): Record the unpadded type of the index type on the RCI stack.

* gcc-interface/trans.c (Raise_Error_to_gnu) <CE_Index_Check_Failed>:
	Record the unpadded type of the index type on the RCI stack.

From-SVN: r196504
This commit is contained in:
Eric Botcazou 2013-03-06 17:49:33 +00:00 committed by Eric Botcazou
parent b6ea6dbdc0
commit 6f71e355eb
5 changed files with 39 additions and 1 deletions

View file

@ -1,3 +1,8 @@
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

View file

@ -4944,7 +4944,7 @@ Raise_Error_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p)
{
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,

View file

@ -1,3 +1,7 @@
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

View file

@ -0,0 +1,20 @@
-- { dg-do compile }
-- { dg-options "-O3" }
package body Loop_Optimization15 is
type Integer_Array_T is array (B16_T range <>) of Integer;
Len : constant B16_T := 10;
Src : constant Integer_Array_T (1 .. Len) := (others => 0);
Dst : Integer_Array_T (1 .. Len);
procedure Proc (L : B16_T) is
begin
for I in 1 .. B16_T'Min (L, Len) loop
Dst (I) := Src (I);
end loop;
end;
end Loop_Optimization15;

View file

@ -0,0 +1,9 @@
package Loop_Optimization15 is
type B16_T is mod 2 ** 16;
for B16_T'Size use 16;
for B16_T'Alignment use 1;
procedure Proc (L : B16_T);
end Loop_Optimization15;