[Ada] Fix Ada-QNX task priority conversion

Message ID 20220518084320.GA3353075@adacore.com
State Committed
Commit b271095d5076f837391b2726c1265ae2e91fafa8
Headers
Series [Ada] Fix Ada-QNX task priority conversion |

Commit Message

Pierre-Marie de Rodat May 18, 2022, 8:43 a.m. UTC
  The conversion between OS and Ada priorties should be done in the wider
Interfaces.C.int type rather than Any_Priority otherwise
Constraint_Error will be raised when coverting Any_Priority'Last to int.

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

gcc/ada/

	* libgnarl/s-osinte__qnx.adb (To_Target_Priority): Perform
	arithmetic in int.
  

Patch

diff --git a/gcc/ada/libgnarl/s-osinte__qnx.adb b/gcc/ada/libgnarl/s-osinte__qnx.adb
--- a/gcc/ada/libgnarl/s-osinte__qnx.adb
+++ b/gcc/ada/libgnarl/s-osinte__qnx.adb
@@ -87,7 +87,7 @@  package body System.OS_Interface is
      (Prio : System.Any_Priority) return Interfaces.C.int
    is
    begin
-      return Interfaces.C.int (Prio + 1);
+      return Interfaces.C.int (Prio) + 1;
    end To_Target_Priority;
 
    -----------------