diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 06259ebe1fc2..90f59f481a20 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2012-09-07 Eric Botcazou + + * gcc-interface/trans.c (Loop_Statement_to_gnu): Revert to using + size_type_node instead of sizetype. + 2012-08-19 Eric Botcazou * layout.adb (Set_Elem_Alignment): Cap the alignment of access types diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index cd35cd1b123c..4d8dac90afc6 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -2417,14 +2417,15 @@ Loop_Statement_to_gnu (Node_Id gnat_node) /* Otherwise, use the do-while form with the help of a special induction variable in the unsigned version of the base type - or the unsigned version of sizetype, whichever is the + or the unsigned version of the size type, whichever is the largest, in order to have wrap-around arithmetics for it. */ else { - if (TYPE_PRECISION (gnu_base_type) > TYPE_PRECISION (sizetype)) + if (TYPE_PRECISION (gnu_base_type) + > TYPE_PRECISION (size_type_node)) gnu_base_type = gnat_unsigned_type (gnu_base_type); else - gnu_base_type = sizetype; + gnu_base_type = size_type_node; gnu_first = convert (gnu_base_type, gnu_first); gnu_last = convert (gnu_base_type, gnu_last);