From: charlet Date: Tue, 4 Feb 2014 14:25:46 +0000 (+0000) Subject: 2014-02-04 Gary Dismukes X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8c784c07560bd8f4578be9a20e28dc6c559c611d;p=thirdparty%2Fgcc.git 2014-02-04 Gary Dismukes * g-comlin.adb: Minor typo fix. 2014-02-04 Ed Schonberg * freeze.adb (Freeze_All): Types derived from a formal access_to_classwide type do not have a finalization master. 2014-02-04 Robert Dewar * sprint.adb: Minor reformatting. 2014-02-04 Robert Dewar * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207466 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index d17dbbc32236..507b318a659d 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,24 @@ +2014-02-04 Gary Dismukes + + * g-comlin.adb: Minor typo fix. + +2014-02-04 Ed Schonberg + + * freeze.adb (Freeze_All): Types derived from a formal + access_to_classwide type do not have a finalization master. + +2014-02-04 Robert Dewar + + * sprint.adb: Minor reformatting. + +2014-02-04 Robert Dewar + + * 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 * exp_ch9.adb: Minor reformatting. diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index 06c69b1fc369..39a80d3ad461 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -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; ---------------------------- diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index 3b5f01b9ec6b..440d562ce5ce 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -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); diff --git a/gcc/ada/g-comlin.adb b/gcc/ada/g-comlin.adb index 4f84bd9e2821..0f74bbfdc602 100644 --- a/gcc/ada/g-comlin.adb +++ b/gcc/ada/g-comlin.adb @@ -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. diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads index 6aa28f2153a1..2885523512ec 100644 --- a/gcc/ada/sinfo.ads +++ b/gcc/ada/sinfo.ads @@ -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 diff --git a/gcc/ada/sprint.adb b/gcc/ada/sprint.adb index 1f88158ea643..e90947432bb9 100644 --- a/gcc/ada/sprint.adb +++ b/gcc/ada/sprint.adb @@ -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));