diff mbox series

[Ada] VxWorks inconsistent use of return type Fixup

Message ID 20211004084734.GA1536272@adacore.com
State New
Headers show
Series [Ada] VxWorks inconsistent use of return type Fixup | expand

Commit Message

Pierre-Marie de Rodat Oct. 4, 2021, 8:47 a.m. UTC
Fix STATUS and int return types for Vxworks6 in legacy.

Tested on x86_64-pc-linux-gnu, committed on trunk

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.
diff mbox series

Patch

diff --git a/gcc/ada/libgnarl/s-osinte__vxworks.ads b/gcc/ada/libgnarl/s-osinte__vxworks.ads
--- 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
--- 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
--- 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
--- 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);