From: Arnaud Charlet Date: Wed, 16 Jul 2014 14:01:46 +0000 (+0200) Subject: [multiple changes] X-Git-Tag: upstream/12.2.0~62021 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6cade1b0a0c3b50e1c1d60357a948f29de016ed5;p=platform%2Fupstream%2Fgcc.git [multiple changes] 2014-07-16 Yannick Moy * sem_attr.adb (Analyze_Attribute/cases Pred and Succ): Always enable range check on fixed-point types if not suppressed for the type. 2014-07-16 Hristian Kirtchev * sem_util.adb (State_Has_Enabled_Property): Account for an external property denoted by an others choice. From-SVN: r212647 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ab74e4e..e5f0504 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2014-07-16 Yannick Moy + + * sem_attr.adb (Analyze_Attribute/cases Pred + and Succ): Always enable range check on fixed-point types if + not suppressed for the type. + +2014-07-16 Hristian Kirtchev + + * sem_util.adb (State_Has_Enabled_Property): + Account for an external property denoted by an others choice. + 2014-07-16 Hristian Kirtchev * exp_ch4.ads, exp_ch4.adb (Find_Hook_Context): Relocated to Exp_Util. diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index 5e5d0d7..bf3c3c7 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -4843,9 +4843,10 @@ package body Sem_Attr is Resolve (E1, P_Base_Type); Set_Etype (N, P_Base_Type); - -- For real types, enable range check in Check_Overflow_Mode only + -- For floating-point types, enable range check in + -- Check_Float_Overflow mode only. - if Is_Real_Type (P_Type) then + if Is_Floating_Point_Type (P_Type) then if Check_Float_Overflow and then not Range_Checks_Suppressed (P_Base_Type) then @@ -5750,9 +5751,10 @@ package body Sem_Attr is Resolve (E1, P_Base_Type); Set_Etype (N, P_Base_Type); - -- For real types, enable range check in Check_Overflow_Mode only + -- For floating-point types, enable range check in + -- Check_Float_Overflow mode only. - if Is_Real_Type (P_Type) then + if Is_Floating_Point_Type (P_Type) then if Check_Float_Overflow and then not Range_Checks_Suppressed (P_Base_Type) then diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 624687e..7bc8232 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -7430,7 +7430,14 @@ package body Sem_Util is while Present (Prop) loop Prop_Nam := First (Choices (Prop)); - if Chars (Prop_Nam) = Property then + -- The property can be represented in two ways: + -- others => + -- => + + if Nkind (Prop_Nam) = N_Others_Choice + or else (Nkind (Prop_Nam) = N_Identifier + and then Chars (Prop_Nam) = Property) + then return Is_True (Expr_Value (Expression (Prop))); end if;