summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-12 13:43:38 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-12 13:43:38 +0000
commitd67a83fef70d13b2d0d285c7e1b3294d77081432 (patch)
treefeb483120b34ecb8aac08763b4b4a0ca89170d5f
parent0dd21164ba0588370c256d531ad45866a13fe9e7 (diff)
downloadgcc-d67a83fef70d13b2d0d285c7e1b3294d77081432.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182240 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ada/ChangeLog22
-rw-r--r--gcc/ada/exp_disp.adb8
-rw-r--r--gcc/ada/freeze.adb5
-rw-r--r--gcc/ada/gnatls.adb1
-rw-r--r--gcc/ada/s-taprop-mingw.adb20
-rw-r--r--gcc/ada/sem_ch13.adb6
-rw-r--r--gcc/ada/sem_ch6.adb5
7 files changed, 43 insertions, 24 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index a3679ddbbdc..430170d59d2 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,25 @@
+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>
* exp_ch4.adb (Expand_N_Allocator): Update the master of an
diff --git a/gcc/ada/exp_disp.adb b/gcc/ada/exp_disp.adb
index bd6724fdb54..a1bd6a425ea 100644
--- a/gcc/ada/exp_disp.adb
+++ b/gcc/ada/exp_disp.adb
@@ -6458,6 +6458,7 @@ package body Exp_Disp is
-- (Idepth => I_Depth,
-- Tag_Kind => <tag_kind-value>,
-- Access_Level => Type_Access_Level (Typ),
+ -- Alignment => Typ'Alignment,
-- HT_Link => null,
-- Type_Is_Abstract => <<boolean-value>>,
-- Type_Is_Library_Level => <<boolean-value>>,
@@ -6508,6 +6509,13 @@ package body Exp_Disp is
Append_To (TSD_Aggr_List,
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
Append_To (TSD_Aggr_List,
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index 336825ea91e..46d3c64fd90 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -3040,8 +3040,13 @@ package body Freeze is
-- nable and used in subsequent checks, so might as well try to
-- 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))
and then Is_Generic_Unit (Scope (E))
+ and then not Has_Predicates (E)
then
Check_Compile_Time_Size (E);
return No_List;
diff --git a/gcc/ada/gnatls.adb b/gcc/ada/gnatls.adb
index 91b84a17300..a7c276d58b3 100644
--- a/gcc/ada/gnatls.adb
+++ b/gcc/ada/gnatls.adb
@@ -1232,6 +1232,7 @@ procedure Gnatls is
-- Add the lib subdirectory if it exists
Lib_Path := Get_RTS_Search_Dir (Name, Objects);
+
if Lib_Path /= null then
Add_Search_Dirs (Lib_Path, Objects);
end if;
diff --git a/gcc/ada/s-taprop-mingw.adb b/gcc/ada/s-taprop-mingw.adb
index 7fc505e30bc..5ced0315e7b 100644
--- a/gcc/ada/s-taprop-mingw.adb
+++ b/gcc/ada/s-taprop-mingw.adb
@@ -126,9 +126,6 @@ package body System.Task_Primitives.Operations is
Foreign_Task_Elaborated : aliased Boolean := True;
-- 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;
-- Constant to indicate that the thread identifier has not yet been
-- initialized.
@@ -700,20 +697,9 @@ package body System.Task_Primitives.Operations is
-----------
procedure Yield (Do_Yield : Boolean := True) is
+ pragma Unreferenced (Do_Yield);
begin
- if Do_Yield then
- 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;
+ SwitchToThread;
end Yield;
------------------
@@ -1076,8 +1062,6 @@ package body System.Task_Primitives.Operations is
Discard := OS_Interface.SetPriorityClass
(GetCurrentProcess, Realtime_Priority_Class);
-
- Annex_D := True;
end if;
TlsIndex := TlsAlloc;
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index d06ba9388ac..309d2d2ac1b 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -5880,11 +5880,11 @@ package body Sem_Ch13 is
-- All other cases
else
- -- In a generic context freeze nodes are not generated, and the
- -- aspect expressions have not been preanalyzed, so do it now.
+ -- In a generic context the aspect expressions have not been
+ -- preanalyzed, so do it now.
-- 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);
return;
else
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index 64b90926329..92c5eed8de1 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -367,8 +367,8 @@ package body Sem_Ch6 is
-- on later entities.
declare
- Decls : List_Id := List_Containing (N);
- Par : constant Node_Id := Parent (Decls);
+ Decls : List_Id := List_Containing (N);
+ Par : constant Node_Id := Parent (Decls);
Id : constant Entity_Id := Defining_Entity (New_Decl);
begin
@@ -385,7 +385,6 @@ package body Sem_Ch6 is
Install_Formals (Id);
Preanalyze_Spec_Expression (Expression (Ret), Etype (Id));
End_Scope;
-
end;
end if;