diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index 752a15f09bf..e7db7b0150f 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -8778,8 +8778,7 @@ package body Exp_Ch4 is -- Determine range to see if it can be larger than MaxS - Determine_Range - (Right_Opnd (N), OK, Lo, Hi, Assume_Valid => True); + Determine_Range (Exp, OK, Lo, Hi, Assume_Valid => True); TestS := (not OK) or else Hi > MaxS; -- Signed integer case @@ -8796,7 +8795,7 @@ package body Exp_Ch4 is Make_Raise_Constraint_Error (Loc, Condition => Make_Op_Gt (Loc, - Left_Opnd => Duplicate_Subexpr (Right_Opnd (N)), + Left_Opnd => Duplicate_Subexpr (Exp), Right_Opnd => Make_Integer_Literal (Loc, MaxS)), Reason => CE_Overflow_Check_Failed)); end if; @@ -8806,7 +8805,7 @@ package body Exp_Ch4 is Rewrite (N, Make_Op_Shift_Left (Loc, Left_Opnd => Make_Integer_Literal (Loc, Uint_1), - Right_Opnd => Right_Opnd (N))); + Right_Opnd => Exp)); -- Modular integer case @@ -8824,7 +8823,7 @@ package body Exp_Ch4 is Test_Gt := Make_Op_Gt (Loc, - Left_Opnd => Duplicate_Subexpr (Right_Opnd (N)), + Left_Opnd => Duplicate_Subexpr (Exp), Right_Opnd => Make_Integer_Literal (Loc, MaxS)); Rewrite (N, @@ -8834,7 +8833,7 @@ package body Exp_Ch4 is Make_Integer_Literal (Loc, Uint_0), Make_Op_Shift_Left (Loc, Left_Opnd => Make_Integer_Literal (Loc, Uint_1), - Right_Opnd => Right_Opnd (N))))); + Right_Opnd => Exp)))); -- If we know shift count cannot be greater than MaxS, then -- it is safe to just rewrite as a shift with no test. @@ -8843,7 +8842,7 @@ package body Exp_Ch4 is Rewrite (N, Make_Op_Shift_Left (Loc, Left_Opnd => Make_Integer_Literal (Loc, Uint_1), - Right_Opnd => Right_Opnd (N))); + Right_Opnd => Exp)); end if; end if;