diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-09-06 13:07:09 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-09-06 13:07:09 +0000 |
commit | 9f46922140052a306a688a696e55a47f6ca7adf3 (patch) | |
tree | bd2a46378d5d0c491e6e9ed5f4c8e364b95888eb /gcc/ada | |
parent | dfb98d7502700782f4a1a4e04357e46fd90784fe (diff) | |
download | gcc-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/ChangeLog | 19 | ||||
-rw-r--r-- | gcc/ada/impunit.adb | 6 | ||||
-rw-r--r-- | gcc/ada/s-solita.adb | 9 | ||||
-rw-r--r-- | gcc/ada/sem_ch6.adb | 7 | ||||
-rw-r--r-- | gcc/ada/sysdep.c | 3 |
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 |