diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-05-15 13:02:25 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-05-15 13:02:25 +0200 |
commit | 8c5b2819fa3377dec06665fe8dfded5e3c638bc9 (patch) | |
tree | 03a8cd81be1c8ea5788d3f7a31ca35040a709cdc /gcc/ada/exp_ch5.adb | |
parent | 3ee8dde59cd9a08b9ad51aabed67dea280720fdf (diff) | |
download | gcc-8c5b2819fa3377dec06665fe8dfded5e3c638bc9.zip gcc-8c5b2819fa3377dec06665fe8dfded5e3c638bc9.tar.gz gcc-8c5b2819fa3377dec06665fe8dfded5e3c638bc9.tar.bz2 |
[multiple changes]
2012-05-15 Yannick Moy <moy@adacore.com>
* aspects.ads: Minor addition of comments to provide info on
how to add new aspects.
2012-05-15 Thomas Quinot <quinot@adacore.com>
* osint.ads: Minor reformatting.
2012-05-15 Thomas Quinot <quinot@adacore.com>
* exp_ch5.adb, exp_pakd.adb, sem_util.adb, sem_util.ads
(Expand_Assign_Array): Handle the case of a packed bit array within a
record with reverse storage order (assign element by element in that
case).
(In_Reverse_Storage_Order_Record): New subprogram,
code extracted from Exp_Pakd.
2012-05-15 Yannick Moy <moy@adacore.com>
* a-ngelfu.ads: Add postconditions using Ada 2012
aspect syntax, reflecting some of the RM requirements for these
functions, from Annex A.5.1 or G.2.4.
2012-05-15 Thomas Quinot <quinot@adacore.com>
* adaint.c: Minor fix: move misplaced comment.
2012-05-15 Doug Rupp <rupp@adacore.com>
* vms_data.ads: Enhance help for /IMMEDIATE_ERRORS to discourage
use by customers.
From-SVN: r187525
Diffstat (limited to 'gcc/ada/exp_ch5.adb')
-rw-r--r-- | gcc/ada/exp_ch5.adb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ada/exp_ch5.adb b/gcc/ada/exp_ch5.adb index 82fc705..0acb74b 100644 --- a/gcc/ada/exp_ch5.adb +++ b/gcc/ada/exp_ch5.adb @@ -344,7 +344,18 @@ package body Exp_Ch5 is elsif Has_Controlled_Component (L_Type) then Loop_Required := True; - -- If object is atomic, we cannot tolerate a loop + -- If changing scalar storage order and assigning a bit packed arrau, + -- force loop expansion. + + elsif Is_Bit_Packed_Array (L_Type) + and then + (In_Reverse_Storage_Order_Record (Rhs) + /= + In_Reverse_Storage_Order_Record (Lhs)) + then + Loop_Required := True; + + -- If object is atomic, we cannot tolerate a loop elsif Is_Atomic_Object (Act_Lhs) or else |