debug.adb: Document use of -gnatd.a and -gnatd.I
2007-10-15 Tristan Gingold <gingold@adacore.com> * debug.adb: Document use of -gnatd.a and -gnatd.I * layout.adb: On OpenVMS -gnatd.a disables alignment optimization. From-SVN: r129321
This commit is contained in:
parent
250db54966
commit
a8ee464537
@ -93,7 +93,7 @@ package body Debug is
|
||||
-- dY Enable configurable run-time mode
|
||||
-- dZ Generate listing showing the contents of the dispatch tables
|
||||
|
||||
-- d.a
|
||||
-- d.a Disable OpenVMS alignment optimization on types
|
||||
-- d.b
|
||||
-- d.c
|
||||
-- d.d
|
||||
@ -128,7 +128,7 @@ package body Debug is
|
||||
-- d.F
|
||||
-- d.G
|
||||
-- d.H
|
||||
-- d.I
|
||||
-- d.I Inspector mode
|
||||
-- d.J
|
||||
-- d.K
|
||||
-- d.L
|
||||
@ -495,6 +495,12 @@ package body Debug is
|
||||
-- - In case of abstract subprograms the text "is abstract" is
|
||||
-- added at the end of the line.
|
||||
|
||||
-- d.a Disable OpenVMS alignment optimization on types. On OpenVMS,
|
||||
-- record types whose size is odd "in between" (e.g. 17 bits) are
|
||||
-- over-aligned to the next power of 2 (until 8 bytes). This over
|
||||
-- alignment improve generated code and is more consistent with
|
||||
-- what Dec Ada does.
|
||||
|
||||
-- d.f Suppress folding of static expressions. This of course results
|
||||
-- in seriously non-conforming behavior, but is useful sometimes
|
||||
-- when tracking down handling of complex expressions.
|
||||
@ -533,6 +539,10 @@ package body Debug is
|
||||
-- fully compiled and analyzed, they just get eliminated from the
|
||||
-- code generation step.
|
||||
|
||||
-- d.I Inspector mode. Relevant for VM_Target /= None. Try to generate
|
||||
-- byte code, even in case of unsupported construct, for the sake
|
||||
-- of static analysis tools.
|
||||
|
||||
-- d1 Error messages have node numbers where possible. Normally error
|
||||
-- messages have only source locations. This option is useful when
|
||||
-- debugging errors caused by expanded code, where the source location
|
||||
|
@ -819,6 +819,7 @@ package body Layout is
|
||||
OK : Boolean;
|
||||
LLo : Uint;
|
||||
LHi : Uint;
|
||||
pragma Warnings (Off, LHi);
|
||||
|
||||
begin
|
||||
Set_Parent (Len, E);
|
||||
@ -1908,7 +1909,9 @@ package body Layout is
|
||||
First_Discr : Entity_Id;
|
||||
Last_Discr : Entity_Id;
|
||||
Esiz : SO_Ref;
|
||||
RM_Siz : SO_Ref;
|
||||
|
||||
RM_Siz : SO_Ref;
|
||||
pragma Warnings (Off, SO_Ref);
|
||||
|
||||
RM_Siz_Expr : Node_Id := Empty;
|
||||
-- Expression for the evolving RM_Siz value. This is typically a
|
||||
@ -2789,10 +2792,13 @@ package body Layout is
|
||||
|
||||
-- On VMS, also reset for odd "in between" sizes, e.g. a 17-bit
|
||||
-- record is given an alignment of 4. This is more consistent with
|
||||
-- what DEC Ada does.
|
||||
|
||||
elsif OpenVMS_On_Target and then Siz > System_Storage_Unit then
|
||||
-- what DEC Ada does (-gnatd.a turns this off which can be used to
|
||||
-- examine the value of this special transformation).
|
||||
|
||||
elsif OpenVMS_On_Target
|
||||
and then not Debug_Flag_Dot_A
|
||||
and then Siz > System_Storage_Unit
|
||||
then
|
||||
if Siz <= 2 * System_Storage_Unit then
|
||||
Align := 2;
|
||||
elsif Siz <= 4 * System_Storage_Unit then
|
||||
|
Loading…
Reference in New Issue
Block a user