This replaces calls to Esize or RM_Size for standard integer types with their value, uses Standard_Long_Long_Unsigned directly in one case and Standard_Long_Long_Integer in another case, and changes the recently added Narrow_Large_Operation to use Uint instead of Nat for sizes. No functional changes (except maybe in a corner case on 32-bit targets). Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * exp_ch4.adb (Expand_Array_Comparison): Reformat. (Expand_Concatenate): Use standard size values directly and use Standard_Long_Long_Unsigned instead of RE_Long_Long_Unsigned. (Expand_Modular_Op): Use Standard_Long_Long_Integer in case the modulus is larger than Integer. (Expand_N_Op_Expon): Use standard size value directly. (Narrow_Large_Operation): Use Uint instead of Nat for sizes and use a local variable for the size of the type. (Get_Size_For_Range): Return Uint instead of Nat. (Is_OK_For_Range): Take Uint instead of Nat.