diff options
author | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-22 17:43:43 -0300 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-22 17:43:43 -0300 |
commit | a926878ddbd5a98b272c22171ce58663fc04c3e0 (patch) | |
tree | 86af256e5d9a9c06263c00adc90e5fe348008c43 /gcc/ada/layout.adb | |
parent | 542730f087133690b47e036dfd43eb0db8a650ce (diff) | |
parent | 07cbaed8ba7d1b6e4ab3a9f44175502a4e1ecdb1 (diff) | |
download | gcc-devel/autopar_devel.zip gcc-devel/autopar_devel.tar.gz gcc-devel/autopar_devel.tar.bz2 |
Merge branch 'autopar_rebase2' into autopar_develdevel/autopar_devel
Quickly commit changes in the rebase branch.
Diffstat (limited to 'gcc/ada/layout.adb')
-rw-r--r-- | gcc/ada/layout.adb | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ada/layout.adb b/gcc/ada/layout.adb index ce2fe30..73812f6 100644 --- a/gcc/ada/layout.adb +++ b/gcc/ada/layout.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -467,6 +467,22 @@ package body Layout is end if; end; end if; + + -- For non-packed arrays set the alignment of the array to the + -- alignment of the component type if it is unknown. Skip this + -- in atomic/VFA case since a larger alignment may be needed. + + if Is_Array_Type (E) + and then not Is_Packed (E) + and then Unknown_Alignment (E) + and then Known_Alignment (Component_Type (E)) + and then Known_Static_Component_Size (E) + and then Known_Static_Esize (Component_Type (E)) + and then Component_Size (E) = Esize (Component_Type (E)) + and then not Is_Atomic_Or_VFA (E) + then + Set_Alignment (E, Alignment (Component_Type (E))); + end if; end if; -- Even if the backend performs the layout, we still do a little in |