diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/ada/contracts.adb | 4 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index cbedcc0..e1dd3eb 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,13 @@ 2018-09-26 Ed Schonberg <schonberg@adacore.com> + * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): The + analysis of preconditions specified by pragmas (rather than + aspects) is not delayed, and therefore expressions functions + that are completions do not need special handling during + expansion. + +2018-09-26 Ed Schonberg <schonberg@adacore.com> + * exp_unst.adb: Fix handling of up level references for entries. 2018-09-26 Ed Schonberg <schonberg@adacore.com> diff --git a/gcc/ada/contracts.adb b/gcc/ada/contracts.adb index 136c05c..8b18c39 100644 --- a/gcc/ada/contracts.adb +++ b/gcc/ada/contracts.adb @@ -620,7 +620,9 @@ package body Contracts is Prag := Pre_Post_Conditions (Items); while Present (Prag) loop - if Freeze_Types then + if Freeze_Types + and then Present (Corresponding_Aspect (Prag)) + then Freeze_Expr_Types (Def_Id => Subp_Id, Typ => Standard_Boolean, |