summaryrefslogtreecommitdiff
path: root/gcc/ada/s-tpopsp-vxworks.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-09-06 10:43:17 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-09-06 10:43:17 +0000
commitcce84b09e105d119e21714d124766a8b3a8bfd8f (patch)
tree1157a2d869f2276dd64328c487465347fc91ac7c /gcc/ada/s-tpopsp-vxworks.adb
parenta3a76ccc41dd9d4d6e05bdcc53a81cc9c98d6ccc (diff)
downloadgcc-cce84b09e105d119e21714d124766a8b3a8bfd8f.tar.gz
2011-09-06 Yannick Moy <moy@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): Call Set_Corresponding_Aspect when creating pragma from aspect. (Add_Predicates): Use new field Corresponding_Aspect. * sem_prag.adb (Analyze_Pragma): Make Pname hold source aspect name when present, for the purpose of issuing error messages; remove local procedure Error_Pragma_Arg_Alternate_Name. * sinfo.adb, sinfo.ads (Corresponding_Aspect): New field in N_Pragma node. (From_Dynamic_Predicate, From_Static_Predicate): Remove fields from N_Pragma node. 2011-09-06 Robert Dewar <dewar@adacore.com> * checks.adb, s-except.ads, g-socket.adb: Minor reformatting. 2011-09-06 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch6.adb (Build_Heap_Allocator): Add new local variable Desig_Typ. Code and comment reformatting. Add machinery to ensure that the allocation uses a fat pointer when the type of the return object is a constrained array and the function return type is an unconstrained array. 2011-09-06 Vincent Celier <celier@adacore.com> * make.adb, prj-part.adb, prj-nmsc.adb: Remove unused formal parameters in subprograms. 2011-09-06 Arnaud Charlet <charlet@adacore.com> * s-taprop-mingw.adb (Finalize_TCB): Fix typo. 2011-09-06 Thomas Quinot <quinot@adacore.com> * s-taprop-vxworks.adb, s-tpoaal.adb, s-tpopsp-vxworks.adb (System.Tasking.Primitive_Operations.Specific.Delete): Remove subprogram. (System.Tasking.Primitive_Operations.Specific.Set): If argument is null, destroy task specific data, to make API consistent with other platforms, and thus compatible with the shared version of s-tpoaal.adb. (System.Tasking.Primitive_Operations.ATCB_Allocation.Free_ATCB): Document the above assumption. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178583 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-tpopsp-vxworks.adb')
-rw-r--r--gcc/ada/s-tpopsp-vxworks.adb21
1 files changed, 9 insertions, 12 deletions
diff --git a/gcc/ada/s-tpopsp-vxworks.adb b/gcc/ada/s-tpopsp-vxworks.adb
index 64bf10c4d94..09c03efe061 100644
--- a/gcc/ada/s-tpopsp-vxworks.adb
+++ b/gcc/ada/s-tpopsp-vxworks.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2009, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -44,17 +44,6 @@ package body Specific is
-- implementation. This mechanism is used to minimize impact on other
-- targets.
- ------------
- -- Delete --
- ------------
-
- procedure Delete is
- Result : STATUS;
- begin
- Result := taskVarDelete (taskIdSelf, ATCB_Key'Access);
- pragma Assert (Result /= ERROR);
- end Delete;
-
----------------
-- Initialize --
----------------
@@ -81,6 +70,14 @@ package body Specific is
Result : STATUS;
begin
+ -- If Self_Id is null, delete task specific data
+
+ if Self_Id = null then
+ Result := taskVarDelete (taskIdSelf, ATCB_Key'Access);
+ pragma Assert (Result /= ERROR);
+ return;
+ end if;
+
if taskVarGet (0, ATCB_Key'Access) = ERROR then
Result := taskVarAdd (0, ATCB_Key'Access);
pragma Assert (Result = OK);