[Ada] Get rid of more references to Universal_Integer in expanded code
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 20 Dec 2019 15:57:50 +0000 (16:57 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Tue, 2 Jun 2020 08:58:17 +0000 (04:58 -0400)
commit445514c037052ee4ff513a957e7c21bee36ad0d5
tree082a4533cf86230f4d2321b18cb14dfec30109b0
parentb0f920c96ac463c9d9195df2f40185535a5b8ec3
[Ada] Get rid of more references to Universal_Integer in expanded code

2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* exp_aggr.adb (Build_Array_Aggr_Code): Set the type of the PAT
on the zero used to clear the array.
* exp_attr.adb (Expand_N_Attribute_Reference)
<Attribute_Alignment>: In the CW case, directly convert from the
alignment's type to the target type if the parent is an
unchecked conversion.
* sem_res.adb (Set_String_Literal_Subtype): In the dynamic case,
use the general expression for the upper bound only when needed.
Set the base type of the index as the type of the low bound.
(Simplify_Type_Conversion): Do an intermediate conversion to the
root type of the target type if the operand is an integer
literal.
* tbuild.adb (Convert_To): Get rid of an intermediate conversion
to Universal_Integer if the inner expression has integer tyoe.
* libgnat/a-sequio.adb (Byte_Swap): Make use of an equivalent
static expression in the case statement.
gcc/ada/exp_aggr.adb
gcc/ada/exp_attr.adb
gcc/ada/libgnat/a-sequio.adb
gcc/ada/sem_res.adb
gcc/ada/tbuild.adb