This change ensures on all targets that A**B = A**C when B is a small static constant in the range 0 .. 4 and C is a variable with the same value. Previously for Float and Long_Float on some targets, this was not the case. The results given were both within the error bounds that are allowed by the Ada standard, but it is desirable not to have this discrepancy. Tested on x86_64-pc-linux-gnu, committed on trunk 2015-05-26 Robert Dewar * exp_ch4.adb (Wrap_MA): New function. (Expand_N_Op_Expon): Use Wrap_MA.