summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_aggr.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-07-30 14:32:24 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-07-30 14:32:24 +0000
commita92b003e62dc136a8e9fd5ad12a969e6055ab0da (patch)
treeb1cf07aef5bdb3dcf68a1d943d6495a81c0d1952 /gcc/ada/exp_aggr.adb
parentac07802accadffbc9a2d932c14ad599d8e38fe91 (diff)
downloadgcc-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.adb11
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;