[COMMITTED] ada: Fix minor issue with Mod operator

Message ID 20230530072119.2500748-1-poulhies@adacore.com
State Committed
Commit 0e58d85c40223fcdde298aaa443d8d5f7863ab16
Headers
Series [COMMITTED] ada: Fix minor issue with Mod operator |

Commit Message

Marc Poulhiès May 30, 2023, 7:21 a.m. UTC
  From: Eric Botcazou <ebotcazou@adacore.com>

gcc/ada/

	* gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Test the
	precision of the operation rather than that of the result type.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/gcc-interface/trans.cc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
  

Patch

diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc
index 8c8a78f5d2d..1c3c6c0618e 100644
--- a/gcc/ada/gcc-interface/trans.cc
+++ b/gcc/ada/gcc-interface/trans.cc
@@ -7095,9 +7095,9 @@  gnat_to_gnu (Node_Id gnat_node)
 	    gnu_rhs = convert (gnu_count_type, gnu_rhs);
 	    gnu_max_shift
 	      = convert (TREE_TYPE (gnu_rhs), TYPE_SIZE (gnu_type));
-	    /* If the result type is larger than a word, then declare the dependence
-	       on the libgcc routine.  */
-	    if (TYPE_PRECISION (gnu_result_type) > BITS_PER_WORD)
+	    /* If the result type is larger than a word, then declare the
+	       dependence on the libgcc routine.  */
+	    if (TYPE_PRECISION (gnu_type) > BITS_PER_WORD)
 	      Check_Restriction_No_Dependence_On_System (Name_Gcc, gnat_node);
 	  }
 
@@ -7114,7 +7114,7 @@  gnat_to_gnu (Node_Id gnat_node)
 	/* If this is a modulo/remainder and the result type is larger than a
 	   word, then declare the dependence on the libgcc routine.  */
 	else if ((kind == N_Op_Mod ||kind == N_Op_Rem)
-		 && TYPE_PRECISION (gnu_result_type) > BITS_PER_WORD)
+		 && TYPE_PRECISION (gnu_type) > BITS_PER_WORD)
 	  Check_Restriction_No_Dependence_On_System (Name_Gcc, gnat_node);
 
 	/* Pending generic support for efficient vector logical operations in