From b98bd80dcf9d82564a9f38930c87121910d7505f Mon Sep 17 00:00:00 2001 From: Robert Dewar Date: Mon, 26 May 2008 11:41:03 +0200 Subject: [PATCH] 2008-05-26 Robert Dewar * exp_ch2.adb: (Expand_Current_Value): Properly type generated integer literal From-SVN: r135904 --- gcc/ada/exp_ch2.adb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gcc/ada/exp_ch2.adb b/gcc/ada/exp_ch2.adb index 6093f2a7333..3825405dccf 100644 --- a/gcc/ada/exp_ch2.adb +++ b/gcc/ada/exp_ch2.adb @@ -193,13 +193,21 @@ package body Exp_Ch2 is Unchecked_Convert_To (T, New_Occurrence_Of (Entity (Val), Loc))); - -- Otherwise get the value, and convert to appropriate type + -- If constant is of an integer type, just make an appropriately + -- integer literal, which will get the proper type. + + elsif Is_Integer_Type (T) then + Rewrite (N, + Make_Integer_Literal (Loc, + Intval => Expr_Rep_Value (Val))); + + -- Otherwise do unchecked conversion of value to right type else Rewrite (N, Unchecked_Convert_To (T, - Make_Integer_Literal (Loc, - Intval => Expr_Rep_Value (Val)))); + Make_Integer_Literal (Loc, + Intval => Expr_Rep_Value (Val)))); end if; Analyze_And_Resolve (N, T); -- 2.30.2