From: Arnaud Charlet Date: Fri, 24 Jan 2014 15:02:48 +0000 (+0100) Subject: [multiple changes] X-Git-Tag: releases/gcc-4.9.0~1390 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ab986406d5de916252f13068d3ea5402e8b27461;p=thirdparty%2Fgcc.git [multiple changes] 2014-01-24 Robert Dewar * sinfo.ads, make.adb, prj-env.adb: Minor reformatting. 2014-01-24 Vincent Celier * prj.adb (Add_Aggregated_Project): Do not add a project in the list if it is already there. 2014-01-24 Yannick Moy * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): Correct the search for a subrogram declaration to which a pragma is attached. 2014-01-24 Bob Duff * gnat_ugn.texi: Document --decimal-grouping and --based-grouping switches in gnatpp. From-SVN: r207042 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 59072a6e5633..576d30643bb6 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,23 @@ +2014-01-24 Robert Dewar + + * sinfo.ads, make.adb, prj-env.adb: Minor reformatting. + +2014-01-24 Vincent Celier + + * prj.adb (Add_Aggregated_Project): Do not add a project in + the list if it is already there. + +2014-01-24 Yannick Moy + + * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): + Correct the search for a subrogram declaration to which a pragma is + attached. + +2014-01-24 Bob Duff + + * gnat_ugn.texi: Document --decimal-grouping and + --based-grouping switches in gnatpp. + 2014-01-24 Ed Schonberg * sinfo.ads: Documentation update. diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 11286ef0766c..ca3eacc86ce9 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -14324,9 +14324,23 @@ line indentation is also 1) @noindent These switches control the inclusion of missing end/exit labels, and -the indentation level in @b{case} statements. +the indentation level in @b{case} statements, etc. @table @option +@item --decimal-grouping=@var{n} +@cindex @option{--decimal-grouping} @command{gnatpp} +Put underscores in decimal literals (numeric literals without a base) +every @var{n} characters. If a literal already has one or more +underscores, it is not modified. For example, with +@code{--decimal-grouping=3}, @code{1000000} will be changed to +@code{1_000_000}. + +@item --based-grouping=@var{n} +@cindex @option{--based-grouping} @command{gnatpp} +Same as @code{--decimal-grouping}, but for based literals. For +example, with @code{--based-grouping=4}, @code{16#0001FFFE#} will be +changed to @code{16#0001_FFFE#}. + @item ^-e^/NO_MISSED_LABELS^ @cindex @option{^-e^/NO_MISSED_LABELS^} (@command{gnatpp}) Do not insert missing end/exit labels. An end label is the name of diff --git a/gcc/ada/lib-xref-spark_specific.adb b/gcc/ada/lib-xref-spark_specific.adb index 849ff0e2dbf7..9328be84b5de 100644 --- a/gcc/ada/lib-xref-spark_specific.adb +++ b/gcc/ada/lib-xref-spark_specific.adb @@ -1023,25 +1023,18 @@ package body SPARK_Specific is when N_Pragma => -- The enclosing subprogram for a precondition, postcondition, - -- or contract case should be the subprogram to which the - -- pragma is attached, which can be found by following - -- previous elements in the list to which the pragma belongs. - - if Get_Pragma_Id (Result) = Pragma_Precondition - or else - Get_Pragma_Id (Result) = Pragma_Postcondition - or else - Get_Pragma_Id (Result) = Pragma_Contract_Cases - then - if Is_List_Member (Result) - and then Present (Prev (Result)) - then - Result := Prev (Result); - else - Result := Parent (Result); - end if; - - else + -- or contract case should be the declaration preceding the + -- pragma (skipping any other pragmas between this pragma and + -- this declaration. + + while Nkind (Result) = N_Pragma + and then Is_List_Member (Result) + and then Present (Prev (Result)) + loop + Result := Prev (Result); + end loop; + + if Nkind (Result) = N_Pragma then Result := Parent (Result); end if; diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb index 84b7a3b64e07..c8c605313e10 100644 --- a/gcc/ada/make.adb +++ b/gcc/ada/make.adb @@ -4556,14 +4556,13 @@ package body Make is if Main_Project /= No_Project then - -- Put all the source directories in ADA_INCLUDE_PATH, - -- and all the object directories in ADA_OBJECTS_PATH, - -- except those of library projects. + -- Put all the source directories in ADA_INCLUDE_PATH, and all the + -- object directories in ADA_OBJECTS_PATH. Prj.Env.Set_Ada_Paths (Project => Main_Project, In_Tree => Project_Tree, - Including_Libraries => False, + Including_Libraries => True, Include_Path => Use_Include_Path_File); -- If switch -C was specified, create a binder mapping file diff --git a/gcc/ada/prj-env.adb b/gcc/ada/prj-env.adb index b3a5d7993c66..b50481e0d2fe 100644 --- a/gcc/ada/prj-env.adb +++ b/gcc/ada/prj-env.adb @@ -147,8 +147,8 @@ package body Prj.Env is begin if Recursive then - -- If it is the first time we call this function for - -- this project, compute the source path + -- If it is the first time we call this function for this project, + -- compute the source path if Project.Ada_Include_Path = null then Buffer := new String (1 .. Buffer_Initial); diff --git a/gcc/ada/prj.adb b/gcc/ada/prj.adb index e3a4c49dcacc..d7e2bc74a6bd 100644 --- a/gcc/ada/prj.adb +++ b/gcc/ada/prj.adb @@ -1083,8 +1083,24 @@ package body Prj is ---------------------------- procedure Add_Aggregated_Project - (Project : Project_Id; Path : Path_Name_Type) is + (Project : Project_Id; + Path : Path_Name_Type) + is + Aggregated : Aggregated_Project_List; + begin + -- Check if the project is already in the aggregated project list. If it + -- is, do not add it again. + + Aggregated := Project.Aggregated_Projects; + while Aggregated /= null loop + if Path = Aggregated.Path then + return; + else + Aggregated := Aggregated.Next; + end if; + end loop; + Project.Aggregated_Projects := new Aggregated_Project' (Path => Path, Project => No_Project, diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads index f71fdd0a0ae6..61c7da4c7c46 100644 --- a/gcc/ada/sinfo.ads +++ b/gcc/ada/sinfo.ads @@ -517,7 +517,7 @@ package Sinfo is -- form that meets additional requirements. -- This light expansion does two transformations of the tree that cannot - -- be postponed after semantic analysis: + -- be postponed till after semantic analysis: -- 1. Replace object renamings by renamed object. This requires the -- introduction of temporaries at the point of the renaming, which @@ -555,15 +555,15 @@ package Sinfo is -- The following flag fields appear in expression nodes: - -- Do_Division_Check - -- Do_Overflow_Check - -- Do_Range_Check + -- Do_Division_Check + -- Do_Overflow_Check + -- Do_Range_Check -- These three flags are always set by the front end during semantic -- analysis, on expression nodes that may trigger the corresponding - -- check. The front end then inserts or not the check during expansion. - -- In particular, these flags should also be correctly set in ASIS mode - -- and GNATprove mode. + -- check. The front end then inserts or not the check during expansion. In + -- particular, these flags should also be correctly set in ASIS mode and + -- GNATprove mode. -- Note that this accounts for all nodes that trigger the corresponding -- checks, except for range checks on subtype_indications, which may be @@ -572,11 +572,11 @@ package Sinfo is -- The following flag fields appear in various nodes: - -- Do_Accessibility_Check - -- Do_Discriminant_Check - -- Do_Length_Check - -- Do_Storage_Check - -- Do_Tag_Check + -- Do_Accessibility_Check + -- Do_Discriminant_Check + -- Do_Length_Check + -- Do_Storage_Check + -- Do_Tag_Check -- These flags are used in some specific cases by the front end, either -- during semantic analysis or during expansion, and cannot be expected