From 37c52aaf103bd08476c8fc78be33539866bcef1d Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 4 Nov 2011 10:55:41 +0000 Subject: 2011-11-04 Robert Dewar * sem_warn.adb (Warn_On_Useless_Assignment): More accurate test for call vs assign. * gcc-interface/Make-lang.in: Update dependencies. 2011-11-04 Robert Dewar * sem_prag.adb: Detect more cases of Long_Float inconsistencies at compile time. 2011-11-04 Matthew Heaney * Makefile.rtl, impunit.adb: Added a-sfecin.ads, * a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb] * a-sfecin.ads, a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb]: New files. 2011-11-04 Geert Bosch * i-forbla-unimplemented.ads, s-gecola.adb, s-gecola.ads, s-gerebl.adb, s-gerebl.ads, i-forbla.adb, i-forbla.ads, i-forlap.ads, i-forbla-darwin.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads: Remove partial interface to BLAS/LAPACK. * gcc-interface/Makefile.in: Remove libgnala and related objects. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180935 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/sem_prag.adb | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'gcc/ada/sem_prag.adb') diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 9de2f1f0320..70270aba268 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -10952,7 +10952,8 @@ package body Sem_Prag is -- pragma Long_Float (D_Float | G_Float); - when Pragma_Long_Float => + when Pragma_Long_Float => Long_Float : declare + begin GNAT_Pragma; Check_Valid_Configuration_Pragma; Check_Arg_Count (1); @@ -10967,22 +10968,42 @@ package body Sem_Prag is if Chars (Get_Pragma_Arg (Arg1)) = Name_D_Float then if Opt.Float_Format_Long = 'G' then - Error_Pragma ("G_Float previously specified"); - end if; + Error_Pragma_Arg + ("G_Float previously specified", Arg1); + + elsif Current_Sem_Unit /= Main_Unit + and then Opt.Float_Format_Long /= 'D' + then + Error_Pragma_Arg + ("main unit not compiled with pragma Long_Float (D_Float)", + "\pragma% must be used consistently for whole partition", + Arg1); - Opt.Float_Format_Long := 'D'; + else + Opt.Float_Format_Long := 'D'; + end if; -- G_Float case (this is the default, does not need overriding) else if Opt.Float_Format_Long = 'D' then Error_Pragma ("D_Float previously specified"); - end if; - Opt.Float_Format_Long := 'G'; + elsif Current_Sem_Unit /= Main_Unit + and then Opt.Float_Format_Long /= 'G' + then + Error_Pragma_Arg + ("main unit not compiled with pragma Long_Float (G_Float)", + "\pragma% must be used consistently for whole partition", + Arg1); + + else + Opt.Float_Format_Long := 'G'; + end if; end if; Set_Standard_Fpt_Formats; + end Long_Float; ----------------------- -- Machine_Attribute -- -- cgit v1.2.1 From 31c965795756c0367c18f4085e1dc81d82989c67 Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 4 Nov 2011 10:58:44 +0000 Subject: 2011-11-04 Robert Dewar * exp_ch2.adb (Expand_Entity_Reference): Extend handling of atomic sync to type case. * sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync can apply to types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180938 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/sem_prag.adb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/ada/sem_prag.adb') diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 70270aba268..e1bf31be23a 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -5465,7 +5465,7 @@ package body Sem_Prag is and then not Is_Atomic (E) then Error_Msg_N - ("pragma & requires atomic variable", + ("pragma & requires atomic type or variable", Pragma_Identifier (Original_Node (N))); end if; -- cgit v1.2.1 From 4f832383ce910fcf2a4c002f0a28cdd2681cb8b5 Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 4 Nov 2011 11:00:33 +0000 Subject: 2011-11-04 Robert Dewar * sem_prag.adb: Minor reformatting. * gnat_rm.texi: Update documentation for pragma Warnings (Off, "***") usage. * exp_ch2.adb (Expand_Entity_Reference): Only set Atomic_Sync_Required on entities that are variables. Doesn't make any sense on anything else. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180939 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/sem_prag.adb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/ada/sem_prag.adb') diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index e1bf31be23a..e4c02d5adc4 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -14395,7 +14395,7 @@ package body Sem_Prag is -- actual is a conversion. Retrieve the real entity name. if (In_Instance_Body - or else In_Inlined_Body) + or else In_Inlined_Body) and then Nkind (E_Id) = N_Unchecked_Type_Conversion then E_Id := Expression (E_Id); -- cgit v1.2.1 From d306cbee92c9e9dc2bb4f4d013b713f2588a23e0 Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 4 Nov 2011 12:04:55 +0000 Subject: 2011-11-04 Robert Dewar * exp_ch2.adb (Expand_Entity_Reference): Do not set Atomic_Sync_Required for the case of a prefix of an attribute. * exp_ch4.adb (Expand_N_Explicit_Dereference): May require atomic synchronization (Expand_N_Indexed_Component): Ditto. (Expand_B_Selected_Component): Ditto. * sem_prag.adb (Process_Suppress_Unsuppress): Disable/Enable_Atomic_Synchronization can now occur for array types with pragma Atomic_Components. * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now occur on N_Explicit_Dereference nodes and on N_Indexed_Component nodes. 2011-11-04 Gary Dismukes * gnat_ugn.texi: Editorial corrections for gnattest section. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180943 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/sem_prag.adb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/ada/sem_prag.adb') diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index e4c02d5adc4..c301382a496 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -5462,7 +5462,7 @@ package body Sem_Prag is -- a non-atomic variable. if C = Atomic_Synchronization - and then not Is_Atomic (E) + and then not (Is_Atomic (E) or else Has_Atomic_Components (E)) then Error_Msg_N ("pragma & requires atomic type or variable", -- cgit v1.2.1 From 4282d34207e329ab5c6fcf67aa22a54ed0cce433 Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 4 Nov 2011 13:45:01 +0000 Subject: 2011-11-04 Yannick Moy * atree.adb, atree.ads (Set_Original_Node): New set procedure. * sem_ch13.adb (Analyze_Aspect_Specifications/Pre_Post_Aspects): In ASIS mode, no splitting of aspects between conjuncts. (Analyze_Aspect_Specifications/Aspect_Test_Case): Make pragma expressions refer to the original aspect expressions through the Original_Node link. This is used in semantic analysis for ASIS mode, so that the original expression also gets analyzed. * sem_prag.adb (Preanalyze_TC_Args, Check_Precondition_Postcondition, Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragma generated from a source aspect, also analyze the original aspect expression. (Check_Expr_Is_Static_Expression): New procedure similar to existing procedure Check_Arg_Is_Static_Expression, except called on expression inside pragma. 2011-11-04 Tristan Gingold * prj-env.adb, prj-env.ads (Find_Name_In_Path): New function, from Find_Project.Try_Path_Name. (Find_Project): Use Find_Name_In_Path to implement Try_Path_Name. 2011-11-04 Eric Botcazou * s-atocou.ads (Atomic_Counter): Remove redundant pragma Volatile. 2011-11-04 Pascal Obry * projects.texi: Add short description for qualifiers aggregate and aggregate library. 2011-11-04 Matthew Heaney * Makefile.rtl, impunit.adb: Added a-cogeso.ad[sb] * a-cgaaso.adb: Replaced implementation with instantiation of Generic_Sort. * a-cogeso.ad[sb] This is the new Ada 2012 unit Ada.Containers.Generic_Sort git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180948 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/sem_prag.adb | 176 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 123 insertions(+), 53 deletions(-) (limited to 'gcc/ada/sem_prag.adb') diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index c301382a496..cf493795880 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -181,7 +181,7 @@ package body Sem_Prag is -- original one, following the renaming chain) is returned. Otherwise the -- entity is returned unchanged. Should be in Einfo??? - procedure Preanalyze_TC_Args (Arg_Req, Arg_Ens : Node_Id); + procedure Preanalyze_TC_Args (N, Arg_Req, Arg_Ens : Node_Id); -- Preanalyze the boolean expressions in the Requires and Ensures arguments -- of a Test_Case pragma if present (possibly Empty). We treat these as -- spec expressions (i.e. similar to a default expression). @@ -260,8 +260,17 @@ package body Sem_Prag is -- Preanalyze the boolean expression, we treat this as a spec expression -- (i.e. similar to a default expression). - Preanalyze_Spec_Expression - (Get_Pragma_Arg (Arg1), Standard_Boolean); + Preanalyze_Spec_Expression (Get_Pragma_Arg (Arg1), Standard_Boolean); + + -- In ASIS mode, for a pragma generated from a source aspect, also + -- analyze the original aspect expression. + + if ASIS_Mode + and then Present (Corresponding_Aspect (N)) + then + Preanalyze_Spec_Expression + (Expression (Corresponding_Aspect (N)), Standard_Boolean); + end if; -- For a class-wide condition, a reference to a controlling formal must -- be interpreted as having the class-wide type (or an access to such) @@ -518,6 +527,15 @@ package body Sem_Prag is -- This procedure checks for possible duplications if this is the export -- case, and if found, issues an appropriate error message. + procedure Check_Expr_Is_Static_Expression + (Argx : Node_Id; + Typ : Entity_Id := Empty); + -- Check the specified expression Argx to make sure that it is a static + -- expression of the given type (i.e. it will be analyzed and resolved + -- using this type, which can be any valid argument to Resolve, e.g. + -- Any_Integer is OK). If not, given error and raise Pragma_Exit. If + -- Typ is left Empty, then any static expression is allowed. + procedure Check_First_Subtype (Arg : Node_Id); -- Checks that Arg, whose expression is an entity name, references a -- first subtype. @@ -1197,55 +1215,9 @@ package body Sem_Prag is procedure Check_Arg_Is_Static_Expression (Arg : Node_Id; - Typ : Entity_Id := Empty) - is - Argx : constant Node_Id := Get_Pragma_Arg (Arg); - + Typ : Entity_Id := Empty) is begin - if Present (Typ) then - Analyze_And_Resolve (Argx, Typ); - else - Analyze_And_Resolve (Argx); - end if; - - if Is_OK_Static_Expression (Argx) then - return; - - elsif Etype (Argx) = Any_Type then - raise Pragma_Exit; - - -- An interesting special case, if we have a string literal and we - -- are in Ada 83 mode, then we allow it even though it will not be - -- flagged as static. This allows the use of Ada 95 pragmas like - -- Import in Ada 83 mode. They will of course be flagged with - -- warnings as usual, but will not cause errors. - - elsif Ada_Version = Ada_83 - and then Nkind (Argx) = N_String_Literal - then - return; - - -- Static expression that raises Constraint_Error. This has already - -- been flagged, so just exit from pragma processing. - - elsif Is_Static_Expression (Argx) then - raise Pragma_Exit; - - -- Finally, we have a real error - - else - Error_Msg_Name_1 := Pname; - - declare - Msg : String := - "argument for pragma% must be a static expression!"; - begin - Fix_Error (Msg); - Flag_Non_Static_Expr (Msg, Argx); - end; - - raise Pragma_Exit; - end if; + Check_Expr_Is_Static_Expression (Get_Pragma_Arg (Arg), Typ); end Check_Arg_Is_Static_Expression; ------------------------------------------ @@ -1478,6 +1450,60 @@ package body Sem_Prag is end if; end Check_Duplicated_Export_Name; + ------------------------------------- + -- Check_Expr_Is_Static_Expression -- + ------------------------------------- + + procedure Check_Expr_Is_Static_Expression + (Argx : Node_Id; + Typ : Entity_Id := Empty) is + begin + if Present (Typ) then + Analyze_And_Resolve (Argx, Typ); + else + Analyze_And_Resolve (Argx); + end if; + + if Is_OK_Static_Expression (Argx) then + return; + + elsif Etype (Argx) = Any_Type then + raise Pragma_Exit; + + -- An interesting special case, if we have a string literal and we + -- are in Ada 83 mode, then we allow it even though it will not be + -- flagged as static. This allows the use of Ada 95 pragmas like + -- Import in Ada 83 mode. They will of course be flagged with + -- warnings as usual, but will not cause errors. + + elsif Ada_Version = Ada_83 + and then Nkind (Argx) = N_String_Literal + then + return; + + -- Static expression that raises Constraint_Error. This has already + -- been flagged, so just exit from pragma processing. + + elsif Is_Static_Expression (Argx) then + raise Pragma_Exit; + + -- Finally, we have a real error + + else + Error_Msg_Name_1 := Pname; + + declare + Msg : String := + "argument for pragma% must be a static expression!"; + begin + Fix_Error (Msg); + Flag_Non_Static_Expr (Msg, Argx); + end; + + raise Pragma_Exit; + end if; + end Check_Expr_Is_Static_Expression; + ------------------------- -- Check_First_Subtype -- ------------------------- @@ -1980,6 +2006,16 @@ package body Sem_Prag is Preanalyze_Spec_Expression (Get_Pragma_Arg (Arg1), Standard_Boolean); + + -- In ASIS mode, for a pragma generated from a source aspect, + -- also analyze the original aspect expression. + + if ASIS_Mode + and then Present (Corresponding_Aspect (N)) + then + Preanalyze_Spec_Expression + (Expression (Corresponding_Aspect (N)), Standard_Boolean); + end if; end if; In_Body := True; @@ -13678,6 +13714,17 @@ package body Sem_Prag is Check_Optional_Identifier (Arg1, Name_Name); Check_Arg_Is_Static_Expression (Arg1, Standard_String); + + -- In ASIS mode, for a pragma generated from a source aspect, also + -- analyze the original aspect expression. + + if ASIS_Mode + and then Present (Corresponding_Aspect (N)) + then + Check_Expr_Is_Static_Expression + (Original_Node (Get_Pragma_Arg (Arg1)), Standard_String); + end if; + Check_Optional_Identifier (Arg2, Name_Mode); Check_Arg_Is_One_Of (Arg2, Name_Nominal, Name_Robustness); @@ -14566,7 +14613,8 @@ package body Sem_Prag is -- Preanalyze the boolean expressions, we treat these as spec -- expressions (i.e. similar to a default expression). - Preanalyze_TC_Args (Get_Requires_From_Test_Case_Pragma (N), + Preanalyze_TC_Args (N, + Get_Requires_From_Test_Case_Pragma (N), Get_Ensures_From_Test_Case_Pragma (N)); -- Remove the subprogram from the scope stack now that the pre-analysis @@ -15086,19 +15134,41 @@ package body Sem_Prag is -- Preanalyze_TC_Args -- ------------------------ - procedure Preanalyze_TC_Args (Arg_Req, Arg_Ens : Node_Id) is + procedure Preanalyze_TC_Args (N, Arg_Req, Arg_Ens : Node_Id) is begin -- Preanalyze the boolean expressions, we treat these as spec -- expressions (i.e. similar to a default expression). if Present (Arg_Req) then + Preanalyze_Spec_Expression (Get_Pragma_Arg (Arg_Req), Standard_Boolean); + + -- In ASIS mode, for a pragma generated from a source aspect, also + -- analyze the original aspect expression. + + if ASIS_Mode + and then Present (Corresponding_Aspect (N)) + then + Preanalyze_Spec_Expression + (Original_Node (Get_Pragma_Arg (Arg_Req)), Standard_Boolean); + end if; end if; if Present (Arg_Ens) then + Preanalyze_Spec_Expression (Get_Pragma_Arg (Arg_Ens), Standard_Boolean); + + -- In ASIS mode, for a pragma generated from a source aspect, also + -- analyze the original aspect expression. + + if ASIS_Mode + and then Present (Corresponding_Aspect (N)) + then + Preanalyze_Spec_Expression + (Original_Node (Get_Pragma_Arg (Arg_Ens)), Standard_Boolean); + end if; end if; end Preanalyze_TC_Args; -- cgit v1.2.1 From 858b2128b64941e1487c585eaf4f049e65ded1d1 Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 4 Nov 2011 13:46:55 +0000 Subject: 2011-11-04 Robert Dewar * sem_prag.adb, atree.ads, prj-env.adb, prj-env.ads: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180949 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/sem_prag.adb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gcc/ada/sem_prag.adb') diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index cf493795880..df897e62ab6 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -1215,7 +1215,8 @@ package body Sem_Prag is procedure Check_Arg_Is_Static_Expression (Arg : Node_Id; - Typ : Entity_Id := Empty) is + Typ : Entity_Id := Empty) + is begin Check_Expr_Is_Static_Expression (Get_Pragma_Arg (Arg), Typ); end Check_Arg_Is_Static_Expression; @@ -1456,7 +1457,8 @@ package body Sem_Prag is procedure Check_Expr_Is_Static_Expression (Argx : Node_Id; - Typ : Entity_Id := Empty) is + Typ : Entity_Id := Empty) + is begin if Present (Typ) then Analyze_And_Resolve (Argx, Typ); @@ -15140,7 +15142,6 @@ package body Sem_Prag is -- expressions (i.e. similar to a default expression). if Present (Arg_Req) then - Preanalyze_Spec_Expression (Get_Pragma_Arg (Arg_Req), Standard_Boolean); @@ -15156,7 +15157,6 @@ package body Sem_Prag is end if; if Present (Arg_Ens) then - Preanalyze_Spec_Expression (Get_Pragma_Arg (Arg_Ens), Standard_Boolean); -- cgit v1.2.1 From b444f81d4fd636a38e26b5afa56a247eedd17ca3 Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 4 Nov 2011 13:48:52 +0000 Subject: 2011-11-04 Yannick Moy * sem_prag.adb: Minor refactoring (renaming of a parameter). 2011-11-04 Robert Dewar * atree.ads: Minor reformatting. 2011-11-04 Robert Dewar * checks.adb (Atomic_Synchronization_Disabled): Check -gnatd.d and -gnatd.e here * exp_ch2.adb (Expand_Entity_Reference): Use Activate_Atomic_Synchronization * exp_ch4.adb (Expand_N_Explicit_Dereference): Use Activate_Atomic_Synchronization (Expand_N_Indexed_Compoonent): Activate_Atomic_Synchronization (Expand_N_Selected_Component): Use Activate_Atomic_Synchronization * exp_util.ads, exp_util.adb (Activate_Atomic_Synchronization): New procedure. * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now apply to N_Selected_Component node git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180950 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/sem_prag.adb | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'gcc/ada/sem_prag.adb') diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index df897e62ab6..f8562ba8fd6 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -528,9 +528,9 @@ package body Sem_Prag is -- case, and if found, issues an appropriate error message. procedure Check_Expr_Is_Static_Expression - (Argx : Node_Id; + (Expr : Node_Id; Typ : Entity_Id := Empty); - -- Check the specified expression Argx to make sure that it is a static + -- Check the specified expression Expr to make sure that it is a static -- expression of the given type (i.e. it will be analyzed and resolved -- using this type, which can be any valid argument to Resolve, e.g. -- Any_Integer is OK). If not, given error and raise Pragma_Exit. If @@ -1456,20 +1456,20 @@ package body Sem_Prag is ------------------------------------- procedure Check_Expr_Is_Static_Expression - (Argx : Node_Id; + (Expr : Node_Id; Typ : Entity_Id := Empty) is begin if Present (Typ) then - Analyze_And_Resolve (Argx, Typ); + Analyze_And_Resolve (Expr, Typ); else - Analyze_And_Resolve (Argx); + Analyze_And_Resolve (Expr); end if; - if Is_OK_Static_Expression (Argx) then + if Is_OK_Static_Expression (Expr) then return; - elsif Etype (Argx) = Any_Type then + elsif Etype (Expr) = Any_Type then raise Pragma_Exit; -- An interesting special case, if we have a string literal and we @@ -1479,14 +1479,14 @@ package body Sem_Prag is -- warnings as usual, but will not cause errors. elsif Ada_Version = Ada_83 - and then Nkind (Argx) = N_String_Literal + and then Nkind (Expr) = N_String_Literal then return; -- Static expression that raises Constraint_Error. This has already -- been flagged, so just exit from pragma processing. - elsif Is_Static_Expression (Argx) then + elsif Is_Static_Expression (Expr) then raise Pragma_Exit; -- Finally, we have a real error @@ -1499,7 +1499,7 @@ package body Sem_Prag is "argument for pragma% must be a static expression!"; begin Fix_Error (Msg); - Flag_Non_Static_Expr (Msg, Argx); + Flag_Non_Static_Expr (Msg, Expr); end; raise Pragma_Exit; -- cgit v1.2.1 From 8f979dbe2d9556128d075c387c353604b2a77bd9 Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 4 Nov 2011 14:09:05 +0000 Subject: 2011-11-04 Robert Dewar * sprint.adb (Sprint_Node_Actual, case Qualified_Expression): Avoid junk semicolon after argument of machine code Asm operand. 2011-11-04 Robert Dewar * exp_ch11.adb (Generate_Push_Pop): Inhibit push/pop nodes in CodePeer mode or if restriction No_Exception_Handlers is present. * exp_ch6.adb (Expand_N_Subprogram_Body): (Inhibit push/pop nodes in CodePeer mode or if restriction No_Exception_Handlers is present. 2011-11-04 Robert Dewar * s-tassta.adb, atree.ads, errout.adb, sinput.adb: Minor reformatting. 2011-11-04 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Specification): The specification is legal if it is a function that returns an abstract type, if it comes from an attribute renaming of a stream attribute of an abstract type. 2011-11-04 Gary Dismukes * exp_util.adb (Is_Possibly_Unaligned_Object): In case of indexed components, check whether recursively check whether the prefix denotes an unaligned object. 2011-11-04 Ed Schonberg * sem_prag.adb (Analyze_Pragma, case Debug): The argument of the pragma is legal if it is an expanded name that denotes a procedure that be can called without parameters. 2011-11-04 Eric Botcazou * gnat_ugn.texi (Performance Considerations) : New sub-section. : Minor tweak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180955 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/sem_prag.adb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gcc/ada/sem_prag.adb') diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index f8562ba8fd6..397c73380a2 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -7902,10 +7902,13 @@ package body Sem_Prag is N_Indexed_Component, N_Function_Call, N_Identifier, + N_Expanded_Name, N_Selected_Component) then -- If this pragma Debug comes from source, its argument was -- parsed as a name form (which is syntactically identical). + -- In a generic context a parameterless call will be left as + -- an expanded name (if global) or selected_component if local. -- Change it to a procedure call statement now. Change_Name_To_Procedure_Call_Statement (Call); -- cgit v1.2.1