From: Vincent Celier Date: Thu, 16 Aug 2007 12:19:39 +0000 (+0200) Subject: prj.ads (Project_Data): Add comments. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4f6447c5c85cb0cd0462536c76d3b9c4e1c9b193;p=gcc.git prj.ads (Project_Data): Add comments. 2007-08-16 Vincent Celier * prj.ads (Project_Data): Add comments. * prj-attr.adb: New attribute Removed_Source_Dirs * prj-nmsc.adb (Get_Directories): Take into account new attribute Removed_Source_Dirs * snames.ads, snames.adb: New standard name Removed_Source_Dirs From-SVN: r127544 --- diff --git a/gcc/ada/prj-attr.adb b/gcc/ada/prj-attr.adb index ca207fffb91..57e9724d6fe 100644 --- a/gcc/ada/prj-attr.adb +++ b/gcc/ada/prj-attr.adb @@ -75,6 +75,7 @@ package body Prj.Attr is "SVobject_dir#" & "SVexec_dir#" & "LVsource_dirs#" & + "LVremoved_source_dirs#" & -- Source files diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb index b742c01b331..caa210688cb 100644 --- a/gcc/ada/prj-nmsc.adb +++ b/gcc/ada/prj-nmsc.adb @@ -4174,6 +4174,9 @@ package body Prj.Nmsc is elsif Value = "restricted" then Data.Symbol_Data.Symbol_Policy := Restricted; + elsif Value = "direct" then + Data.Symbol_Data.Symbol_Policy := Direct; + else Error_Msg (Project, In_Tree, @@ -4196,7 +4199,7 @@ package body Prj.Nmsc is end if; else - -- Library_Symbol_File is defined. Check that the file exists + -- Library_Symbol_File is defined. Data.Symbol_Data.Symbol_File := Path_Name_Type (Lib_Symbol_File.Value); @@ -4262,43 +4265,28 @@ package body Prj.Nmsc is Lib_Symbol_File.Location); else - OK := not Is_Absolute_Path (Name_Buffer (1 .. Name_Len)); - - if OK then - for J in 1 .. Name_Len loop - if Name_Buffer (J) = '/' - or else Name_Buffer (J) = Directory_Separator - then - OK := False; - exit; - end if; - end loop; - end if; - - if not OK then - Error_Msg_File_1 := - File_Name_Type (Lib_Ref_Symbol_File.Value); - Error_Msg - (Project, In_Tree, - "reference symbol file { name is illegal. " & - "Name canot include directory info.", - Lib_Ref_Symbol_File.Location); + if not Is_Absolute_Path (Name_Buffer (1 .. Name_Len)) then + Name_Len := 0; + Add_Str_To_Name_Buffer (Get_Name_String (Data.Directory)); + Add_Char_To_Name_Buffer (Directory_Separator); + Add_Str_To_Name_Buffer + (Get_Name_String (Lib_Ref_Symbol_File.Value)); + Data.Symbol_Data.Reference := Name_Find; end if; if not Is_Regular_File - (Get_Name_String (Data.Object_Directory) & - Directory_Separator & - Get_Name_String (Lib_Ref_Symbol_File.Value)) + (Get_Name_String (Data.Symbol_Data.Reference)) then Error_Msg_File_1 := File_Name_Type (Lib_Ref_Symbol_File.Value); - -- For controlled symbol policy, it is an error if the - -- reference symbol file does not exist. For other symbol - -- policies, this is just a warning + -- For controlled and direct symbol policies, it is an error + -- if the reference symbol file does not exist. For other + -- symbol policies, this is just a warning Error_Msg_Warn := - Data.Symbol_Data.Symbol_Policy /= Controlled; + Data.Symbol_Data.Symbol_Policy /= Controlled + and then Data.Symbol_Data.Symbol_Policy /= Direct; Error_Msg (Project, In_Tree, @@ -4316,6 +4304,36 @@ package body Prj.Nmsc is end if; end if; end if; + + -- If both the reference symbol file and the symbol file are + -- defined, then check that they are not the same file. + + if Data.Symbol_Data.Symbol_File /= No_Path then + Get_Name_String (Data.Symbol_Data.Symbol_File); + + if Name_Len > 0 then + declare + Symb_Path : constant String := + Normalize_Pathname + (Get_Name_String + (Data.Object_Directory) & + Directory_Separator & + Name_Buffer (1 .. Name_Len)); + Ref_Path : constant String := + Normalize_Pathname + (Get_Name_String + (Data.Symbol_Data.Reference)); + begin + if Symb_Path = Ref_Path then + Error_Msg + (Project, In_Tree, + "library reference symbol file and library" & + " symbol file cannot be the same file", + Lib_Ref_Symbol_File.Location); + end if; + end; + end if; + end if; end if; end if; end if; @@ -4794,6 +4812,12 @@ package body Prj.Nmsc is Util.Value_Of (Name_Source_Dirs, Data.Decl.Attributes, In_Tree); + Removed_Source_Dirs : constant Variable_Value := + Util.Value_Of + (Name_Removed_Source_Dirs, + Data.Decl.Attributes, + In_Tree); + Source_Files : constant Variable_Value := Util.Value_Of (Name_Source_Files, Data.Decl.Attributes, In_Tree); @@ -4802,9 +4826,11 @@ package body Prj.Nmsc is procedure Find_Source_Dirs (From : File_Name_Type; - Location : Source_Ptr); - -- Find one or several source directories, and add them - -- to the list of source directories of the project. + Location : Source_Ptr; + Removed : Boolean := False); + -- Find one or several source directories, and add (or remove, if + -- Removed is True) them to the list of source directories of the + -- project. ---------------------- -- Find_Source_Dirs -- @@ -4812,7 +4838,8 @@ package body Prj.Nmsc is procedure Find_Source_Dirs (From : File_Name_Type; - Location : Source_Ptr) + Location : Source_Ptr; + Removed : Boolean := False) is Directory : constant String := Get_Name_String (From); Element : String_Element; @@ -4830,6 +4857,7 @@ package body Prj.Nmsc is Name : String (1 .. 250); Last : Natural; List : String_List_Id := Data.Source_Dirs; + Prev : String_List_Id := Nil_String; Element : String_Element; Found : Boolean := False; @@ -4857,11 +4885,12 @@ package body Prj.Nmsc is -- then there is nothing to do, just return. If it is not, put -- it there and continue recursive processing. - if Recursive_Dirs.Get (Canonical_Path) then - return; - - else - Recursive_Dirs.Set (Canonical_Path, True); + if not Removed then + if Recursive_Dirs.Get (Canonical_Path) then + return; + else + Recursive_Dirs.Set (Canonical_Path, True); + end if; end if; -- Check if directory is already in list @@ -4874,12 +4903,13 @@ package body Prj.Nmsc is exit when Found; end if; + Prev := List; List := Element.Next; end loop; -- If directory is not already in list, put it there - if not Found then + if (not Removed) and (not Found) then if Current_Verbosity = High then Write_Str (" "); Write_Line (The_Path (The_Path'First .. The_Path_Last)); @@ -4918,6 +4948,15 @@ package body Prj.Nmsc is (In_Tree.String_Elements); In_Tree.String_Elements.Table (Last_Source_Dir) := Element; + + elsif Removed and Found then + if Prev = Nil_String then + Data.Source_Dirs := + In_Tree.String_Elements.Table (List).Next; + else + In_Tree.String_Elements.Table (Prev).Next := + In_Tree.String_Elements.Table (List).Next; + end if; end if; -- Now look for subdirectories. We do that even when this @@ -4973,14 +5012,14 @@ package body Prj.Nmsc is -- Start of processing for Find_Source_Dirs begin - if Current_Verbosity = High then + if Current_Verbosity = High and then not Removed then Write_Str ("Find_Source_Dirs ("""); Write_Str (Directory); Write_Line (""")"); end if; - -- First, check if we are looking for a directory tree, - -- indicated by "/**" at the end. + -- First, check if we are looking for a directory tree, indicated + -- by "/**" at the end. if Directory'Length >= 3 and then Directory (Directory'Last - 1 .. Directory'Last) = "**" @@ -4988,14 +5027,15 @@ package body Prj.Nmsc is or else Directory (Directory'Last - 2) = Directory_Separator) then - Data.Known_Order_Of_Source_Dirs := False; + if not Removed then + Data.Known_Order_Of_Source_Dirs := False; + end if; Name_Len := Directory'Length - 3; if Name_Len = 0 then - -- This is the case of "/**": all directories - -- in the file system. + -- Case of "/**": all directories in file system Name_Len := 1; Name_Buffer (1) := Directory (Directory'First); @@ -5038,8 +5078,8 @@ package body Prj.Nmsc is end if; else - -- We have an existing directory, we register it and all - -- of its subdirectories. + -- We have an existing directory, we register it and all of + -- its subdirectories. if Current_Verbosity = High then Write_Line ("Looking for source directories:"); @@ -5061,6 +5101,8 @@ package body Prj.Nmsc is declare Path_Name : Path_Name_Type; Display_Path_Name : Path_Name_Type; + List : String_List_Id; + Prev : String_List_Id; begin Locate_Directory @@ -5087,37 +5129,100 @@ package body Prj.Nmsc is end if; else - -- As it is an existing directory, we add it to - -- the list of directories. + declare + Path : constant String := + Get_Name_String (Path_Name) & + Directory_Separator; + Last_Path : constant Natural := + Compute_Directory_Last (Path); + Path_Id : Name_Id; + Display_Path : constant String := + Get_Name_String + (Display_Path_Name) & + Directory_Separator; + Last_Display_Path : constant Natural := + Compute_Directory_Last + (Display_Path); + Display_Path_Id : Name_Id; - String_Element_Table.Increment_Last - (In_Tree.String_Elements); - Element.Value := Name_Id (Path_Name); - Element.Display_Value := Name_Id (Display_Path_Name); + begin + Name_Len := 0; + Add_Str_To_Name_Buffer (Path (Path'First .. Last_Path)); + Path_Id := Name_Find; + Name_Len := 0; + Add_Str_To_Name_Buffer + (Display_Path + (Display_Path'First .. Last_Display_Path)); + Display_Path_Id := Name_Find; - if Last_Source_Dir = Nil_String then + if not Removed then - -- This is the first source directory + -- As it is an existing directory, we add it to the + -- list of directories. - Data.Source_Dirs := String_Element_Table.Last - (In_Tree.String_Elements); + String_Element_Table.Increment_Last + (In_Tree.String_Elements); + Element := + (Value => Path_Id, + Index => 0, + Display_Value => Display_Path_Id, + Location => No_Location, + Flag => False, + Next => Nil_String); - else - -- We already have source directories, - -- link the previous last to the new one. + if Last_Source_Dir = Nil_String then - In_Tree.String_Elements.Table - (Last_Source_Dir).Next := - String_Element_Table.Last - (In_Tree.String_Elements); - end if; + -- This is the first source directory - -- And register this source directory as the new last + Data.Source_Dirs := String_Element_Table.Last + (In_Tree.String_Elements); - Last_Source_Dir := String_Element_Table.Last - (In_Tree.String_Elements); - In_Tree.String_Elements.Table - (Last_Source_Dir) := Element; + else + -- We already have source directories, link the + -- previous last to the new one. + + In_Tree.String_Elements.Table + (Last_Source_Dir).Next := + String_Element_Table.Last + (In_Tree.String_Elements); + end if; + + -- And register this source directory as the new last + + Last_Source_Dir := String_Element_Table.Last + (In_Tree.String_Elements); + In_Tree.String_Elements.Table + (Last_Source_Dir) := Element; + + else + -- Remove source dir, if present + + List := Data.Source_Dirs; + Prev := Nil_String; + + -- Look for source dir in current list + + while List /= Nil_String loop + Element := In_Tree.String_Elements.Table (List); + exit when Element.Value = Path_Id; + Prev := List; + List := Element.Next; + end loop; + + if List /= Nil_String then + -- Source dir was found, remove it from the list + + if Prev = Nil_String then + Data.Source_Dirs := + In_Tree.String_Elements.Table (List).Next; + + else + In_Tree.String_Elements.Table (Prev).Next := + In_Tree.String_Elements.Table (List).Next; + end if; + end if; + end if; + end; end if; end; end if; @@ -5219,8 +5324,7 @@ package body Prj.Nmsc is Exec_Dir.Location); else - -- We check that the specified object directory - -- does exist. + -- We check that the specified object directory does exist Locate_Directory (Project, @@ -5273,8 +5377,8 @@ package body Prj.Nmsc is elsif Source_Dirs.Default then - -- No Source_Dirs specified: the single source directory - -- is the one containing the project file + -- No Source_Dirs specified: the single source directory is the one + -- containing the project file String_Element_Table.Increment_Last (In_Tree.String_Elements); @@ -5297,10 +5401,10 @@ package body Prj.Nmsc is elsif Source_Dirs.Values = Nil_String then - -- If Source_Dirs is an empty string list, this means - -- that this project contains no source. For projects that - -- don't extend other projects, this also means that there is no - -- need for an object directory, if not specified. + -- If Source_Dirs is an empty string list, this means that this + -- project contains no source. For projects that don't extend other + -- projects, this also means that there is no need for an object + -- directory, if not specified. if Data.Extends = No_Project and then Data.Object_Directory = Data.Directory @@ -5316,8 +5420,7 @@ package body Prj.Nmsc is Element : String_Element; begin - -- We will find the source directories for each - -- element of the list + -- Process the source directories for each element of the list while Source_Dir /= Nil_String loop Element := @@ -5329,6 +5432,28 @@ package body Prj.Nmsc is end; end if; + if (not Removed_Source_Dirs.Default) and then + Removed_Source_Dirs.Values /= Nil_String then + declare + Source_Dir : String_List_Id; + Element : String_Element; + + begin + -- Process the source directories for each element of the list + + Source_Dir := Removed_Source_Dirs.Values; + while Source_Dir /= Nil_String loop + Element := + In_Tree.String_Elements.Table (Source_Dir); + Find_Source_Dirs + (File_Name_Type (Element.Value), + Element.Location, + Removed => True); + Source_Dir := Element.Next; + end loop; + end; + end if; + if Current_Verbosity = High then Write_Line ("Putting source directories in canonical cases"); end if; @@ -5368,8 +5493,8 @@ package body Prj.Nmsc is begin Data.Mains := Mains.Values; - -- If no Mains were specified, and if we are an extending - -- project, inherit the Mains from the project we are extending. + -- If no Mains were specified, and if we are an extending project, + -- inherit the Mains from the project we are extending. if Mains.Default then if Data.Extends /= No_Project then @@ -5602,8 +5727,8 @@ package body Prj.Nmsc is if Name_Buffer (1 .. Name_Len) /= "." then - -- If Dot_Replacement is not a single dot, then there should - -- not be any dot in the name. + -- If Dot_Replacement is not a single dot, then there should not + -- be any dot in the name. for Index in First .. Last loop if File (Index) = '.' then @@ -5757,8 +5882,8 @@ package body Prj.Nmsc is return True; end if; - -- If dot replacement is a single dot, and first character of - -- suffix is also a dot + -- If dot replacement is a single dot, and first character of suffix is + -- also a dot if Dot_Replacement_Is_A_Single_Dot and then Suffix (Suffix'First) = '.' @@ -5862,6 +5987,7 @@ package body Prj.Nmsc is Location); end; end if; + if Is_Directory (Full_Path_Name) then declare Normed : constant String := @@ -5903,8 +6029,6 @@ package body Prj.Nmsc is -- Find the path names of the source files in the Source_Names table -- in the source directories and record those that are Ada sources. --- function Source_Of (File_Name : Name_Id) return Source_Id; - procedure Get_Sources_From_File (Path : String; Location : Source_Ptr); @@ -5931,11 +6055,8 @@ package body Prj.Nmsc is Name_Str : String (1 .. 1_024); Last : Natural := 0; NL : Name_Location; - Current_Source : String_List_Id := Nil_String; - First_Error : Boolean := True; - Source_Recorded : Boolean := False; begin @@ -6020,7 +6141,6 @@ package body Prj.Nmsc is -- in a source list file is not found. NL := Source_Names.Get_First; - while NL /= No_Name_Location loop if not NL.Found then Err_Vars.Error_Msg_File_1 := NL.Name; @@ -6080,23 +6200,20 @@ package body Prj.Nmsc is ------------------------ procedure Search_Directories (For_All_Sources : Boolean) is - Source_Dir : String_List_Id := Data.Source_Dirs; - Element : String_Element; - Dir : Dir_Type; - Name : String (1 .. 1_000); - Last : Natural; + Source_Dir : String_List_Id; + Element : String_Element; + Dir : Dir_Type; + Name : String (1 .. 1_000); + Last : Natural; File_Name : File_Name_Type; Display_File_Name : File_Name_Type; - Source : Source_Id; Source_To_Replace : Source_Id := No_Source; Src_Data : Source_Data; Add_Src : Boolean; - - Name_Loc : Name_Location; - - Check_Name : Boolean; + Name_Loc : Name_Location; + Check_Name : Boolean; Language : Language_Index; Language_Name : Name_Id; @@ -6121,10 +6238,8 @@ package body Prj.Nmsc is procedure Check_Naming_Schemes is Filename : constant String := Get_Name_String (File_Name); Last : Positive := Filename'Last; - Config : Language_Config; - - Lang : Name_List_Index := Data.Languages; + Lang : Name_List_Index; Header_File : Boolean := False; First_Language : Language_Index; @@ -6132,11 +6247,11 @@ package body Prj.Nmsc is begin Unit := No_Name; + Lang := Data.Languages; while Lang /= No_Name_List loop - - Language := Data.First_Language_Processing; Language_Name := In_Tree.Name_Lists.Table (Lang).Name; + Language := Data.First_Language_Processing; while Language /= No_Language_Index loop if In_Tree.Languages_Data.Table (Language).Name = Language_Name @@ -6146,9 +6261,10 @@ package body Prj.Nmsc is Config := In_Tree.Languages_Data.Table (Language).Config; if Config.Kind = File_Based then - -- For file based languages, there is no Unit. - -- Just check if the file name has the implementation - -- or, if it is specified, the template suffix of the + + -- For file based languages, there is no Unit. Just + -- check if the file name has the implementation or, + -- if it is specified, the template suffix of the -- language. Unit := No_Name; @@ -6225,11 +6341,13 @@ package body Prj.Nmsc is end if; elsif not Header_File then + -- Unit based language OK := Config.Naming_Data.Dot_Replacement /= No_File; if OK then + -- Check casing case Config.Naming_Data.Casing is @@ -6270,7 +6388,6 @@ package body Prj.Nmsc is Suffix : constant String := Get_Name_String (Config.Naming_Data.Separate_Suffix); - begin if Filename'Length > Suffix'Length and then @@ -6292,7 +6409,6 @@ package body Prj.Nmsc is Suffix : constant String := Get_Name_String (Config.Naming_Data.Body_Suffix); - begin if Filename'Length > Suffix'Length and then @@ -6314,7 +6430,6 @@ package body Prj.Nmsc is Suffix : constant String := Get_Name_String (Config.Naming_Data.Spec_Suffix); - begin if Filename'Length > Suffix'Length and then @@ -6331,15 +6446,19 @@ package body Prj.Nmsc is end if; if OK then + -- Replace dot replacements with dots Name_Len := 0; declare - J : Positive := Filename'First; + J : Positive := Filename'First; + Dot_Replacement : constant String := - Get_Name_String - (Config.Naming_Data.Dot_Replacement); + Get_Name_String + (Config.Naming_Data. + Dot_Replacement); + Max : constant Positive := Last - Dot_Replacement'Length + 1; @@ -6354,6 +6473,7 @@ package body Prj.Nmsc is then Name_Buffer (Name_Len) := '.'; J := J + Dot_Replacement'Length; + else if Filename (J) = '.' then OK := False; @@ -6371,8 +6491,10 @@ package body Prj.Nmsc is end if; if OK then + -- The name buffer should contain the name of the -- the unit, if it is one. + -- Check that this is a valid unit name Check_Ada_Name (Name_Buffer (1 .. Name_Len), Unit); @@ -6418,13 +6540,16 @@ package body Prj.Nmsc is end if; end Check_Naming_Schemes; + -- Start of processing for Search_Directories + begin if Current_Verbosity = High then Write_Line ("Looking for sources:"); end if; - -- For each subdirectory + -- Loop through subdirectories + Source_Dir := Data.Source_Dirs; while Source_Dir /= Nil_String loop begin Element := In_Tree.String_Elements.Table (Source_Dir); @@ -6458,7 +6583,6 @@ package body Prj.Nmsc is if Is_Regular_File (Source_Directory & Name (1 .. Last)) then - if Current_Verbosity = High then Write_Str (" Checking "); Write_Line (Name (1 .. Last)); @@ -6507,9 +6631,9 @@ package body Prj.Nmsc is else if Name_Loc.Found then - -- Check if it is allowed to have the - -- same file name in several source - -- directories. + + -- Check if it is OK to have the same file + -- name in several source directories. if not Data.Known_Order_Of_Source_Dirs @@ -6576,6 +6700,7 @@ package body Prj.Nmsc is if Language = No_Language_Index then if Name_Loc.Found then + -- A file name in a list must be -- a source of a language. @@ -6737,19 +6862,20 @@ package body Prj.Nmsc is if Current_Verbosity = High then Write_Line ("end Looking for sources."); end if; - end Search_Directories; + -- Start of processing for Look_For_Sources + begin if Get_Mode = Ada_Only and then Is_A_Language (In_Tree, Data, "ada") then declare - Sources : constant Variable_Value := - Util.Value_Of - (Name_Source_Files, - Data.Decl.Attributes, - In_Tree); + Sources : constant Variable_Value := + Util.Value_Of + (Name_Source_Files, + Data.Decl.Attributes, + In_Tree); Source_List_File : constant Variable_Value := Util.Value_Of @@ -6898,15 +7024,13 @@ package body Prj.Nmsc is begin while Current /= Nil_String loop - Element := - In_Tree.String_Elements.Table (Current); + Element := In_Tree.String_Elements.Table (Current); Get_Name_String (Element.Value); Canonical_Case_File_Name (Name_Buffer (1 .. Name_Len)); Name := Name_Find; - -- If the element has no location, then use the - -- location of Locally_Removed to report - -- possible errors. + -- If the element has no location, then use the location + -- of Locally_Removed to report possible errors. if Element.Location = No_Location then Location := Locally_Removed.Location; @@ -6990,6 +7114,7 @@ package body Prj.Nmsc is end if; if Get_Mode = Ada_Only and then Data.Other_Sources_Present then + -- Set Source_Present to False. It will be set back to True -- whenever a source is found. @@ -7001,8 +7126,8 @@ package body Prj.Nmsc is if Is_Present (Lang, Data, In_Tree) then -- Reset the indication that there are sources of this - -- language. It will be set back to True whenever we find a - -- source of the language. + -- language. It will be set back to True whenever we find + -- a source of the language. Set (Lang, False, Data, In_Tree); @@ -7358,6 +7483,7 @@ package body Prj.Nmsc is end; elsif not Source_List_File.Default then + -- Source_List_File is the name of the file -- that contains the source file names @@ -7389,13 +7515,11 @@ package body Prj.Nmsc is (For_All_Sources => Sources.Default and then Source_List_File.Default); - -- If there are sources that are locally removed, mark them as - -- such. + -- If there are locally removed sources, mark them as such if not Locally_Removed.Default then - declare - Current : String_List_Id := Locally_Removed.Values; + Current : String_List_Id; Element : String_Element; Location : Source_Ptr; OK : Boolean; @@ -7404,6 +7528,7 @@ package body Prj.Nmsc is Src_Data : Source_Data; begin + Current := Locally_Removed.Values; while Current /= Nil_String loop Element := In_Tree.String_Elements.Table (Current); @@ -7411,9 +7536,8 @@ package body Prj.Nmsc is Canonical_Case_File_Name (Name_Buffer (1 .. Name_Len)); Name := Name_Find; - -- If the element has no location, then use the - -- location of Locally_Removed to report - -- possible errors. + -- If the element has no location, then use the location + -- of Locally_Removed to report possible errors. if Element.Location = No_Location then Location := Locally_Removed.Location; @@ -7429,6 +7553,7 @@ package body Prj.Nmsc is Src_Data := In_Tree.Sources.Table (Source); if Src_Data.File = Name then + -- Check that this is from this project or a -- project that the current project extends. @@ -7497,13 +7622,14 @@ package body Prj.Nmsc is In_Tree : Project_Tree_Ref; Kind : Spec_Or_Body) is - Current : Array_Element_Id := List; + Current : Array_Element_Id; Element : Array_Element; Unit : Unit_Info; begin -- Traverse the list + Current := List; while Current /= No_Array_Element loop Element := In_Tree.Array_Elements.Table (Current); @@ -7641,9 +7767,8 @@ package body Prj.Nmsc is Write_Line (""" (ignored)."); end if; - -- The file is not included in the source of the project, - -- because it is hidden by the exception. - -- So, there is nothing else to do. + -- The file is not included in the source of the project since + -- it is hidden by the exception. So, nothing else to do. return; end if; @@ -7692,8 +7817,9 @@ package body Prj.Nmsc is -- Put the unit in unit list declare - The_Unit : Unit_Index := - Units_Htable.Get (In_Tree.Units_HT, Unit_Name); + The_Unit : Unit_Index := + Units_Htable.Get (In_Tree.Units_HT, Unit_Name); + The_Unit_Data : Unit_Data; begin @@ -7870,7 +7996,6 @@ package body Prj.Nmsc is Last : Natural := 0; NL : Name_Location; First_Error : Boolean := True; - Suffix : constant String := Body_Suffix_Of (Language, Data, In_Tree); @@ -8049,7 +8174,8 @@ package body Prj.Nmsc is end if; In_Tree.Sources.Table (Id).Replaced_By := Replaced_By; - -- Remove the source from the global list + + -- Remove the source from the global source list Source := In_Tree.First_Source; @@ -8132,7 +8258,6 @@ package body Prj.Nmsc is In_Tree.Sources.Table (Source).Next_In_Lang := Src_Data.Next_In_Lang; end if; - end Remove_Source; ----------------------- diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads index 47bc052cb5d..a26132eef7a 100644 --- a/gcc/ada/prj.ads +++ b/gcc/ada/prj.ads @@ -1029,6 +1029,10 @@ package Prj is -- The following record describes a project file representation + -- Note that it is not specified if the path names of directories (source, + -- object, library or exec directories) end with or without a directory + -- separator. + type Project_Data is record Externally_Built : Boolean := False; -- True if the project is externally built. In such case, the Project diff --git a/gcc/ada/snames.adb b/gcc/ada/snames.adb index a6803a006f6..1e0a6397ba7 100644 --- a/gcc/ada/snames.adb +++ b/gcc/ada/snames.adb @@ -753,6 +753,7 @@ package body Snames is "prefix#" & "project#" & "roots#" & + "removed_source_dirs#" & "required_switches#" & "run_path_option#" & "runtime_project#" & diff --git a/gcc/ada/snames.ads b/gcc/ada/snames.ads index 5fe569f5e7e..32febd5e27a 100644 --- a/gcc/ada/snames.ads +++ b/gcc/ada/snames.ads @@ -1069,45 +1069,46 @@ package Snames is Name_Prefix : constant Name_Id := N + 692; Name_Project : constant Name_Id := N + 693; Name_Roots : constant Name_Id := N + 694; - Name_Required_Switches : constant Name_Id := N + 695; - Name_Run_Path_Option : constant Name_Id := N + 696; - Name_Runtime_Project : constant Name_Id := N + 697; - Name_Shared_Library_Minimum_Switches : constant Name_Id := N + 698; - Name_Shared_Library_Prefix : constant Name_Id := N + 699; - Name_Shared_Library_Suffix : constant Name_Id := N + 700; - Name_Separate_Suffix : constant Name_Id := N + 701; - Name_Source_Dirs : constant Name_Id := N + 702; - Name_Source_Files : constant Name_Id := N + 703; - Name_Source_List_File : constant Name_Id := N + 704; - Name_Spec : constant Name_Id := N + 705; - Name_Spec_Suffix : constant Name_Id := N + 706; - Name_Specification : constant Name_Id := N + 707; - Name_Specification_Exceptions : constant Name_Id := N + 708; - Name_Specification_Suffix : constant Name_Id := N + 709; - Name_Stack : constant Name_Id := N + 710; - Name_Switches : constant Name_Id := N + 711; - Name_Symbolic_Link_Supported : constant Name_Id := N + 712; - Name_Toolchain_Description : constant Name_Id := N + 713; - Name_Toolchain_Version : constant Name_Id := N + 714; + Name_Removed_Source_Dirs : constant Name_Id := N + 695; + Name_Required_Switches : constant Name_Id := N + 696; + Name_Run_Path_Option : constant Name_Id := N + 697; + Name_Runtime_Project : constant Name_Id := N + 698; + Name_Shared_Library_Minimum_Switches : constant Name_Id := N + 699; + Name_Shared_Library_Prefix : constant Name_Id := N + 700; + Name_Shared_Library_Suffix : constant Name_Id := N + 701; + Name_Separate_Suffix : constant Name_Id := N + 702; + Name_Source_Dirs : constant Name_Id := N + 703; + Name_Source_Files : constant Name_Id := N + 704; + Name_Source_List_File : constant Name_Id := N + 705; + Name_Spec : constant Name_Id := N + 706; + Name_Spec_Suffix : constant Name_Id := N + 707; + Name_Specification : constant Name_Id := N + 708; + Name_Specification_Exceptions : constant Name_Id := N + 709; + Name_Specification_Suffix : constant Name_Id := N + 710; + Name_Stack : constant Name_Id := N + 711; + Name_Switches : constant Name_Id := N + 712; + Name_Symbolic_Link_Supported : constant Name_Id := N + 713; + Name_Toolchain_Description : constant Name_Id := N + 714; + Name_Toolchain_Version : constant Name_Id := N + 715; -- Other miscellaneous names used in front end - Name_Unaligned_Valid : constant Name_Id := N + 715; + Name_Unaligned_Valid : constant Name_Id := N + 716; -- Ada 2005 reserved words - First_2005_Reserved_Word : constant Name_Id := N + 716; - Name_Interface : constant Name_Id := N + 716; - Name_Overriding : constant Name_Id := N + 717; - Name_Synchronized : constant Name_Id := N + 718; - Last_2005_Reserved_Word : constant Name_Id := N + 718; + First_2005_Reserved_Word : constant Name_Id := N + 717; + Name_Interface : constant Name_Id := N + 717; + Name_Overriding : constant Name_Id := N + 718; + Name_Synchronized : constant Name_Id := N + 719; + Last_2005_Reserved_Word : constant Name_Id := N + 719; subtype Ada_2005_Reserved_Words is Name_Id range First_2005_Reserved_Word .. Last_2005_Reserved_Word; -- Mark last defined name for consistency check in Snames body - Last_Predefined_Name : constant Name_Id := N + 718; + Last_Predefined_Name : constant Name_Id := N + 719; --------------------------------------- -- Subtypes Defining Name Categories --