Commit 207503fa by Arnaud Charlet

[multiple changes]

2012-03-30  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a
	loop entity which is rewritten as a renaming
	of the indexed array, explicitly mark the entity as needing
	debug info so that Materialize entity will be set later by
	Debug_Renaming_Declaration when the renaming is expanded.

2012-03-30  Robert Dewar  <dewar@adacore.com>

	* sem_attr.ads: Update comment.

From-SVN: r185999
parent 50421527
2012-03-30 Gary Dismukes <dismukes@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a
loop entity which is rewritten as a renaming
of the indexed array, explicitly mark the entity as needing
debug info so that Materialize entity will be set later by
Debug_Renaming_Declaration when the renaming is expanded.
2012-03-30 Robert Dewar <dewar@adacore.com>
* sem_attr.ads: Update comment.
2012-03-30 Vincent Celier <celier@adacore.com> 2012-03-30 Vincent Celier <celier@adacore.com>
* prj.ads: New Dependency_Kind: ALI_Closure. * prj.ads: New Dependency_Kind: ALI_Closure.
......
...@@ -3303,6 +3303,14 @@ package body Exp_Ch5 is ...@@ -3303,6 +3303,14 @@ package body Exp_Ch5 is
New_Reference_To (Component_Type (Array_Typ), Loc), New_Reference_To (Component_Type (Array_Typ), Loc),
Name => Ind_Comp)); Name => Ind_Comp));
-- Mark the loop variable as needing debug info, so that expansion
-- of the renaming will result in Materialize_Entity getting set via
-- Debug_Renaming_Declaration. (This setting is needed here because
-- the setting in Freeze_Entity comes after the expansion, which is
-- too late. ???)
Set_Debug_Info_Needed (Id);
-- for Index in Array loop -- for Index in Array loop
-- This case utilizes the already given iterator name -- This case utilizes the already given iterator name
......
...@@ -554,12 +554,27 @@ package Sem_Attr is ...@@ -554,12 +554,27 @@ package Sem_Attr is
------------------- -------------------
Attribute_Valid_Scalars => True, Attribute_Valid_Scalars => True,
-- Obj'Valid_Scalars applies to objects of scalar types, on which it is -- Obj'Valid_Scalars can be applied to any object. The result depends
-- equivalent to Obj'Valid, and objects of array and record types, on -- on the type of the object:
-- which it amounts to applying 'Valid to each subcomponent of Obj. It --
-- does not apply to prefixes of classwide type, or of a formal generic -- For a scalar type, the result is the same as obj'Valid
-- type that has an unknown discriminant (which could be instantiated --
-- with a classwide type). -- For an array object, the result is True if the result of applying
-- Valid_Scalars to every component is True.
--
-- For a record object, the result is True if the result of applying
-- Valid_Scalars to every component is True. For class-wide types,
-- only the components of the base type are checked. For variant
-- records, only the components actually present are checked.
--
-- For all other types, the result is always True
--
-- A warning is given for a trivially True result, when the attribute
-- is applied to an object that is not of scalar, array, or record
-- type, or in the composite case if no scalar subcomponents exist. For
-- a variant record, the warning is given only if none of the variants
-- have scalar subcomponents. In addition, the warning is suppressed
-- for private types, or generic types in an instance.
---------------- ----------------
-- Value_Size -- -- Value_Size --
......
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