diff options
author | Ed Schonberg <schonberg@adacore.com> | 2021-04-16 12:52:50 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-06-29 14:23:48 +0000 |
commit | a671959b7640b1b02c924292959f2cbe1574536a (patch) | |
tree | 8f68ef3183b5bb11496267051c57626a483557c4 /gcc/gcc.c | |
parent | 38b57d67e85df1636c5e4300defe337e28878412 (diff) | |
download | gcc-a671959b7640b1b02c924292959f2cbe1574536a.zip gcc-a671959b7640b1b02c924292959f2cbe1574536a.tar.gz gcc-a671959b7640b1b02c924292959f2cbe1574536a.tar.bz2 |
[Ada] Crash on limited array object with address clause
gcc/ada/
* exp_aggr.adb (Convert_Aggr_In_Object_Decl): After expansion of
the aggregate, the expression can be removed from the
declaration, except if the object is class-wide, in which case
the aggregate provides the actual type. In other cases the
presence of the expression may lead to spurious freezing issue.
* exp_ch3.adb (Expand_N_Object_Declaration): If the expression
in the declaration is an aggregate with delayed expansion (as is
the case for objects of a limited type, or a subsequent address
specification) the aggregate must be resolved at this point.
This resolution must not include expansion, because the
expansion of the enclosing declaration will construct the
necessary aggregate expansion.
Diffstat (limited to 'gcc/gcc.c')
0 files changed, 0 insertions, 0 deletions