[gcc/devel/gccgo] [Ada] Link failure with call to expression function in precondition
Ian Lance Taylor
ian@gcc.gnu.org
Sun Jul 12 19:34:01 GMT 2020
https://gcc.gnu.org/g:9aa63bdded3b3aa7f4497cf5326e71fc03fda106
commit 9aa63bdded3b3aa7f4497cf5326e71fc03fda106
Author: Ed Schonberg <schonberg@adacore.com>
Date: Mon Mar 30 08:26:27 2020 -0400
[Ada] Link failure with call to expression function in precondition
2020-06-15 Ed Schonberg <schonberg@adacore.com>
gcc/ada/
* freeze.adb (Freeze_Expression): When traversing the tree
looking for the proper insertion point for the freeze node of an
entity that is declared in an outer scope, set the candidate
subprogram body node properly. Previous code has an off-by-one
error.
Diff:
---
gcc/ada/freeze.adb | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index 760cf7c1d53..ea1274e7c77 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -7379,10 +7379,16 @@ package body Freeze is
return;
end if;
- exit when
- Nkind (Parent_P) = N_Subprogram_Body
+ -- If the parent is a subprogram body, the candidate insertion
+ -- point is just ahead of it.
+
+ if Nkind (Parent_P) = N_Subprogram_Body
and then Unique_Defining_Entity (Parent_P) =
- Freeze_Outside_Subp;
+ Freeze_Outside_Subp
+ then
+ P := Parent_P;
+ exit;
+ end if;
P := Parent_P;
end loop;
More information about the Gcc-cvs
mailing list