[multiple changes]
2014-07-18 Thomas Quinot <quinot@adacore.com> * g-memdum.adb, g-memdum.ads: Code clean ups. 2014-07-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Check_Dependency_Clause): Update the comment on usage. Reimplement the mechanism which attempts to match a single clause of Depends against one or more clauses of Refined_Depends. (Input_Match): Removed. (Inputs_Match): Removed. (Is_Self_Referential): Removed. (Normalize_Clause): Update the call to Split_Multiple_Outputs. (Normalize_Outputs): Rename variable Split to New_Claue and update all its occurrences. (Report_Extra_Clauses): Update the comment on usage. (Split_Multiple_Outputs): Renamed to Normalize_Outputs. 2014-07-18 Gary Dismukes <dismukes@adacore.com> * i-cstrea.ads: Minor reformatting. 2014-07-18 Hristian Kirtchev <kirtchev@adacore.com> * exp_util.adb (Wrap_Statements_In_Block): Propagate both secondary stack-related flags to the generated block. * sem_ch5.adb (Analyze_Loop_Statement): Update the scope chain once the loop is relocated in a block. From-SVN: r212803
This commit is contained in:
parent
daff5ab71e
commit
3b8481cb9a
@ -1,3 +1,33 @@
|
||||
2014-07-18 Thomas Quinot <quinot@adacore.com>
|
||||
|
||||
* g-memdum.adb, g-memdum.ads: Code clean ups.
|
||||
|
||||
2014-07-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||||
|
||||
* sem_prag.adb (Check_Dependency_Clause):
|
||||
Update the comment on usage. Reimplement the mechanism which
|
||||
attempts to match a single clause of Depends against one or
|
||||
more clauses of Refined_Depends.
|
||||
(Input_Match): Removed.
|
||||
(Inputs_Match): Removed.
|
||||
(Is_Self_Referential): Removed.
|
||||
(Normalize_Clause): Update the call to Split_Multiple_Outputs.
|
||||
(Normalize_Outputs): Rename variable Split to New_Claue and update
|
||||
all its occurrences.
|
||||
(Report_Extra_Clauses): Update the comment on usage.
|
||||
(Split_Multiple_Outputs): Renamed to Normalize_Outputs.
|
||||
|
||||
2014-07-18 Gary Dismukes <dismukes@adacore.com>
|
||||
|
||||
* i-cstrea.ads: Minor reformatting.
|
||||
|
||||
2014-07-18 Hristian Kirtchev <kirtchev@adacore.com>
|
||||
|
||||
* exp_util.adb (Wrap_Statements_In_Block): Propagate both
|
||||
secondary stack-related flags to the generated block.
|
||||
* sem_ch5.adb (Analyze_Loop_Statement): Update the scope chain
|
||||
once the loop is relocated in a block.
|
||||
|
||||
2014-07-18 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* repinfo.ads: Add documentation on handling of back annotation
|
||||
|
@ -6667,13 +6667,18 @@ package body Exp_Util is
|
||||
|
||||
-- When wrapping the statements of an iterator loop, check whether
|
||||
-- the loop requires secondary stack management and if so, propagate
|
||||
-- the flag to the block. This way the secondary stack is marked and
|
||||
-- released at each iteration of the loop.
|
||||
-- the appropriate flags to the block. This ensures that the cursor
|
||||
-- is properly cleaned up at each iteration of the loop. Management
|
||||
-- is not performed when the loop contains a return statement which
|
||||
-- also uses the secondary stack as this will destroy the result
|
||||
-- prematurely.
|
||||
|
||||
Iter_Loop := Find_Enclosing_Iterator_Loop (Scop);
|
||||
|
||||
if Present (Iter_Loop) and then Uses_Sec_Stack (Iter_Loop) then
|
||||
Set_Uses_Sec_Stack (Block_Id);
|
||||
if Present (Iter_Loop) then
|
||||
Set_Sec_Stack_Needed_For_Return
|
||||
(Block_Id, Sec_Stack_Needed_For_Return (Iter_Loop));
|
||||
Set_Uses_Sec_Stack (Block_Id, Uses_Sec_Stack (Iter_Loop));
|
||||
end if;
|
||||
|
||||
return Block_Nod;
|
||||
|
@ -44,10 +44,18 @@ package body GNAT.Memory_Dump is
|
||||
-- Dump --
|
||||
----------
|
||||
|
||||
procedure Dump
|
||||
(Addr : Address;
|
||||
Count : Natural)
|
||||
is
|
||||
begin
|
||||
Dump (Addr, Count, Prefix => Absolute_Address);
|
||||
end Dump;
|
||||
|
||||
procedure Dump
|
||||
(Addr : Address;
|
||||
Count : Natural;
|
||||
Prefix : Prefix_Type := Absolute_Address)
|
||||
Prefix : Prefix_Type)
|
||||
is
|
||||
Ctr : Natural := Count;
|
||||
-- Count of bytes left to output
|
||||
|
@ -42,20 +42,36 @@ package GNAT.Memory_Dump is
|
||||
|
||||
procedure Dump
|
||||
(Addr : System.Address;
|
||||
Count : Natural;
|
||||
Prefix : Prefix_Type := Absolute_Address);
|
||||
Count : Natural);
|
||||
-- Dumps indicated number (Count) of bytes, starting at the address given
|
||||
-- by Addr. The coding of this routine in its current form assumes the case
|
||||
-- of a byte addressable machine (and is therefore inapplicable to machines
|
||||
-- like the AAMP, where the storage unit is not 8 bits). The output is one
|
||||
-- or more lines in the following format, which is for the case of 32-bit
|
||||
-- addresses (64-bit addresses are handled appropriately):
|
||||
--
|
||||
|
||||
-- 0234_3368: 66 67 68 . . . 73 74 75 "fghijklmnopqstuv"
|
||||
--
|
||||
|
||||
-- All but the last line have 16 bytes. A question mark is used in the
|
||||
-- string data to indicate a non-printable character.
|
||||
--
|
||||
-- Please document Prefix ???
|
||||
|
||||
procedure Dump
|
||||
(Addr : System.Address;
|
||||
Count : Natural;
|
||||
Prefix : Prefix_Type);
|
||||
-- Same as above, but allows the selection of different line formats.
|
||||
-- If Prefix is set to Absolute_Address, the output is identical to the
|
||||
-- above version, each line starting with the absolute address of the
|
||||
-- first dumped storage element.
|
||||
|
||||
-- If Prefix is set to Offset, then instead each line starts with the
|
||||
-- indication of the offset relative to Addr:
|
||||
|
||||
-- 00: 66 67 68 . . . 73 74 75 "fghijklmnopqstuv"
|
||||
|
||||
-- Finally if Prefix is set to None, the prefix is suppressed altogether,
|
||||
-- and only the memory contents are displayed:
|
||||
|
||||
-- 66 67 68 . . . 73 74 75 "fghijklmnopqstuv"
|
||||
|
||||
end GNAT.Memory_Dump;
|
||||
|
@ -230,9 +230,9 @@ package Interfaces.C_Streams is
|
||||
procedure set_text_mode (handle : int);
|
||||
|
||||
-- set_wide_text_mode is as set_text_mode but switches the translation to
|
||||
-- 16-bits wide-character instead of 8-bits character. Again this routine
|
||||
-- has not effect if text_translation_required is false. On Windows this
|
||||
-- is used to have proper 16-bits wide string output on the console for
|
||||
-- 16-bit wide-character instead of 8-bit character. Again, this routine
|
||||
-- has no effect if text_translation_required is false. On Windows this
|
||||
-- is used to have proper 16-bit wide-string output on the console for
|
||||
-- example.
|
||||
|
||||
procedure set_wide_text_mode (handle : int);
|
||||
|
@ -2885,6 +2885,12 @@ package body Sem_Ch5 is
|
||||
|
||||
Add_Block_Identifier (Block_Nod, Block_Id);
|
||||
|
||||
-- Fix the loop scope once the loop statement is relocated inside
|
||||
-- the block, otherwise the loop and the block end up sharing the
|
||||
-- same parent scope.
|
||||
|
||||
Set_Scope (Ent, Block_Id);
|
||||
|
||||
-- The expansion of iterator loops generates an iterator in order
|
||||
-- to traverse the elements of a container:
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user