[Ada] Avoid touching potentially nonexistent memory
authorBob Duff <duff@adacore.com>
Tue, 17 Sep 2019 07:59:29 +0000 (07:59 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 17 Sep 2019 07:59:29 +0000 (07:59 +0000)
commit2d319f3acef1e80d7bb288a6b5d1ae76f2968b45
tree55ea3a206daf26d327742af0ed5f06646e5e1029
parent38c4e50d8c738553de6f5e7a5fee3b55728ea457
[Ada] Avoid touching potentially nonexistent memory

...in cases where the Val_2 might cross a page boundary, and the second
page is now known to exist.

Copy_Bitfield is still disabled in the compiler: no test possible.

2019-09-17  Bob Duff  <duff@adacore.com>

gcc/ada/

* libgnat/s-bituti.adb (Get_Val_2, Set_Val_2): Use new routines
for getting and setting a Val_2, avoiding touching the second
half when that half might not exist.
* exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Correct
tests for potential volatile or independent components. In
particular, do not call Prefix unless we know it's a slice.

From-SVN: r275771
gcc/ada/ChangeLog
gcc/ada/exp_ch5.adb
gcc/ada/libgnat/s-bituti.adb