diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-07-30 14:32:24 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-07-30 14:32:24 +0000 |
commit | a92b003e62dc136a8e9fd5ad12a969e6055ab0da (patch) | |
tree | b1cf07aef5bdb3dcf68a1d943d6495a81c0d1952 /gcc/ada/exp_aggr.adb | |
parent | ac07802accadffbc9a2d932c14ad599d8e38fe91 (diff) | |
download | gcc-a92b003e62dc136a8e9fd5ad12a969e6055ab0da.tar.gz |
2014-07-30 Robert Dewar <dewar@adacore.com>
* exp_aggr.adb: Update comments.
* a-chtgbo.adb, a-chtgbo.ads, a-cbhase.adb, a-cbhase.ads: Minor
reformatting.
2014-07-30 Robert Dewar <dewar@adacore.com>
* cstand.adb (New_Standard_Entity): New version takes name
string to call Make_Name.
(Create_Standard): Use this routine to set name before setting other
fields.
2014-07-30 Robert Dewar <dewar@adacore.com>
* exp_attr.adb (Expand_Attribute, case First): Rewrite simple
entity reference.
(Expand_Attribute, case Last): Ditto.
* exp_ch3.adb (Constrain_Index): New calling sequence for
Process_Range_Expr_In_Decl.
(Expand_N_Object_Declaration): Avoid setting Is_Known_Valid in one
problematical case.
* sem_ch3.adb (Constrain_Index): New calling sequence for
Process_Range_Expr_In_Decl.
(Set_Scalar_Range_For_Subtype): ditto.
(Process_Range_Expr_In_Decl): Create constants to hold bounds for
subtype.
* sem_ch3.ads (Process_Range_Expr_In_Decl): Add Subtyp parameter.
* sem_eval.adb (Compile_Time_Compare): Make sure we use base
types if we are not assuming no invalid values.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213286 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_aggr.adb')
-rw-r--r-- | gcc/ada/exp_aggr.adb | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index b6602503f43..5ff1421db16 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -4012,11 +4012,10 @@ package body Exp_Aggr is -- 4. The component size is a multiple of Storage_Unit - -- 5. The component size is exactly Storage_Unit or the expression is - -- an integer whose unsigned value is the binary concatenation of - -- K times its remainder modulo 2**Storage_Unit. - - -- What on earth does 5 mean, incomprehensible??? + -- 5. The component size is Storage_Unit or the value is of the form + -- M * (1 + A**1 + A**2 + .. A**(K-1)) where A = 2**(Storage_Unit) + -- and M in 1 .. A-1. This can also be viewed as K occurrences of + -- the 8-bit value M, concatenated together. -- The ultimate goal is to generate a call to a fast memset routine -- specifically optimized for the target. @@ -4087,7 +4086,7 @@ package body Exp_Aggr is Value := Value - Expr_Value (Type_Low_Bound (Ctyp)); end if; - -- 0 and -1 immediately satisfy check #4 + -- 0 and -1 immediately satisfy check #5 if Value = Uint_0 or else Value = Uint_Minus_1 then return True; |