From 79b49b879d3d96c1c7761b2d114dcdfaf7ceaad0 Mon Sep 17 00:00:00 2001 From: Hristian Kirtchev Date: Thu, 6 Feb 2014 10:26:32 +0000 Subject: sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local variable Spec. 2014-02-06 Hristian Kirtchev * sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local variable Spec. Do not inherit the null indicator from the subprogram body when generating the spec. From-SVN: r207548 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/sem_ch3.adb | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'gcc/ada') diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 463e268..26164ba 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2014-02-06 Hristian Kirtchev + + * sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local + variable Spec. Do not inherit the null indicator from the + subprogram body when generating the spec. + 2014-02-06 Robert Dewar * casing.adb (Determine_Casing): Consider SPARK_Mode to be diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 2f6eedb..e20f9f1 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -2110,6 +2110,7 @@ package body Sem_Ch3 is Loc : constant Source_Ptr := Sloc (Body_Id); Params : constant List_Id := Parameter_Specifications (Body_Spec); + Spec : Node_Id; Spec_Id : Entity_Id; Dummy : Entity_Id; @@ -2156,9 +2157,17 @@ package body Sem_Ch3 is -- use of Copy_Separate_Tree - we want an entirely separate semantic -- tree in this case. + Spec := Copy_Separate_Tree (Body_Spec); + + -- Ensure that the subprogram declaration does not inherit the null + -- indicator from the body as we now have a proper spec and body + -- pair. + + Set_Null_Present (Spec, False); + Insert_Before_And_Analyze (Body_Decl, Make_Subprogram_Declaration (Loc, - Specification => Copy_Separate_Tree (Body_Spec))); + Specification => Spec)); end Handle_Late_Controlled_Primitive; -------------------------------- -- cgit v1.1