Commit ebdaa81b by Arnaud Charlet

[multiple changes]

2014-02-04  Gary Dismukes  <dismukes@adacore.com>

	* g-comlin.adb: Minor typo fix.

2014-02-04  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_All): Types derived from a formal
	access_to_classwide type do not have a finalization master.

2014-02-04  Robert Dewar  <dewar@adacore.com>

	* sprint.adb: Minor reformatting.

2014-02-04  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate
	cases where Actions is a null list.
	* sinfo.ads (N_Expression_With_Actions): Actions can be
	temporarily empty during semantic analysis, but must be non-empty
	in the final expanded tree.

From-SVN: r207466
parent 029ce7a2
2014-02-04 Gary Dismukes <dismukes@adacore.com>
* g-comlin.adb: Minor typo fix.
2014-02-04 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_All): Types derived from a formal
access_to_classwide type do not have a finalization master.
2014-02-04 Robert Dewar <dewar@adacore.com>
* sprint.adb: Minor reformatting.
2014-02-04 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate
cases where Actions is a null list.
* sinfo.ads (N_Expression_With_Actions): Actions can be
temporarily empty during semantic analysis, but must be non-empty
in the final expanded tree.
2014-01-31 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb: Minor reformatting.
......
......@@ -5111,11 +5111,23 @@ package body Exp_Ch4 is
begin
Act := First (Actions (N));
while Present (Act) loop
Process_Single_Action (Act);
Next (Act);
end loop;
-- Deal with case where there are no actions. In this case we simply
-- replace the node by its expression since we don't need the actions
-- and the specification of this node does not allow a null action list.
if No (Act) then
Replace (N, Relocate_Node (Expression (N)));
-- Otherwise process the actions as described above
else
loop
Process_Single_Action (Act);
Next (Act);
exit when No (Act);
end loop;
end if;
end Expand_N_Expression_With_Actions;
----------------------------
......
......@@ -1647,13 +1647,13 @@ package body Freeze is
-- where a component type is private and the controlled full type
-- occurs after the access type is frozen. Cases that don't need a
-- finalization master are generic formal types (the actual type will
-- have it) and types with Java and CIL conventions, since those are
-- used for API bindings. (Are there any other cases that should be
-- excluded here???)
-- have it) and types derived from them, and types with Java and CIL
-- conventions, since those are used for API bindings.
-- (Are there any other cases that should be excluded here???)
elsif Is_Access_Type (E)
and then Comes_From_Source (E)
and then not Is_Generic_Type (E)
and then not Is_Generic_Type (Root_Type (E))
and then Needs_Finalization (Designated_Type (E))
then
Build_Finalization_Master (E);
......
......@@ -1683,7 +1683,7 @@ package body GNAT.Command_Line is
-- Note: When a Command_Line object is associated with a
-- Command_Line_Config (which is mostly the case for tools
-- that let users chose the command line before spawning
-- that let users choose the command line before spawning
-- other tools, for instance IDEs), the configuration of
-- the switches must be taken from the Command_Line_Config.
......
......@@ -7355,8 +7355,11 @@ package Sinfo is
-- Expression (Node3)
-- plus fields for expression
-- Note: the actions list is always non-null, since we would never have
-- created this node if there weren't some actions.
-- Note: In the final generated tree presented to the code generator,
-- the actions list is always non-null, since there is no point in this
-- node if the actions are Empty. During semantic analysis there are
-- cases where it is convenient to temporarily generate an empty actions
-- list, but the Expander removes such cases.
-- Note: Expression may be a Null_Statement, in which case the
-- N_Expression_With_Actions has type Standard_Void_Type. However some
......
......@@ -1131,7 +1131,7 @@ package body Sprint is
if Present (Identifier (Node))
and then (not Has_Created_Identifier (Node)
or else not Dump_Original_Only)
or else not Dump_Original_Only)
then
Write_Rewrite_Str ("<<<");
Write_Id (Identifier (Node));
......
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