aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/layout.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2010-10-08 12:32:07 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2010-10-08 12:32:07 +0200
commit094cefda513d464a72d77a6e892fc3c721d67dd6 (patch)
treec604f48cd1d2146c097de1c9ebfebfdbcf9457ec /gcc/ada/layout.adb
parent0ac2a660757afcfe00a3e81973ac4c00555dde40 (diff)
downloadgcc-094cefda513d464a72d77a6e892fc3c721d67dd6.zip
gcc-094cefda513d464a72d77a6e892fc3c721d67dd6.tar.gz
gcc-094cefda513d464a72d77a6e892fc3c721d67dd6.tar.bz2
[multiple changes]
2010-10-08 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Resolve_Array_Aggregate): If the expression in an others choice is a literal analyze it now to enable later optimizations. * exp_aggr.adb (Expand_Record_Aggregate): An aggregate with static size and components can be handled by the backend even if it is of a limited type. 2010-10-08 Arnaud Charlet <charlet@adacore.com> * a-rttiev.adb (task Timer): Since this package may be elaborated before System.Interrupt, we need to call Setup_Interrupt_Mask explicitly to ensure that this task has the proper signal mask. 2010-10-08 Robert Dewar <dewar@adacore.com> * freeze.adb (Freeze_Entity): For array case, move some processing for pragma Pack, Component_Size clause and atomic/volatile components here instead of trying to do the job in Sem_Ch13 and Freeze. * layout.adb: Use new Addressable function * sem_ch13.adb (Analyze_Attribute_Representation_Clause, case Component_Size): Move some handling to freeze point in Freeze.Freeze_Entity. * sem_prag.adb (Analyze_pragma, case Pack): Move some handling to freeze point in Freese.Freeze_Entity. * sem_util.ads, sem_util.adb (Addressable): New function. From-SVN: r165159
Diffstat (limited to 'gcc/ada/layout.adb')
-rw-r--r--gcc/ada/layout.adb9
1 files changed, 2 insertions, 7 deletions
diff --git a/gcc/ada/layout.adb b/gcc/ada/layout.adb
index be2bd80..ec685b9 100644
--- a/gcc/ada/layout.adb
+++ b/gcc/ada/layout.adb
@@ -2568,14 +2568,9 @@ package body Layout is
then
declare
S : constant Uint := Esize (CT);
-
begin
- if S = 8 or else
- S = 16 or else
- S = 32 or else
- S = 64
- then
- Set_Component_Size (E, Esize (CT));
+ if Addressable (S) then
+ Set_Component_Size (E, S);
end if;
end;
end if;