diff options
author | Arnaud Charlet <charlet@adacore.com> | 2020-07-09 05:36:18 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-10-19 05:53:39 -0400 |
commit | 44ecd94cc7daf60ed04a81107c8d52c23cfef84d (patch) | |
tree | f31c15254dbde216d8d5cb3318c52d6bbd165df9 /gcc | |
parent | b0a16e6d4c91120dd9a2900da0831e83e65f2046 (diff) | |
download | gcc-44ecd94cc7daf60ed04a81107c8d52c23cfef84d.zip gcc-44ecd94cc7daf60ed04a81107c8d52c23cfef84d.tar.gz gcc-44ecd94cc7daf60ed04a81107c8d52c23cfef84d.tar.bz2 |
[Ada] Wrong freezing for expression function with contracts in a generic
gcc/ada/
* contracts.adb (Process_Preconditions_For): Do not exclude
instances.
* sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious
warning on internally generated variables.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/contracts.adb | 3 | ||||
-rw-r--r-- | gcc/ada/sem_ch4.adb | 1 |
2 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ada/contracts.adb b/gcc/ada/contracts.adb index 9d3e9e9..666a57f 100644 --- a/gcc/ada/contracts.adb +++ b/gcc/ada/contracts.adb @@ -2590,8 +2590,7 @@ package body Contracts is and then Sloc (Body_Id) /= Sloc (Subp_Id) and then In_Same_Source_Unit (Body_Id, Subp_Id) and then List_Containing (Body_Decl) /= - List_Containing (Subp_Decl) - and then not In_Instance; + List_Containing (Subp_Decl); if Present (Items) then Prag := Pre_Post_Conditions (Items); diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index c92fb06..beb981d 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -4220,6 +4220,7 @@ package body Sem_Ch4 is if Warn_On_Suspicious_Contract and then not Referenced (Loop_Id, Cond) + and then not Is_Internal_Name (Chars (Loop_Id)) then -- Generating C, this check causes spurious warnings on inlined -- postconditions; we can safely disable it because this check |