diff options
Diffstat (limited to 'gcc/ada/exp_ch6.adb')
-rw-r--r-- | gcc/ada/exp_ch6.adb | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index de2ded8..724e82a 100644 --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -1743,10 +1743,6 @@ package body Exp_Ch6 is -- be handled separately because the name does not denote an -- overloadable entity. - -- If the formal is class-wide the corresponding postcondition - -- procedure does not include a predicate call, so it has to be - -- generated explicitly. - if not Is_Init_Proc (Subp) and then (Has_Aspect (E_Actual, Aspect_Predicate) or else @@ -1755,21 +1751,8 @@ package body Exp_Ch6 is Has_Aspect (E_Actual, Aspect_Static_Predicate)) and then Present (Predicate_Function (E_Actual)) then - if Is_Entity_Name (Actual) - or else - (Is_Derived_Type (E_Actual) - and then Is_Overloadable (Subp) - and then Is_Inherited_Operation_For_Type (Subp, E_Actual)) - then - Append_To (Post_Call, - Make_Predicate_Check (E_Actual, Actual)); - - elsif Is_Class_Wide_Type (E_Formal) - and then not Is_Class_Wide_Type (E_Actual) - then - Append_To (Post_Call, - Make_Predicate_Check (E_Actual, Actual)); - end if; + Append_To (Post_Call, + Make_Predicate_Check (E_Actual, Actual)); end if; -- Processing for IN parameters |