From de65e0e4ecc02dc04e7ff110ade703f8e4ff03e3 Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Fri, 1 Aug 2014 10:26:57 +0200 Subject: sem_util.adb: Add guard to setting of No_Predicate_On_Actual. * sem_util.adb: Add guard to setting of No_Predicate_On_Actual. * sem_ch3.adb: Minor reformatting. From-SVN: r213422 --- gcc/ada/sem_ch3.adb | 8 ++++---- gcc/ada/sem_util.adb | 9 +++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'gcc') diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 9e8969f..a22479f 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -16804,10 +16804,10 @@ package body Sem_Ch3 is procedure Inherit_Predicate_Flags (Subt, Par : Entity_Id) is begin - Set_Has_Static_Predicate_Aspect (Subt, - Has_Static_Predicate_Aspect (Par)); - Set_Has_Dynamic_Predicate_Aspect (Subt, - Has_Dynamic_Predicate_Aspect (Par)); + Set_Has_Static_Predicate_Aspect + (Subt, Has_Static_Predicate_Aspect (Par)); + Set_Has_Dynamic_Predicate_Aspect + (Subt, Has_Dynamic_Predicate_Aspect (Par)); end Inherit_Predicate_Flags; ----------------------- diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 237cc86..7fbf48a 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -793,7 +793,9 @@ package body Sem_Util is return; end if; - if Is_Generic_Formal (Typ) then + if Is_Generic_Formal (Typ) + and then Is_Discrete_Type (Typ) + then Set_No_Predicate_On_Actual (Typ); end if; @@ -821,9 +823,11 @@ package body Sem_Util is Error_Msg_Warn := SPARK_Mode /= On; Error_Msg_FE (Msg & "<<", N, Typ); Error_Msg_F ("\Program_Error [<<", N); + Insert_Action (N, Make_Raise_Program_Error (Sloc (N), Reason => PE_Bad_Predicated_Generic_Type)); + else Error_Msg_FE (Msg & "<<", N, Typ); end if; @@ -6018,7 +6022,8 @@ package body Sem_Util is -- be a static subtype, since otherwise it would have -- been diagnosed as illegal. - elsif Is_Entity_Name (Choice) and then Is_Type (Entity (Choice)) + elsif Is_Entity_Name (Choice) and then + Is_Type (Entity (Choice)) then exit Search when Is_In_Range (Expr, Etype (Choice), Assume_Valid => False); -- cgit v1.1