diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-03-30 11:17:34 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-03-30 11:17:34 +0200 |
commit | 207503fa5116448fe49b518a7f04e120bdf5b807 (patch) | |
tree | f86306f51df58e1ad978e47bd546039cc69d6053 /gcc | |
parent | 50421527ecf401ca7668048d0fe599bd043f776f (diff) | |
download | gcc-207503fa5116448fe49b518a7f04e120bdf5b807.tar.gz |
[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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/ada/exp_ch5.adb | 8 | ||||
-rw-r--r-- | gcc/ada/sem_attr.ads | 27 |
3 files changed, 41 insertions, 6 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 79cbb4a3b46..9c109092788 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,15 @@ +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> * prj.ads: New Dependency_Kind: ALI_Closure. diff --git a/gcc/ada/exp_ch5.adb b/gcc/ada/exp_ch5.adb index 6d00dc806ae..349745616b4 100644 --- a/gcc/ada/exp_ch5.adb +++ b/gcc/ada/exp_ch5.adb @@ -3303,6 +3303,14 @@ package body Exp_Ch5 is New_Reference_To (Component_Type (Array_Typ), Loc), 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 -- This case utilizes the already given iterator name diff --git a/gcc/ada/sem_attr.ads b/gcc/ada/sem_attr.ads index 71ac668c757..45e1bc05acb 100644 --- a/gcc/ada/sem_attr.ads +++ b/gcc/ada/sem_attr.ads @@ -554,12 +554,27 @@ package Sem_Attr is ------------------- Attribute_Valid_Scalars => True, - -- Obj'Valid_Scalars applies to objects of scalar types, on which it is - -- equivalent to Obj'Valid, and objects of array and record types, on - -- 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 - -- type that has an unknown discriminant (which could be instantiated - -- with a classwide type). + -- Obj'Valid_Scalars can be applied to any object. The result depends + -- on the type of the object: + -- + -- For a scalar type, the result is the same as obj'Valid + -- + -- 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 -- |