Commit 212863c0 by Arnaud Charlet

[multiple changes]

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.

From-SVN: r149979
parent 97cb64f0
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> 2009-07-23 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb (Expand_N_Assignment_Statement): Do left-side validity * exp_ch5.adb (Expand_N_Assignment_Statement): Do left-side validity
......
...@@ -381,6 +381,8 @@ The GNAT Library ...@@ -381,6 +381,8 @@ The GNAT Library
* GNAT.Spitbol.Table_Boolean (g-sptabo.ads):: * GNAT.Spitbol.Table_Boolean (g-sptabo.ads)::
* GNAT.Spitbol.Table_Integer (g-sptain.ads):: * GNAT.Spitbol.Table_Integer (g-sptain.ads)::
* GNAT.Spitbol.Table_VString (g-sptavs.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.Strings (g-string.ads)::
* GNAT.String_Split (g-strspl.ads):: * GNAT.String_Split (g-strspl.ads)::
* GNAT.Table (g-table.ads):: * GNAT.Table (g-table.ads)::
...@@ -13568,6 +13570,8 @@ of GNAT, and will generate a warning message. ...@@ -13568,6 +13570,8 @@ of GNAT, and will generate a warning message.
* GNAT.Spitbol.Table_Boolean (g-sptabo.ads):: * GNAT.Spitbol.Table_Boolean (g-sptabo.ads)::
* GNAT.Spitbol.Table_Integer (g-sptain.ads):: * GNAT.Spitbol.Table_Integer (g-sptain.ads)::
* GNAT.Spitbol.Table_VString (g-sptavs.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.Strings (g-string.ads)::
* GNAT.String_Split (g-strspl.ads):: * GNAT.String_Split (g-strspl.ads)::
* GNAT.Table (g-table.ads):: * GNAT.Table (g-table.ads)::
...@@ -14627,6 +14631,23 @@ A library level of instantiation of @code{GNAT.Spitbol.Patterns.Table} for ...@@ -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 a variable length string type, giving an implementation of general
maps from strings to strings. 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) @node GNAT.Strings (g-string.ads)
@section @code{GNAT.Strings} (@file{g-string.ads}) @section @code{GNAT.Strings} (@file{g-string.ads})
@cindex @code{GNAT.Strings} (@file{g-string.ads}) @cindex @code{GNAT.Strings} (@file{g-string.ads})
......
...@@ -592,10 +592,10 @@ package body Sem_Ch6 is ...@@ -592,10 +592,10 @@ package body Sem_Ch6 is
elsif Covers (Base_Type (R_Type), Base_Type (R_Stm_Type)) elsif Covers (Base_Type (R_Type), Base_Type (R_Stm_Type))
or else (Is_Underlying_Record_View (Base_Type (R_Stm_Type)) or else (Is_Underlying_Record_View (Base_Type (R_Stm_Type))
and then and then
Covers Covers
(Base_Type (R_Type), (Base_Type (R_Type),
Underlying_Record_View (Base_Type (R_Stm_Type)))) Underlying_Record_View (Base_Type (R_Stm_Type))))
then then
-- A null exclusion may be present on the return type, on the -- A null exclusion may be present on the return type, on the
-- function specification, on the object declaration or on the -- function specification, on the object declaration or on the
...@@ -1317,16 +1317,23 @@ package body Sem_Ch6 is ...@@ -1317,16 +1317,23 @@ package body Sem_Ch6 is
-- force elaboration must be attached to the freezing of -- force elaboration must be attached to the freezing of
-- the base type. -- 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 if Is_Frozen (Typ) then
Build_Itype_Reference if Nkind (Parent (N)) = N_Subprogram_Body
(Etype (Designator), Parent (N)); and then Nkind (Parent (Parent (N))) = N_Subunit
then
null;
else
Build_Itype_Reference (Etype (Designator), Parent (N));
end if;
else else
Ensure_Freeze_Node (Typ); Ensure_Freeze_Node (Typ);
declare declare
IR : constant Node_Id := IR : constant Node_Id := Make_Itype_Reference (Sloc (N));
Make_Itype_Reference (Sloc (N));
begin begin
Set_Itype (IR, Etype (Designator)); Set_Itype (IR, Etype (Designator));
Append_Freeze_Actions (Typ, New_List (IR)); Append_Freeze_Actions (Typ, New_List (IR));
......
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