summaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-09-06 13:07:09 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-09-06 13:07:09 +0000
commit9f46922140052a306a688a696e55a47f6ca7adf3 (patch)
treebd2a46378d5d0c491e6e9ed5f4c8e364b95888eb /gcc/ada
parentdfb98d7502700782f4a1a4e04357e46fd90784fe (diff)
downloadgcc-9f46922140052a306a688a696e55a47f6ca7adf3.tar.gz
2011-09-06 Jerome Guitton <guitton@adacore.com>
* sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK on vThreads. 2011-09-06 Thomas Quinot <quinot@adacore.com> * s-solita.adb: Minor reformatting. 2011-09-06 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that is a rewriting of an expression function does not freeze previous entities. 2011-09-06 Robert Dewar <dewar@adacore.com> * impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178593 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog19
-rw-r--r--gcc/ada/impunit.adb6
-rw-r--r--gcc/ada/s-solita.adb9
-rw-r--r--gcc/ada/sem_ch6.adb7
-rw-r--r--gcc/ada/sysdep.c3
5 files changed, 37 insertions, 7 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index c05dd0b6070..2e770b7b51b 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,22 @@
+2011-09-06 Jerome Guitton <guitton@adacore.com>
+
+ * sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK
+ on vThreads.
+
+2011-09-06 Thomas Quinot <quinot@adacore.com>
+
+ * s-solita.adb: Minor reformatting.
+
+2011-09-06 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that
+ is a rewriting of an expression function does not freeze previous
+ entities.
+
+2011-09-06 Robert Dewar <dewar@adacore.com>
+
+ * impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case
+
2011-09-06 Tristan Gingold <gingold@adacore.com>
* gcc-interface/Makefile.in: Handle e500v2-wrs-vxworksae like
diff --git a/gcc/ada/impunit.adb b/gcc/ada/impunit.adb
index c3d250032fe..99382f1ab64 100644
--- a/gcc/ada/impunit.adb
+++ b/gcc/ada/impunit.adb
@@ -761,6 +761,12 @@ package body Impunit is
end if;
end loop;
+ for J in Non_Imp_File_Names_12'Range loop
+ if Name_Buffer (1 .. 8) = Non_Imp_File_Names_12 (J) then
+ return True;
+ end if;
+ end loop;
+
-- If not found, not known
return False;
diff --git a/gcc/ada/s-solita.adb b/gcc/ada/s-solita.adb
index eae66cb7f47..a222c87f470 100644
--- a/gcc/ada/s-solita.adb
+++ b/gcc/ada/s-solita.adb
@@ -150,12 +150,11 @@ package body System.Soft_Links.Tasking is
EO : Ada.Exceptions.Exception_Occurrence;
begin
- -- We can only be here because we are terminating the environment
- -- task. Task termination for the rest of the tasks is handled in
- -- the Task_Wrapper.
+ -- We can only be here because we are terminating the environment task.
+ -- Task termination for all other tasks is handled in the Task_Wrapper.
-- We do not want to enable this check and e.g. call System.OS_Lib.Abort
- -- here because some restricted run-times may not have system.os_lib
+ -- here because some restricted run-times may not have System.OS_Lib
-- (e.g. JVM), and calling abort may do more harm than good to the
-- main application.
@@ -216,7 +215,7 @@ package body System.Soft_Links.Tasking is
SSL.Timed_Delay := Timed_Delay_T'Access;
SSL.Task_Termination_Handler := Task_Termination_Handler_T'Access;
- -- No need to create a new Secondary Stack, since we will use the
+ -- No need to create a new secondary stack, since we will use the
-- default one created in s-secsta.adb.
SSL.Set_Sec_Stack_Addr (SSL.Get_Sec_Stack_Addr_NT);
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index d82cd72d488..10de0990799 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -2346,7 +2346,12 @@ package body Sem_Ch6 is
-- expansion has generated an equivalent type that is used when
-- elaborating the body.
- if No (Spec_Id) then
+ -- An exception in the case of Ada2012, AI05-177: The bodies
+ -- created for expression functions do not freeze.
+
+ if No (Spec_Id)
+ and then Nkind (Original_Node (N)) /= N_Expression_Function
+ then
Freeze_Before (N, Body_Id);
elsif Nkind (Parent (N)) = N_Compilation_Unit then
diff --git a/gcc/ada/sysdep.c b/gcc/ada/sysdep.c
index 4d383fd0608..696630ec298 100644
--- a/gcc/ada/sysdep.c
+++ b/gcc/ada/sysdep.c
@@ -911,7 +911,8 @@ __gnat_get_task_options (void)
/* Force VX_FP_TASK because it is almost always required */
options |= VX_FP_TASK;
-#if defined (__SPE__) && (! defined (__VXWORKSMILS__))
+#if defined (__SPE__) && (! defined (__VXWORKSMILS__)) \
+ && (! defined (VTHREADS))
options |= VX_SPE_TASK;
#endif