[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:
Arnaud Charlet 2014-07-18 12:03:34 +02:00
parent daff5ab71e
commit 3b8481cb9a
7 changed files with 415 additions and 659 deletions

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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