diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-06 10:20:41 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-06 10:20:41 +0000 |
commit | f6aa36b95e2607c6fbeccb22230fc5dd9d8486d4 (patch) | |
tree | 44faecf9685467f3cfe0c70f98f98c4a7e9d1616 /gcc/ada/einfo.adb | |
parent | 50a0a4ff35114569fdf745888f9a2df3e85073bf (diff) | |
download | gcc-f6aa36b95e2607c6fbeccb22230fc5dd9d8486d4.tar.gz |
2012-11-06 Robert Dewar <dewar@adacore.com>
* par_sco.adb, bindgen.adb, exp_vfpt.adb, exp_vfpt.ads, exp_ch2.adb,
errout.adb, sem_ch8.adb: Minor reformatting.
2012-11-06 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb: Include Loop_Entry_Attributes to the list of
Node/List/Elist10 usage.
(Loop_Entry_Attributes): New routine.
(Set_Loop_Entry_Attributes): New routine.
(Write_Field10_Name): Add an output string for Loop_Entry_Attributes.
* einfo.ads: Define new attribute Loop_Entry_Attributes along
with its usage in nodes.
(Loop_Entry_Attributes): New routine and dedicated pragma Inline.
(Set_Loop_Entry_Attributes): New routine and dedicated pragma Inline.
* exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
Attribute_Loop_Entry here.
* exp_ch5.adb: Add with and use clause for Elists;
(Expand_Loop_Entry_Attributes): New routine.
(Expand_N_Loop_Statement): Add a call to Expand_Loop_Entry_Attributes.
* exp_prag.adb (Expand_Pragma_Loop_Assertion): Specialize the
search to include multiple nested loops produced by the expansion
of Ada 2012 array iterator.
* sem_attr.adb: Add with and use clause for Elists.
(Analyze_Attribute): Check the legality of attribute Loop_Entry.
(Resolve_Attribute): Nothing to do for Loop_Entry.
(S14_Attribute): New routine.
* snames.ads-tmpl: Add a comment on entries marked with
HiLite. Add new name Name_Loop_Entry. Add new attribute
Attribute_Loop_Entry.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193227 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/einfo.adb')
-rw-r--r-- | gcc/ada/einfo.adb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb index bfa7593dc5d..7e3073ef384 100644 --- a/gcc/ada/einfo.adb +++ b/gcc/ada/einfo.adb @@ -33,6 +33,7 @@ pragma Style_Checks (All_Checks); -- Turn off subprogram ordering, not used for this unit with Atree; use Atree; +with Errout; use Errout; with Namet; use Namet; with Nlists; use Nlists; with Output; use Output; @@ -90,6 +91,7 @@ package body Einfo is -- Discriminal_Link Node10 -- Float_Rep Uint10 (but returns Float_Rep_Kind) -- Handler_Records List10 + -- Loop_Entry_Attributes Elist10 -- Normalized_Position_Max Uint10 -- Component_Bit_Offset Uint11 @@ -2246,6 +2248,12 @@ package body Einfo is return Node16 (Id); end Lit_Strings; + function Loop_Entry_Attributes (Id : E) return L is + begin + pragma Assert (Ekind (Id) = E_Loop); + return Elist10 (Id); + end Loop_Entry_Attributes; + function Low_Bound_Tested (Id : E) return B is begin return Flag205 (Id); @@ -4791,6 +4799,12 @@ package body Einfo is Set_Node16 (Id, V); end Set_Lit_Strings; + procedure Set_Loop_Entry_Attributes (Id : E; V : L) is + begin + pragma Assert (Ekind (Id) = E_Loop); + Set_Elist10 (Id, V); + end Set_Loop_Entry_Attributes; + procedure Set_Low_Bound_Tested (Id : E; V : B := True) is begin pragma Assert (Is_Formal (Id)); @@ -6967,6 +6981,7 @@ package body Einfo is -- previous errors. elsif No (Etyp) then + Cascaded_Error; return T; elsif Is_Private_Type (T) and then Etyp = Full_View (T) then @@ -7874,6 +7889,9 @@ package body Einfo is E_Procedure => Write_Str ("Handler_Records"); + when E_Loop => + Write_Str ("Loop_Entry_Attributes"); + when E_Component | E_Discriminant => Write_Str ("Normalized_Position_Max"); |