Commit c9a6b38f by Arnaud Charlet

[multiple changes]

2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>

	* types.h: Minor cosmetic fix.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Remove refs of N_Conditional_Expression and
	N_Parameterized_Expression.

2012-10-02  Thomas Quinot  <quinot@adacore.com>

	* exp_aggr.adb (Get_Component_Val): Rewrite code that computes
	justification of bits in enclosing word in an attempt to make
	it clearer.

From-SVN: r191973
parent f563ce55
2012-10-02 Eric Botcazou <ebotcazou@adacore.com>
* types.h: Minor cosmetic fix.
2012-10-02 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interfaces/decl.c (elaborate_expression_1): Use the variable for
bounds of loop iteraration scheme only for locally defined subtypes.
......@@ -8,6 +12,17 @@
2012-10-02 Robert Dewar <dewar@adacore.com>
* sinfo.ads: Remove refs of N_Conditional_Expression and
N_Parameterized_Expression.
2012-10-02 Thomas Quinot <quinot@adacore.com>
* exp_aggr.adb (Get_Component_Val): Rewrite code that computes
justification of bits in enclosing word in an attempt to make
it clearer.
2012-10-02 Robert Dewar <dewar@adacore.com>
* par_sco.adb, sem_ch3.adb, layout.adb, exp_ch7.adb, exp_imgv.adb,
exp_util.adb, exp_util.ads, exp_attr.adb, sinfo.adb, sinfo.ads,
exp_ch9.adb, style.ads, scos.ads, debug.adb, einfo.ads, scng.adb,
......
......@@ -6167,21 +6167,30 @@ package body Exp_Aggr is
Expr : Node_Id;
-- Next expression from positional parameters of aggregate
Left_Justified : Boolean;
-- Set True if we are filling the high order bits of the target
-- value (i.e. the value is left justified).
begin
-- For little endian, we fill up the low order bits of the target
-- value. For big endian we fill up the high order bits of the
-- target value (which is a left justified modular value).
-- Above comment needs extending for the code below, which is by
-- the way incomprehensible, I have no idea what a xor b xor c
-- means, and it hurts my brain to try to figure it out???
-- Let's introduce a new variable, perhaps Effectively_Big_Endian
-- and compute it with clearer code ???
Left_Justified := Bytes_Big_Endian;
if Bytes_Big_Endian
xor Debug_Flag_8
xor Reverse_Storage_Order (Base_Type (Typ))
then
-- Switch justification if using -gnatd8
if Debug_Flag_8 then
Left_Justified := not Left_Justified;
end if;
-- Switch justfification if reverse storage order
if Reverse_Storage_Order (Base_Type (Typ)) then
Left_Justified := not Left_Justified;
end if;
if Left_Justified then
Shift := Csiz * (Len - 1);
Incr := -Csiz;
else
......
......@@ -12439,10 +12439,4 @@ package Sinfo is
-- Rename N_Return_Statement to be N_Simple_Return_Statement. Clients
-- should refer to N_Simple_Return_Statement.
N_Parameterized_Expression : constant Node_Kind := N_Expression_Function;
-- Old name for expression function (used during Ada 2012 transition)
N_Conditional_Expression : Node_Kind renames N_If_Expression;
-- Old name for if expression (used during Ada 2012 transition)
end Sinfo;
......@@ -384,4 +384,3 @@ typedef Int Mechanism_Type;
#define SE_Object_Too_Large 34
#define LAST_REASON_CODE 34
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment