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
|
-- dY Enable configurable run-time mode
|
||||||
-- dZ Generate listing showing the contents of the dispatch tables
|
-- dZ Generate listing showing the contents of the dispatch tables
|
||||||
|
|
||||||
-- d.a
|
-- d.a Disable OpenVMS alignment optimization on types
|
||||||
-- d.b
|
-- d.b
|
||||||
-- d.c
|
-- d.c
|
||||||
-- d.d
|
-- d.d
|
||||||
@ -128,7 +128,7 @@ package body Debug is
|
|||||||
-- d.F
|
-- d.F
|
||||||
-- d.G
|
-- d.G
|
||||||
-- d.H
|
-- d.H
|
||||||
-- d.I
|
-- d.I Inspector mode
|
||||||
-- d.J
|
-- d.J
|
||||||
-- d.K
|
-- d.K
|
||||||
-- d.L
|
-- d.L
|
||||||
@ -495,6 +495,12 @@ package body Debug is
|
|||||||
-- - In case of abstract subprograms the text "is abstract" is
|
-- - In case of abstract subprograms the text "is abstract" is
|
||||||
-- added at the end of the line.
|
-- 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
|
-- d.f Suppress folding of static expressions. This of course results
|
||||||
-- in seriously non-conforming behavior, but is useful sometimes
|
-- in seriously non-conforming behavior, but is useful sometimes
|
||||||
-- when tracking down handling of complex expressions.
|
-- 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
|
-- fully compiled and analyzed, they just get eliminated from the
|
||||||
-- code generation step.
|
-- 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
|
-- d1 Error messages have node numbers where possible. Normally error
|
||||||
-- messages have only source locations. This option is useful when
|
-- messages have only source locations. This option is useful when
|
||||||
-- debugging errors caused by expanded code, where the source location
|
-- debugging errors caused by expanded code, where the source location
|
||||||
|
@ -819,6 +819,7 @@ package body Layout is
|
|||||||
OK : Boolean;
|
OK : Boolean;
|
||||||
LLo : Uint;
|
LLo : Uint;
|
||||||
LHi : Uint;
|
LHi : Uint;
|
||||||
|
pragma Warnings (Off, LHi);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Set_Parent (Len, E);
|
Set_Parent (Len, E);
|
||||||
@ -1908,7 +1909,9 @@ package body Layout is
|
|||||||
First_Discr : Entity_Id;
|
First_Discr : Entity_Id;
|
||||||
Last_Discr : Entity_Id;
|
Last_Discr : Entity_Id;
|
||||||
Esiz : SO_Ref;
|
Esiz : SO_Ref;
|
||||||
RM_Siz : SO_Ref;
|
|
||||||
|
RM_Siz : SO_Ref;
|
||||||
|
pragma Warnings (Off, SO_Ref);
|
||||||
|
|
||||||
RM_Siz_Expr : Node_Id := Empty;
|
RM_Siz_Expr : Node_Id := Empty;
|
||||||
-- Expression for the evolving RM_Siz value. This is typically a
|
-- 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
|
-- 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
|
-- record is given an alignment of 4. This is more consistent with
|
||||||
-- what DEC Ada does.
|
-- 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 Siz > System_Storage_Unit then
|
|
||||||
|
|
||||||
|
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
|
if Siz <= 2 * System_Storage_Unit then
|
||||||
Align := 2;
|
Align := 2;
|
||||||
elsif Siz <= 4 * System_Storage_Unit then
|
elsif Siz <= 4 * System_Storage_Unit then
|
||||||
|
Loading…
Reference in New Issue
Block a user