From: Eric Botcazou Date: Tue, 3 Nov 2020 16:17:21 +0000 (+0100) Subject: [Ada] Move down call to Narrow_Large_Operation in Expand_N_Op_Multiply X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bc1304f6a190b9d9883fd24cac3cca9334e848b3;p=gcc.git [Ada] Move down call to Narrow_Large_Operation in Expand_N_Op_Multiply gcc/ada/ * exp_ch4.adb (Expand_N_Op_Multiply): Move down block calling Narrow_Large_Operation if the type is Universal_Integer. --- diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index efdc235aa00..07c7d1678a9 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -9716,16 +9716,6 @@ package body Exp_Ch4 is end if; end if; - -- Try to narrow the operation - - if Typ = Universal_Integer then - Narrow_Large_Operation (N); - - if Nkind (N) /= N_Op_Multiply then - return; - end if; - end if; - -- Convert x * 2 ** y to Shift_Left (x, y). Note that the fact that -- Is_Power_Of_2_For_Shift is set means that we know that our left -- operand is an integer, as required for this to work. @@ -9802,6 +9792,16 @@ package body Exp_Ch4 is return; end if; + -- Try to narrow the operation + + if Typ = Universal_Integer then + Narrow_Large_Operation (N); + + if Nkind (N) /= N_Op_Multiply then + return; + end if; + end if; + -- Do required fixup of universal fixed operation if Typ = Universal_Fixed then