summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_res.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-23 09:53:23 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-23 09:53:23 +0000
commitf2780d56ec17d5a0c219b94561a43133f4dd1873 (patch)
tree7707a1974f10354ae188d09877f6b574d4ca66aa /gcc/ada/sem_res.adb
parent0fd13d3221f9184a1ab3d0cb98b7840c095216e6 (diff)
downloadgcc-f2780d56ec17d5a0c219b94561a43133f4dd1873.tar.gz
2013-04-23 Vincent Celier <celier@adacore.com>
* prj-part.ads, prj-conf.ads: Minor comment updates. 2013-04-23 Ed Schonberg <schonberg@adacore.com> * einfo.adb (Predicate_Function): For a private type, retrieve predicate function from full view. * aspects.adb (Find_Aspect): Ditto. * exp_ch6.adb (Expand_Actuals): If the formal is class-wide and the actual is a definite type, apply predicate check after call. * sem_res.adb: Do not apply a predicate check before the call to a generated Init_Proc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198185 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_res.adb')
-rw-r--r--gcc/ada/sem_res.adb7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index db6ecf7ecfb..ee2483bc53b 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -3946,12 +3946,13 @@ package body Sem_Res is
-- Apply predicate checks, unless this is a call to the
-- predicate check function itself, which would cause an
- -- infinite recursion.
+ -- infinite recursion, or it is a call to an initialization
+ -- procedure whose operand is of course an unfinished object.
if not (Ekind (Nam) = E_Function
and then (Is_Predicate_Function (Nam)
- or else
- Is_Predicate_Function_M (Nam)))
+ or else Is_Predicate_Function_M (Nam)))
+ and then not Is_Init_Proc (Nam)
then
Apply_Predicate_Check (A, F_Typ);
end if;