diff options
| author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-23 09:17:56 +0000 |
|---|---|---|
| committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-23 09:17:56 +0000 |
| commit | b272f0e36bb0736ec6ce8670c1511dfd3434daa8 (patch) | |
| tree | 7aacfef1a126574402faee123141f699f8cb4a61 | |
| parent | 9af28f615e1fbe0d1d00a94ce96af3a4108b8879 (diff) | |
| download | ppe42-gcc-b272f0e36bb0736ec6ce8670c1511dfd3434daa8.tar.gz ppe42-gcc-b272f0e36bb0736ec6ce8670c1511dfd3434daa8.zip | |
2009-07-23 Olivier Hainque <hainque@adacore.com>
* gnat_rm.texi: Document the GNAT.SSE units.
2009-07-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Return_Type): Do not create itype reference for
not null return if it appears on a subunit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149979 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ada/ChangeLog | 9 | ||||
| -rw-r--r-- | gcc/ada/gnat_rm.texi | 21 | ||||
| -rw-r--r-- | gcc/ada/sem_ch6.adb | 25 |
3 files changed, 46 insertions, 9 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index b9d9baf15f4..2451727bb40 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,12 @@ +2009-07-23 Olivier Hainque <hainque@adacore.com> + + * gnat_rm.texi: Document the GNAT.SSE units. + +2009-07-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Return_Type): Do not create itype reference for + not null return if it appears on a subunit. + 2009-07-23 Robert Dewar <dewar@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement): Do left-side validity diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index a17d45471c9..1f26563397b 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -381,6 +381,8 @@ The GNAT Library * GNAT.Spitbol.Table_Boolean (g-sptabo.ads):: * GNAT.Spitbol.Table_Integer (g-sptain.ads):: * GNAT.Spitbol.Table_VString (g-sptavs.ads):: +* GNAT.SSE (g-sse.ads):: +* GNAT.SSE.Vector_Types (g-ssvety.ads):: * GNAT.Strings (g-string.ads):: * GNAT.String_Split (g-strspl.ads):: * GNAT.Table (g-table.ads):: @@ -13568,6 +13570,8 @@ of GNAT, and will generate a warning message. * GNAT.Spitbol.Table_Boolean (g-sptabo.ads):: * GNAT.Spitbol.Table_Integer (g-sptain.ads):: * GNAT.Spitbol.Table_VString (g-sptavs.ads):: +* GNAT.SSE (g-sse.ads):: +* GNAT.SSE.Vector_Types (g-ssvety.ads):: * GNAT.Strings (g-string.ads):: * GNAT.String_Split (g-strspl.ads):: * GNAT.Table (g-table.ads):: @@ -14627,6 +14631,23 @@ A library level of instantiation of @code{GNAT.Spitbol.Patterns.Table} for a variable length string type, giving an implementation of general maps from strings to strings. +@node GNAT.SSE (g-sse.ads) +@section @code{GNAT.SSE} (@file{g-sse.ads}) +@cindex @code{GNAT.SSE} (@file{g-sse.ads}) + +@noindent +Root of a set of units aimed at offering Ada bindings to a subset of +the Intel(r) Streaming SIMD Extensions with GNAT on the x86 family of +targets. It exposes vector component types together with a general +introduction to the binding contents and use. + +@node GNAT.SSE.Vector_Types (g-ssvety.ads) +@section @code{GNAT.SSE.Vector_Types} (@file{g-ssvety.ads}) +@cindex @code{GNAT.SSE.Vector_Types} (@file{g-ssvety.ads}) + +@noindent +SSE vector types for use with SSE related intrinsics. + @node GNAT.Strings (g-string.ads) @section @code{GNAT.Strings} (@file{g-string.ads}) @cindex @code{GNAT.Strings} (@file{g-string.ads}) diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index 2b3256824b0..7d4bcd15211 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -592,10 +592,10 @@ package body Sem_Ch6 is elsif Covers (Base_Type (R_Type), Base_Type (R_Stm_Type)) or else (Is_Underlying_Record_View (Base_Type (R_Stm_Type)) - and then - Covers - (Base_Type (R_Type), - Underlying_Record_View (Base_Type (R_Stm_Type)))) + and then + Covers + (Base_Type (R_Type), + Underlying_Record_View (Base_Type (R_Stm_Type)))) then -- A null exclusion may be present on the return type, on the -- function specification, on the object declaration or on the @@ -1317,16 +1317,23 @@ package body Sem_Ch6 is -- force elaboration must be attached to the freezing of -- the base type. + -- If the return specification appears on a proper body, + -- the subtype will have been created already on the spec. + if Is_Frozen (Typ) then - Build_Itype_Reference - (Etype (Designator), Parent (N)); + if Nkind (Parent (N)) = N_Subprogram_Body + and then Nkind (Parent (Parent (N))) = N_Subunit + then + null; + else + Build_Itype_Reference (Etype (Designator), Parent (N)); + end if; + else Ensure_Freeze_Node (Typ); declare - IR : constant Node_Id := - Make_Itype_Reference (Sloc (N)); - + IR : constant Node_Id := Make_Itype_Reference (Sloc (N)); begin Set_Itype (IR, Etype (Designator)); Append_Freeze_Actions (Typ, New_List (IR)); |

