From d681ce903bffa9b5ac19fa7ffb721e55043a0fcc Mon Sep 17 00:00:00 2001 From: Doug Rupp Date: Fri, 20 Aug 2021 08:26:58 -0700 Subject: [PATCH] [Ada] VxWorks inconsistent use of return type Fixup gcc/ada/ * libgnarl/s-osinte__vxworks.ads (tlsKeyCreate): Return int. * libgnarl/s-tpopsp__vxworks-rtp.adb (ERROR): Declare from System.VxWorks.Ext.ERROR. (Initialize): Declare IERR. Assert it. * libgnarl/s-tpopsp__vxworks.adb (ERROR): Declare from System.VxWorks.Ext.ERROR. (Is_Valid_Task): Declare IERR. Test return. * libgnarl/s-vxwext__kernel.adb (semDelete): Return STATUS. --- gcc/ada/libgnarl/s-osinte__vxworks.ads | 2 +- gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb | 5 ++++- gcc/ada/libgnarl/s-tpopsp__vxworks.adb | 5 ++++- gcc/ada/libgnarl/s-vxwext__kernel.adb | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gcc/ada/libgnarl/s-osinte__vxworks.ads b/gcc/ada/libgnarl/s-osinte__vxworks.ads index a63b922..e851645 100644 --- a/gcc/ada/libgnarl/s-osinte__vxworks.ads +++ b/gcc/ada/libgnarl/s-osinte__vxworks.ads @@ -340,7 +340,7 @@ package System.OS_Interface is -- Can only be called from the VxWorks 6 run-time libary that supports -- tlsLib, and not by the VxWorks 6.6 SMP library - function tlsKeyCreate return STATUS; + function tlsKeyCreate return int; pragma Import (C, tlsKeyCreate, "tlsKeyCreate"); function tlsValueGet (key : int) return System.Address; diff --git a/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb b/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb index e5d4089..1343f6b 100644 --- a/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb +++ b/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb @@ -35,6 +35,8 @@ separate (System.Task_Primitives.Operations) package body Specific is + ERROR : constant STATUS := System.VxWorks.Ext.ERROR; + ATCB_Key : int := 0; -- Key used to find the Ada Task_Id associated with a thread @@ -43,9 +45,10 @@ package body Specific is ---------------- procedure Initialize is + IERR : constant := -1; begin ATCB_Key := tlsKeyCreate; - pragma Assert (ATCB_Key /= ERROR); + pragma Assert (ATCB_Key /= IERR); end Initialize; ------------------- diff --git a/gcc/ada/libgnarl/s-tpopsp__vxworks.adb b/gcc/ada/libgnarl/s-tpopsp__vxworks.adb index 2d7cf00..9dc5d8b 100644 --- a/gcc/ada/libgnarl/s-tpopsp__vxworks.adb +++ b/gcc/ada/libgnarl/s-tpopsp__vxworks.adb @@ -35,6 +35,8 @@ separate (System.Task_Primitives.Operations) package body Specific is + ERROR : constant STATUS := System.VxWorks.Ext.ERROR; + ATCB_Key : aliased System.Address := System.Null_Address; -- Key used to find the Ada Task_Id associated with a thread @@ -70,8 +72,9 @@ package body Specific is ------------------- function Is_Valid_Task return Boolean is + IERR : constant := -1; begin - return taskVarGet (taskIdSelf, ATCB_Key'Access) /= ERROR; + return taskVarGet (taskIdSelf, ATCB_Key'Access) /= IERR; end Is_Valid_Task; --------- diff --git a/gcc/ada/libgnarl/s-vxwext__kernel.adb b/gcc/ada/libgnarl/s-vxwext__kernel.adb index b3b7f54..2f00059 100644 --- a/gcc/ada/libgnarl/s-vxwext__kernel.adb +++ b/gcc/ada/libgnarl/s-vxwext__kernel.adb @@ -59,7 +59,7 @@ package body System.VxWorks.Ext is --------------- function semDelete (Sem : SEM_ID) return STATUS is - function Os_Sem_Delete (Sem : SEM_ID) return int; + function Os_Sem_Delete (Sem : SEM_ID) return STATUS; pragma Import (C, Os_Sem_Delete, "semDelete"); begin return Os_Sem_Delete (Sem); -- 2.7.4