diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2020-01-10 21:55:33 +0100 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-06-03 06:01:40 -0400 |
commit | b5b032ec6e3532d9362d4dd4b1097ebf53509b81 (patch) | |
tree | e2ceefe47e821ce189dd5293f4de2c68e348c27f /gcc/ada/exp_ch4.adb | |
parent | 93b3110d75423001107785967a9f9c962e96d2e9 (diff) | |
download | gcc-b5b032ec6e3532d9362d4dd4b1097ebf53509b81.zip gcc-b5b032ec6e3532d9362d4dd4b1097ebf53509b81.tar.gz gcc-b5b032ec6e3532d9362d4dd4b1097ebf53509b81.tar.bz2 |
[Ada] Small improvement to Expand_N_Unchecked_Type_Conversion
2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
gcc/ada/
* exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Also fold the
conversion for literals of enumeration types.
Diffstat (limited to 'gcc/ada/exp_ch4.adb')
-rw-r--r-- | gcc/ada/exp_ch4.adb | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index 66ebc53..8d6ddd7 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -12460,7 +12460,7 @@ package body Exp_Ch4 is -- If we have a conversion of a compile time known value to a target -- type and the value is in range of the target type, then we can simply -- replace the construct by an integer literal of the correct type. We - -- only apply this to integer types being converted. Possibly it may + -- only apply this to discrete types being converted. Possibly it may -- apply in other cases, but it is too much trouble to worry about. -- Note that we do not do this transformation if the Kill_Range_Check @@ -12473,13 +12473,13 @@ package body Exp_Ch4 is if Is_Integer_Type (Target_Type) and then not Has_Biased_Representation (Target_Type) - and then Is_Integer_Type (Operand_Type) + and then Is_Discrete_Type (Operand_Type) and then not Has_Biased_Representation (Operand_Type) and then Compile_Time_Known_Value (Operand) and then not Kill_Range_Check (N) then declare - Val : constant Uint := Expr_Value (Operand); + Val : constant Uint := Expr_Rep_Value (Operand); begin if Compile_Time_Known_Value (Type_Low_Bound (Target_Type)) |