sem_ch6.ads, [...] (Analyze_Subprogram_Declaration): A null procedure cannot be a protected operation (it is a basic_declaration...
2006-10-31 Ed Schonberg <schonberg@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> Bob Duff <duff@adacore.com> * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null procedure cannot be a protected operation (it is a basic_declaration, not a subprogram_declaration). (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_ Subp. Add logic for entry processing. (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity. Determine whether an entry or subprogram of a protected or task type override an inherited primitive of an implemented interface. (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding. Update the actual used in calls to Check_Overriding_Indicator. (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit, generate the proper reference to the parent unit, for cross-reference. (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with Is_Formal. Add -gnatd.l --Use Ada 95 semantics for limited function returns, (Add_Extra_Formal): Revise procedure to allow passing in associated entity, scope, and name suffix, and handle setting of the new Extra_Formals field. (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to pass new parameters. Add support for adding the new extra access formal for functions whose calls are treated as build-in-place. (Analyze_A_Return_Statement): Correct casing in error message. Move Pop_Scope to after Analyze_Function_Return, because an extended return statement really is a full-fledged scope. Otherwise, visibility doesn't work right. Correct use of "\" for continuation messages. (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than evilly trying to call Analyze_Object_Declaration directly. Otherwise, the node doesn't get properly marked as analyzed. (Analyze_Subprogram_Body): If subprogram is a function that returns an anonymous access type that denotes a task, build a Master Entity for it. (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify proper usage of null exclusion in a result definition. (Process_Formals): Code cleanup and new error message. (Process_Formals): Detect incorrect application of null exclusion to non-access types. (Conforming_Types): Handle conformance between [sub]types and itypes generated for entities that have null exclusions applied to them. (Maybe_Primitive_Operation): Add an additional type retrieval when the base type is an access subtype. This case arrises with null exclusions. (New_Overloaded_Entity): Do not remove the overriden entity from the homonym chain if it corresponds with an abstract interface primitive. (Process_Formals): Replace membership test agains Incomplete_Kind with a call to the synthesized predicate Is_Incomplete_Type. (Analyze_Subprogram_Body): Check wrong placement of abstract interface primitives. (Analyze_Subprogram_Declaration): Check that abstract interface primitives are abstract or null. (Analyze_Subprogram_Specification): Remove previous check for abstract interfaces because it was not complete. (Has_Interface_Formals): Removed. From-SVN: r118304
This commit is contained in:
parent
2a806772b8
commit
ec4867fab9
2 changed files with 1094 additions and 231 deletions
1317
gcc/ada/sem_ch6.adb
1317
gcc/ada/sem_ch6.adb
File diff suppressed because it is too large
Load diff
|
@ -6,7 +6,7 @@
|
|||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2006, Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- GNAT is free software; you can redistribute it and/or modify it under --
|
||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||
|
@ -28,6 +28,7 @@ with Types; use Types;
|
|||
package Sem_Ch6 is
|
||||
|
||||
procedure Analyze_Abstract_Subprogram_Declaration (N : Node_Id);
|
||||
procedure Analyze_Extended_Return_Statement (N : Node_Id);
|
||||
procedure Analyze_Function_Call (N : Node_Id);
|
||||
procedure Analyze_Operator_Symbol (N : Node_Id);
|
||||
procedure Analyze_Parameter_Association (N : Node_Id);
|
||||
|
@ -48,6 +49,11 @@ package Sem_Ch6 is
|
|||
-- If Subp is not Always_Inlined, then a warning is issued if the flag
|
||||
-- Ineffective_Inline_Warnings is set, and if not, the call has no effect.
|
||||
|
||||
procedure Check_Conventions (Typ : Entity_Id);
|
||||
-- Ada 2005 (AI-430): Check that the conventions of all inherited and
|
||||
-- overridden dispatching operations of type Typ are consistent with
|
||||
-- their respective counterparts.
|
||||
|
||||
procedure Check_Delayed_Subprogram (Designator : Entity_Id);
|
||||
-- Designator can be a E_Subrpgram_Type, E_Procedure or E_Function. If a
|
||||
-- type in its profile depends on a private type without a full
|
||||
|
|
Loading…
Add table
Reference in a new issue