diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2024-11-21 15:28:43 +0100 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2024-12-12 10:58:01 +0100 |
commit | 481fcc676950ee279d37f1cec84834dbb2aba87b (patch) | |
tree | 856879229c48b4b04e6a73519097e9562f8c479a /gcc/value-range.cc | |
parent | bbcf4d2ab6f4d4e97605a2754051fd53c9fb22c2 (diff) | |
download | gcc-481fcc676950ee279d37f1cec84834dbb2aba87b.zip gcc-481fcc676950ee279d37f1cec84834dbb2aba87b.tar.gz gcc-481fcc676950ee279d37f1cec84834dbb2aba87b.tar.bz2 |
ada: Elide the copy for bit-packed aggregates in object declarations
The in-place expansion has been historically disabled for them, but there
does not seem to be any good reason left for this. However, this requires
a small trick in order for the expanded code not to be flagged as using the
object uninitialized by the code generator.
gcc/ada/ChangeLog:
* exp_aggr.adb (Convert_Aggr_In_Object_Decl): Clear the component
referenced on the right-hand side of the first assignment generated
for a bit-packed array, if any.
(Expand_Array_Aggregate): Do not exclude aggregates of bit-packed
array types in object declarations from in-place expansion.
* sem_eval.adb (Eval_Indexed_Component): Do not attempt a constant
evaluation for a bit-packed array type.
Diffstat (limited to 'gcc/value-range.cc')
0 files changed, 0 insertions, 0 deletions