diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 07590027b67..d0a953d6146 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2009-04-07 Eric Botcazou + + * gcc-interface/trans.c (Attribute_to_gnu) : + Do not convert the result. Remove obsolete comment. + 2009-04-07 Eric Botcazou * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index ec3ec31274a..b505c887b6c 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -1390,16 +1390,9 @@ Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, int attribute) gnu_result_type = get_unpadded_type (Etype (gnat_node)); - /* Always perform division using unsigned arithmetic as the size cannot - be negative, but may be an overflowed positive value. This provides - correct results for sizes up to 512 MB. - - ??? Size should be calculated in storage elements directly. */ - if (attribute == Attr_Max_Size_In_Storage_Elements) - gnu_result = convert (sizetype, - fold_build2 (CEIL_DIV_EXPR, bitsizetype, - gnu_result, bitsize_unit_node)); + gnu_result = fold_build2 (CEIL_DIV_EXPR, bitsizetype, + gnu_result, bitsize_unit_node); break; case Attr_Alignment: