Commit e876c43a by Arnaud Charlet

[multiple changes]

2011-12-12  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb, gnatls.adb: Minor reformatting.

2011-12-12  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): If a type declared in a generic
	context has predicates, generate a freeze node for it.
	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expression
	has not been analyzed yet, entity has not been frozen, so analyze
	it now.

2011-12-12  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Make_VM_TSD): Generate code
	to store the value 'alignment in the TSD.

2011-12-12  Bob Duff  <duff@adacore.com>

	* s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex D
	mode.

From-SVN: r182240
parent ad5a445d
2011-12-12 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb, gnatls.adb: Minor reformatting.
2011-12-12 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_Entity): If a type declared in a generic
context has predicates, generate a freeze node for it.
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expression
has not been analyzed yet, entity has not been frozen, so analyze
it now.
2011-12-12 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Make_VM_TSD): Generate code
to store the value 'alignment in the TSD.
2011-12-12 Bob Duff <duff@adacore.com>
* s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex D
mode.
2011-12-12 Hristian Kirtchev <kirtchev@adacore.com> 2011-12-12 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_N_Allocator): Update the master of an * exp_ch4.adb (Expand_N_Allocator): Update the master of an
......
...@@ -6458,6 +6458,7 @@ package body Exp_Disp is ...@@ -6458,6 +6458,7 @@ package body Exp_Disp is
-- (Idepth => I_Depth, -- (Idepth => I_Depth,
-- Tag_Kind => <tag_kind-value>, -- Tag_Kind => <tag_kind-value>,
-- Access_Level => Type_Access_Level (Typ), -- Access_Level => Type_Access_Level (Typ),
-- Alignment => Typ'Alignment,
-- HT_Link => null, -- HT_Link => null,
-- Type_Is_Abstract => <<boolean-value>>, -- Type_Is_Abstract => <<boolean-value>>,
-- Type_Is_Library_Level => <<boolean-value>>, -- Type_Is_Library_Level => <<boolean-value>>,
...@@ -6508,6 +6509,13 @@ package body Exp_Disp is ...@@ -6508,6 +6509,13 @@ package body Exp_Disp is
Append_To (TSD_Aggr_List, Append_To (TSD_Aggr_List,
Make_Integer_Literal (Loc, Type_Access_Level (Typ))); Make_Integer_Literal (Loc, Type_Access_Level (Typ)));
-- Alignment
Append_To (TSD_Aggr_List,
Make_Attribute_Reference (Loc,
Prefix => New_Reference_To (Typ, Loc),
Attribute_Name => Name_Alignment));
-- HT_Link -- HT_Link
Append_To (TSD_Aggr_List, Append_To (TSD_Aggr_List,
......
...@@ -3040,8 +3040,13 @@ package body Freeze is ...@@ -3040,8 +3040,13 @@ package body Freeze is
-- nable and used in subsequent checks, so might as well try to -- nable and used in subsequent checks, so might as well try to
-- compute it. -- compute it.
-- In Ada2012, freeze entities is also used in the front-end to
-- trigger the analysis of aspect expressions, so in this case we
-- want to continue the freezing process.
if Present (Scope (E)) if Present (Scope (E))
and then Is_Generic_Unit (Scope (E)) and then Is_Generic_Unit (Scope (E))
and then not Has_Predicates (E)
then then
Check_Compile_Time_Size (E); Check_Compile_Time_Size (E);
return No_List; return No_List;
......
...@@ -1232,6 +1232,7 @@ procedure Gnatls is ...@@ -1232,6 +1232,7 @@ procedure Gnatls is
-- Add the lib subdirectory if it exists -- Add the lib subdirectory if it exists
Lib_Path := Get_RTS_Search_Dir (Name, Objects); Lib_Path := Get_RTS_Search_Dir (Name, Objects);
if Lib_Path /= null then if Lib_Path /= null then
Add_Search_Dirs (Lib_Path, Objects); Add_Search_Dirs (Lib_Path, Objects);
end if; end if;
......
...@@ -126,9 +126,6 @@ package body System.Task_Primitives.Operations is ...@@ -126,9 +126,6 @@ package body System.Task_Primitives.Operations is
Foreign_Task_Elaborated : aliased Boolean := True; Foreign_Task_Elaborated : aliased Boolean := True;
-- Used to identified fake tasks (i.e., non-Ada Threads) -- Used to identified fake tasks (i.e., non-Ada Threads)
Annex_D : Boolean := False;
-- Set to True if running with Annex-D semantics
Null_Thread_Id : constant Thread_Id := 0; Null_Thread_Id : constant Thread_Id := 0;
-- Constant to indicate that the thread identifier has not yet been -- Constant to indicate that the thread identifier has not yet been
-- initialized. -- initialized.
...@@ -700,20 +697,9 @@ package body System.Task_Primitives.Operations is ...@@ -700,20 +697,9 @@ package body System.Task_Primitives.Operations is
----------- -----------
procedure Yield (Do_Yield : Boolean := True) is procedure Yield (Do_Yield : Boolean := True) is
pragma Unreferenced (Do_Yield);
begin begin
if Do_Yield then SwitchToThread;
SwitchToThread;
elsif Annex_D then
-- If running with Annex-D semantics we need a delay
-- above 0 milliseconds here otherwise processes give
-- enough time to the other tasks to have a chance to
-- run.
--
-- This makes cxd8002 ACATS pass on Windows.
Sleep (1);
end if;
end Yield; end Yield;
------------------ ------------------
...@@ -1076,8 +1062,6 @@ package body System.Task_Primitives.Operations is ...@@ -1076,8 +1062,6 @@ package body System.Task_Primitives.Operations is
Discard := OS_Interface.SetPriorityClass Discard := OS_Interface.SetPriorityClass
(GetCurrentProcess, Realtime_Priority_Class); (GetCurrentProcess, Realtime_Priority_Class);
Annex_D := True;
end if; end if;
TlsIndex := TlsAlloc; TlsIndex := TlsAlloc;
......
...@@ -5880,11 +5880,11 @@ package body Sem_Ch13 is ...@@ -5880,11 +5880,11 @@ package body Sem_Ch13 is
-- All other cases -- All other cases
else else
-- In a generic context freeze nodes are not generated, and the -- In a generic context the aspect expressions have not been
-- aspect expressions have not been preanalyzed, so do it now. -- preanalyzed, so do it now.
-- There are no conformance checks to perform in this case. -- There are no conformance checks to perform in this case.
if No (T) and then Inside_A_Generic then if No (T) then
Check_Aspect_At_Freeze_Point (ASN); Check_Aspect_At_Freeze_Point (ASN);
return; return;
else else
......
...@@ -367,8 +367,8 @@ package body Sem_Ch6 is ...@@ -367,8 +367,8 @@ package body Sem_Ch6 is
-- on later entities. -- on later entities.
declare declare
Decls : List_Id := List_Containing (N); Decls : List_Id := List_Containing (N);
Par : constant Node_Id := Parent (Decls); Par : constant Node_Id := Parent (Decls);
Id : constant Entity_Id := Defining_Entity (New_Decl); Id : constant Entity_Id := Defining_Entity (New_Decl);
begin begin
...@@ -385,7 +385,6 @@ package body Sem_Ch6 is ...@@ -385,7 +385,6 @@ package body Sem_Ch6 is
Install_Formals (Id); Install_Formals (Id);
Preanalyze_Spec_Expression (Expression (Ret), Etype (Id)); Preanalyze_Spec_Expression (Expression (Ret), Etype (Id));
End_Scope; End_Scope;
end; end;
end if; end if;
......
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