From 9f46922140052a306a688a696e55a47f6ca7adf3 Mon Sep 17 00:00:00 2001 From: charlet Date: Tue, 6 Sep 2011 13:07:09 +0000 Subject: 2011-09-06 Jerome Guitton * sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK on vThreads. 2011-09-06 Thomas Quinot * s-solita.adb: Minor reformatting. 2011-09-06 Ed Schonberg * 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 * 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 --- gcc/ada/ChangeLog | 19 +++++++++++++++++++ gcc/ada/impunit.adb | 6 ++++++ gcc/ada/s-solita.adb | 9 ++++----- gcc/ada/sem_ch6.adb | 7 ++++++- gcc/ada/sysdep.c | 3 ++- 5 files changed, 37 insertions(+), 7 deletions(-) (limited to 'gcc/ada') 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 + + * sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK + on vThreads. + +2011-09-06 Thomas Quinot + + * s-solita.adb: Minor reformatting. + +2011-09-06 Ed Schonberg + + * 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 + + * impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case + 2011-09-06 Tristan Gingold * 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 -- cgit v1.2.1