Fix bootstrap error in s-taprop-tru64.adb
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 24 Nov 2011 16:27:31 +0000 (16:27 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Thu, 24 Nov 2011 16:27:31 +0000 (16:27 +0000)
* s-taprop-tru64.adb (Create_Task): Use Unrestricted_Access.

From-SVN: r181696

gcc/ada/ChangeLog
gcc/ada/s-taprop-tru64.adb

index 4533244cd7424dd7e86c987de422f027e30a6536..77fd4bf15d1ed4f29bc3a068855afee9f575ff01 100644 (file)
@@ -1,3 +1,7 @@
+2011-11-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * s-taprop-tru64.adb (Create_Task): Use Unrestricted_Access.
+
 2011-11-23  Thomas Quinot  <quinot@adacore.com>
 
        * thread.c, s-oscons-tmplt.c: Generate __gnat_pthread_condattr_setup
index cb534adf5b62a00eeb7ab3c5c473b087d8fee777..8d69e5b19b1eb9fbb6de7f85b77c06d07f2754ae 100644 (file)
@@ -889,9 +889,15 @@ package body System.Task_Primitives.Operations is
       --  do not need to manipulate caller's signal mask at this point.
       --  All tasks in RTS will have All_Tasks_Mask initially.
 
+      --  Note: the use of Unrestricted_Access in the following call is needed
+      --  because otherwise we have an error of getting a access-to-volatile
+      --  value which points to a non-volatile object. But in this case it is
+      --  safe to do this, since we know we have no problems with aliasing and
+      --  Unrestricted_Access bypasses this check.
+
       Result :=
         pthread_create
-          (T.Common.LL.Thread'Access,
+          (T.Common.LL.Thread'Unrestricted_Access,
            Attributes'Access,
            Thread_Body_Access (Wrapper),
            To_Address (T));