Commit 646e2823 by Arnaud Charlet

[multiple changes]

2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* sinfo.ads, sem_ch7.adb: Minor reformatting.

2011-08-29  Bob Duff  <duff@adacore.com>

	* sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
	restriction on allocators, as required by AI05-0013-1.
	* restrict.ads: Minor comment fix.

From-SVN: r178198
parent 5d59eef2
2011-08-29 Thomas Quinot <quinot@adacore.com>
* sinfo.ads, sem_ch7.adb: Minor reformatting.
2011-08-29 Bob Duff <duff@adacore.com>
* sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
restriction on allocators, as required by AI05-0013-1.
* restrict.ads: Minor comment fix.
2011-08-29 Tristan Gingold <gingold@adacore.com> 2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb * a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb
......
...@@ -39,7 +39,7 @@ package Restrict is ...@@ -39,7 +39,7 @@ package Restrict is
-- consistency, restrictions found in any with'ed units, parent specs -- consistency, restrictions found in any with'ed units, parent specs
-- etc., since we may as well check as much as we can at compile time. -- etc., since we may as well check as much as we can at compile time.
-- These variables should not be referenced directly by clients. Instead -- These variables should not be referenced directly by clients. Instead
-- use Check_Restrictions to record a violation of a restriction, and -- use Check_Restriction to record a violation of a restriction, and
-- Restriction_Active to test if a given restriction is active. -- Restriction_Active to test if a given restriction is active.
Restrictions_Loc : array (All_Restrictions) of Source_Ptr := Restrictions_Loc : array (All_Restrictions) of Source_Ptr :=
......
...@@ -702,6 +702,16 @@ package body Sem_Ch4 is ...@@ -702,6 +702,16 @@ package body Sem_Ch4 is
Check_Restriction (No_Task_Allocators, N); Check_Restriction (No_Task_Allocators, N);
end if; end if;
-- AI05-0013-1: No_Nested_Finalization forbids allocators if the access
-- type is nested, and the designated type needs finalization. The rule
-- is conservative in that class-wide types need finalization.
if Needs_Finalization (Designated_Type (Acc_Type))
and then not Is_Library_Level_Entity (Acc_Type)
then
Check_Restriction (No_Nested_Finalization, N);
end if;
-- Check that an allocator of a nested access type doesn't create a -- Check that an allocator of a nested access type doesn't create a
-- protected object when restriction No_Local_Protected_Objects applies. -- protected object when restriction No_Local_Protected_Objects applies.
-- We don't have an equivalent to Has_Task for protected types, so only -- We don't have an equivalent to Has_Task for protected types, so only
......
...@@ -1195,7 +1195,8 @@ package body Sem_Ch7 is ...@@ -1195,7 +1195,8 @@ package body Sem_Ch7 is
while Present (E) loop while Present (E) loop
-- Check on incomplete types -- Check on incomplete types
-- AI05-213 : a formal incomplete type has no completion.
-- AI05-0213: a formal incomplete type has no completion
if Ekind (E) = E_Incomplete_Type if Ekind (E) = E_Incomplete_Type
and then No (Full_View (E)) and then No (Full_View (E))
......
...@@ -943,11 +943,11 @@ package Sinfo is ...@@ -943,11 +943,11 @@ package Sinfo is
-- there is no requirement that these match, and there are obscure cases -- there is no requirement that these match, and there are obscure cases
-- of generated code where they do not match. -- of generated code where they do not match.
-- Note: Aspect specifications, introduced in Ada2012, require additional -- Note: Ada 2012 aspect specifications require additional links between
-- links between identifiers and various attributes. These attributes -- identifiers and various attributes. These attributes can be of
-- can be of arbitrary types, and the entity field of identifiers that -- arbitrary types, and the entity field of identifiers that denote
-- denote aspects must be used to store arbitrary expressions for later -- aspects must be used to store arbitrary expressions for later semantic
-- semantic checks. See section on Aspect specifications for details. -- checks. See section on aspect specifications for details.
-- Entity_Or_Associated_Node (Node4-Sem) -- Entity_Or_Associated_Node (Node4-Sem)
-- A synonym for both Entity and Associated_Node. Used by convention in -- A synonym for both Entity and Associated_Node. Used by convention in
...@@ -6237,9 +6237,9 @@ package Sinfo is ...@@ -6237,9 +6237,9 @@ package Sinfo is
-- | FORMAL_INTERFACE_TYPE_DEFINITION -- | FORMAL_INTERFACE_TYPE_DEFINITION
-- | FORMAL_INCOMPLETE_TYPE_DEFINITION -- | FORMAL_INCOMPLETE_TYPE_DEFINITION
-- The Ada2012 syntax introduces two new non-terminals; -- The Ada 2012 syntax introduces two new non-terminals:
-- Formal_[Complete_| Incomplete_] Type_Declaration just to introduce -- Formal_{Complete,Incomplete}_Type_Declaration just to introduce
-- the later category. Here we introduce an incomplete type definition -- the latter category. Here we introduce an incomplete type definition
-- in order to preserve as much as possible the existing structure. -- in order to preserve as much as possible the existing structure.
--------------------------------------------- ---------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment