summaryrefslogtreecommitdiff
path: root/gcc/ada/s-taprop-posix.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-21 12:05:56 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-21 12:05:56 +0000
commit6601edd6707186006ecf8d01f73baae18720d65b (patch)
tree12bf8245eaa68fc71e628fbf0ebb69a49353ec84 /gcc/ada/s-taprop-posix.adb
parent463912c6afe638c039a37e8402d8003812d90ba1 (diff)
downloadgcc-6601edd6707186006ecf8d01f73baae18720d65b.tar.gz
2011-11-21 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor reformatting. 2011-11-21 Arnaud Charlet <charlet@adacore.com> * s-taprop-posix.adb (Create_Task): Use Unrestricted_Access to deal with fact that we properly detect the error if Access is used. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181572 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-taprop-posix.adb')
-rw-r--r--gcc/ada/s-taprop-posix.adb8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ada/s-taprop-posix.adb b/gcc/ada/s-taprop-posix.adb
index 425508a32c2..44015cf85d5 100644
--- a/gcc/ada/s-taprop-posix.adb
+++ b/gcc/ada/s-taprop-posix.adb
@@ -975,8 +975,14 @@ 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));