summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch6.adb
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2008-05-20 14:50:03 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-05-20 14:50:03 +0200
commit3393111257f2c11710a7dc704846581a481c0309 (patch)
treee95ee33f3a1608a26e20f6a70edd8aff99af7f13 /gcc/ada/sem_ch6.adb
parentde5cd98e3ba2dd0303d2242c9431343aef530441 (diff)
downloadgcc-3393111257f2c11710a7dc704846581a481c0309.tar.gz
2008-05-20 Javier Miranda <miranda@adacore.com>
Ed Schonberg <schonberg@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb (Analyze_Object_Declaration): Fix over-conservative condition restricting use of predefined assignment with tagged types that have convention CPP. (Analyze_Object_Declaration): Relax the check regarding deferred constants declared in scopes other than packages since they can be completed with pragma Import. Add missing escaping of all-caps word 'CPP' in error messages. (Build_Discriminated_Subtype): Do not inherit representation clauses from parent type if subtype already carries them, because they are inherited earlier during derivation and already include those that may come from a partial view. * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body): Check the declarations of a subprogram body for proper deferred constant completion. * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Moved to sem_util. From-SVN: r135638
Diffstat (limited to 'gcc/ada/sem_ch6.adb')
-rw-r--r--gcc/ada/sem_ch6.adb6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index fbac48cd1af..b4b1dcf9e04 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -1257,10 +1257,10 @@ package body Sem_Ch6 is
procedure Analyze_Subprogram_Body (N : Node_Id) is
Loc : constant Source_Ptr := Sloc (N);
+ Body_Deleted : constant Boolean := False;
Body_Spec : constant Node_Id := Specification (N);
Body_Id : Entity_Id := Defining_Entity (Body_Spec);
Prev_Id : constant Entity_Id := Current_Entity_In_Scope (Body_Id);
- Body_Deleted : constant Boolean := False;
Conformant : Boolean;
HSS : Node_Id;
Missing_Ret : Boolean;
@@ -1369,7 +1369,8 @@ package body Sem_Ch6 is
Plist : List_Id;
function Is_Inline_Pragma (N : Node_Id) return Boolean;
- -- Simple predicate, used twice.
+ -- True when N is a pragma Inline or Inline_Awlays that applies
+ -- to this subprogram.
-----------------------
-- Is_Inline_Pragma --
@@ -2045,6 +2046,7 @@ package body Sem_Ch6 is
-- Check completion, and analyze the statements
Check_Completion;
+ Inspect_Deferred_Constant_Completion (Declarations (N));
Analyze (HSS);
-- Deal with end of scope processing for the body