]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Tue, 6 Sep 2011 13:07:09 +0000 (15:07 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 6 Sep 2011 13:07:09 +0000 (15:07 +0200)
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

From-SVN: r178593

gcc/ada/ChangeLog
gcc/ada/impunit.adb
gcc/ada/s-solita.adb
gcc/ada/sem_ch6.adb
gcc/ada/sysdep.c

index c05dd0b6070f7c3c0932bd211f00535630f32bb2..2e770b7b51bef354d0dc55ed7bf5c970b698671e 100644 (file)
@@ -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
index c3d250032fe16dc5125e8bbaf7f946ad83c5479e..99382f1ab64bd6565dd16a3063294a0e793301bd 100644 (file)
@@ -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;
index eae66cb7f4758a969a2edc056b16196ff87c1186..a222c87f470897ad260fe77430b091fe95c4a670 100644 (file)
@@ -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);
index d82cd72d4887dc3dea11d9e79e0adf9e3638e6b5..10de09907998a9e52ef33abe3a14cdae8274e969 100644 (file)
@@ -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
index 4d383fd0608de53f063efc89bf5d9443e198ba43..696630ec298bae52d1a9a263f803d5b64e53a0eb 100644 (file)
@@ -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