aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-09-01 15:55:43 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-09-01 15:55:43 +0200
commit9f55bc6268042e7bb53627f366fa0e2d0e626ff5 (patch)
tree894bb96665c4da61e1c1a8cc7d06587a70198889
parentd7386a7a07949458aad3cfe7fdeb4a6b9024b11c (diff)
downloadgcc-9f55bc6268042e7bb53627f366fa0e2d0e626ff5.zip
gcc-9f55bc6268042e7bb53627f366fa0e2d0e626ff5.tar.gz
gcc-9f55bc6268042e7bb53627f366fa0e2d0e626ff5.tar.bz2
[multiple changes]
2011-09-01 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, s-taprop-linux.adb, gnatls.adb: Minor reformatting. 2011-09-01 Jose Ruiz <ruiz@adacore.com> * adaint.h (__gnat_cpu_free): Fix the name of this profile. * adaint.c (__gnat_cpu_alloc, __gnat_cpu_alloc_size, __gnat_cpu_free, __gnat_cpu_zero, __gnat_cpu_set): Create version of these subprograms specific for systems where their glibc version does not define the routines to handle dynamically allocated CPU sets. 2011-09-01 Vincent Celier <celier@adacore.com> * prj-proc.adb, prj.ads, prj-nmsc.adb, prj-util.adb, prj-util.ads, prj-env.adb: Implement inheritance of naming exceptions in extending projects. From-SVN: r178418
-rw-r--r--gcc/ada/ChangeLog18
-rw-r--r--gcc/ada/adaint.c39
-rw-r--r--gcc/ada/adaint.h2
-rw-r--r--gcc/ada/gnatls.adb1
-rw-r--r--gcc/ada/prj-env.adb4
-rw-r--r--gcc/ada/prj-nmsc.adb188
-rw-r--r--gcc/ada/prj-proc.adb84
-rw-r--r--gcc/ada/prj-util.adb14
-rw-r--r--gcc/ada/prj-util.ads2
-rw-r--r--gcc/ada/prj.ads15
-rw-r--r--gcc/ada/s-taprop-linux.adb11
-rw-r--r--gcc/ada/sem_ch3.adb9
12 files changed, 260 insertions, 127 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 2383b6b..ae711f0 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,21 @@
+2011-09-01 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch3.adb, s-taprop-linux.adb, gnatls.adb: Minor reformatting.
+
+2011-09-01 Jose Ruiz <ruiz@adacore.com>
+
+ * adaint.h (__gnat_cpu_free): Fix the name of this profile.
+ * adaint.c (__gnat_cpu_alloc, __gnat_cpu_alloc_size, __gnat_cpu_free,
+ __gnat_cpu_zero, __gnat_cpu_set): Create version of these subprograms
+ specific for systems where their glibc version does not define the
+ routines to handle dynamically allocated CPU sets.
+
+2011-09-01 Vincent Celier <celier@adacore.com>
+
+ * prj-proc.adb, prj.ads, prj-nmsc.adb, prj-util.adb, prj-util.ads,
+ prj-env.adb: Implement inheritance of naming exceptions in extending
+ projects.
+
2011-09-01 Romain Berrendonner <berrendo@adacore.com>
* gnatls.adb: Display simple message instead of content of
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 605cdaf..e470369 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -3790,6 +3790,14 @@ void *__gnat_lwp_self (void)
#include <sched.h>
+/* glibc versions earlier than 2.7 do not define the routines to handle
+ dynamically allocated CPU sets. For these targets, we use the static
+ versions. */
+
+#ifdef CPU_ALLOC
+
+/* Dynamic cpu sets */
+
cpu_set_t *__gnat_cpu_alloc (size_t count)
{
return CPU_ALLOC (count);
@@ -3816,6 +3824,37 @@ void __gnat_cpu_set (int cpu, size_t count, cpu_set_t *set)
CPU by a 0, so we need to adjust. */
CPU_SET_S (cpu - 1, count, set);
}
+
+#else
+
+/* Static cpu sets */
+
+cpu_set_t *__gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED)
+{
+ return (cpu_set_t *) xmalloc (sizeof (cpu_set_t));
+}
+
+size_t __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
+{
+ return sizeof (cpu_set_t);
+}
+
+void __gnat_cpu_free (cpu_set_t *set)
+{
+ free (set);
+}
+
+void __gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
+{
+ CPU_ZERO (set);
+}
+
+void __gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
+{
+ /* Ada handles CPU numbers starting from 1, while C identifies the first
+ CPU by a 0, so we need to adjust. */
+ CPU_SET (cpu - 1, set);
+}
#endif
#ifdef __cplusplus
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
index de00fb6..5f18095 100644
--- a/gcc/ada/adaint.h
+++ b/gcc/ada/adaint.h
@@ -254,7 +254,7 @@ extern void *__gnat_lwp_self (void);
extern cpu_set_t *__gnat_cpu_alloc (size_t);
extern size_t __gnat_cpu_alloc_size (size_t);
-extern void __gnat_cpu_set_free (cpu_set_t *);
+extern void __gnat_cpu_free (cpu_set_t *);
extern void __gnat_cpu_zero (size_t, cpu_set_t *);
extern void __gnat_cpu_set (int, size_t, cpu_set_t *);
#endif
diff --git a/gcc/ada/gnatls.adb b/gcc/ada/gnatls.adb
index 4bf9c12..0fbf3b4 100644
--- a/gcc/ada/gnatls.adb
+++ b/gcc/ada/gnatls.adb
@@ -829,6 +829,7 @@ procedure Gnatls is
& " GNAT Tracker at http://www.adacore.com/"
& " for license terms.");
Write_Eol;
+
when others =>
Write_Str ("Please refer to file COPYING in your distribution"
& " for license terms.");
diff --git a/gcc/ada/prj-env.adb b/gcc/ada/prj-env.adb
index 6dcee66..c60fa37 100644
--- a/gcc/ada/prj-env.adb
+++ b/gcc/ada/prj-env.adb
@@ -529,7 +529,7 @@ package body Prj.Env is
if not Source.Locally_Removed
and then Source.Unit /= null
and then
- (Source.Index >= 1 or else Source.Naming_Exception)
+ (Source.Index >= 1 or else Source.Naming_Exception /= No)
then
Put (Source);
end if;
@@ -1344,6 +1344,7 @@ package body Prj.Env is
while Unit /= null loop
if Unit.File_Names (Spec) /= null
+ and then not Unit.File_Names (Spec).Locally_Removed
and then Unit.File_Names (Spec).File /= No_File
and then
(Namet.Get_Name_String
@@ -1368,6 +1369,7 @@ package body Prj.Env is
elsif Unit.File_Names (Impl) /= null
and then Unit.File_Names (Impl).File /= No_File
+ and then not Unit.File_Names (Impl).Locally_Removed
and then
(Namet.Get_Name_String
(Unit.File_Names (Impl).File) = Original_Name
diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb
index 28c9326..1858c5d 100644
--- a/gcc/ada/prj-nmsc.adb
+++ b/gcc/ada/prj-nmsc.adb
@@ -252,13 +252,13 @@ package body Prj.Nmsc is
Kind : Source_Kind;
File_Name : File_Name_Type;
Display_File : File_Name_Type;
- Naming_Exception : Boolean := False;
- Path : Path_Information := No_Path_Information;
- Alternate_Languages : Language_List := null;
- Unit : Name_Id := No_Name;
- Index : Int := 0;
- Locally_Removed : Boolean := False;
- Location : Source_Ptr := No_Location);
+ Naming_Exception : Naming_Exception_Type := No;
+ Path : Path_Information := No_Path_Information;
+ Alternate_Languages : Language_List := null;
+ Unit : Name_Id := No_Name;
+ Index : Int := 0;
+ Locally_Removed : Boolean := False;
+ Location : Source_Ptr := No_Location);
-- Add a new source to the different lists: list of all sources in the
-- project tree, list of source of a project and list of sources of a
-- language. If Path is specified, the file is also added to
@@ -628,13 +628,13 @@ package body Prj.Nmsc is
Kind : Source_Kind;
File_Name : File_Name_Type;
Display_File : File_Name_Type;
- Naming_Exception : Boolean := False;
- Path : Path_Information := No_Path_Information;
- Alternate_Languages : Language_List := null;
- Unit : Name_Id := No_Name;
- Index : Int := 0;
- Locally_Removed : Boolean := False;
- Location : Source_Ptr := No_Location)
+ Naming_Exception : Naming_Exception_Type := No;
+ Path : Path_Information := No_Path_Information;
+ Alternate_Languages : Language_List := null;
+ Unit : Name_Id := No_Name;
+ Index : Int := 0;
+ Locally_Removed : Boolean := False;
+ Location : Source_Ptr := No_Location)
is
Config : constant Language_Config := Lang_Id.Config;
UData : Unit_Index;
@@ -725,7 +725,7 @@ package body Prj.Nmsc is
-- file name in unrelated projects.
elsif Is_Extending (Project, Source.Project) then
- if not Locally_Removed then
+ if not Locally_Removed and then Naming_Exception /= Inherited then
Source_To_Replace := Source;
end if;
@@ -854,14 +854,19 @@ package body Prj.Nmsc is
if UData = No_Unit_Index then
UData := new Unit_Data;
UData.Name := Unit;
- Units_Htable.Set (Data.Tree.Units_HT, Unit, UData);
+
+ if Naming_Exception /= Inherited then
+ Units_Htable.Set (Data.Tree.Units_HT, Unit, UData);
+ end if;
end if;
Id.Unit := UData;
-- Note that this updates Unit information as well
- Override_Kind (Id, Kind);
+ if Naming_Exception /= Inherited then
+ Override_Kind (Id, Kind);
+ end if;
end if;
if Path /= No_Path_Information then
@@ -2329,7 +2334,7 @@ package body Prj.Nmsc is
when Name_Runtime_Source_Dir =>
- -- Attribute Runtime_Library_Dir (<language>)
+ -- Attribute Runtime_Source_Dir (<language>)
Lang_Index.Config.Runtime_Source_Dir :=
Element.Value.Value;
@@ -3714,7 +3719,7 @@ package body Prj.Nmsc is
Kind => Kind,
File_Name => File_Name,
Display_File => File_Name_Type (Element.Value),
- Naming_Exception => True,
+ Naming_Exception => Yes,
Location => Element.Location);
else
@@ -3760,6 +3765,8 @@ package body Prj.Nmsc is
File_Name : File_Name_Type;
Source : Source_Id;
+ Naming_Exception : Naming_Exception_Type;
+
begin
case Kind is
when Impl | Sep =>
@@ -3787,7 +3794,7 @@ package body Prj.Nmsc is
if Exceptions = No_Array_Element then
Exceptions :=
Value_Of
- (Name_Spec,
+ (Name_Specification,
In_Arrays => Naming.Decl.Arrays,
Shared => Shared);
end if;
@@ -3795,6 +3802,13 @@ package body Prj.Nmsc is
while Exceptions /= No_Array_Element loop
Element := Shared.Array_Elements.Table (Exceptions);
+
+ if Element.Restricted then
+ Naming_Exception := Inherited;
+ else
+ Naming_Exception := Yes;
+ end if;
+
File_Name := Canonical_Case_File_Name (Element.Value.Value);
Get_Name_String (Element.Index);
@@ -3827,7 +3841,7 @@ package body Prj.Nmsc is
Unit => Unit,
Index => Index,
Location => Element.Value.Location,
- Naming_Exception => True);
+ Naming_Exception => Naming_Exception);
end if;
Exceptions := Element.Next;
@@ -6326,7 +6340,7 @@ package body Prj.Nmsc is
Source := Prj.Element (Iter);
exit Source_Loop when Source = No_Source;
- if Source.Naming_Exception then
+ if Source.Naming_Exception /= No then
NL := Source_Names_Htable.Get
(Project.Source_Names, Source.File);
@@ -6383,51 +6397,54 @@ package body Prj.Nmsc is
-- the same file has received the full path, so we need to
-- propagate it.
- if Source.Naming_Exception
- and then Source.Path = No_Path_Information
- then
- if Source.Unit /= No_Unit_Index then
- Found := False;
+ if Source.Path = No_Path_Information then
+ if Source.Naming_Exception = Yes then
+ if Source.Unit /= No_Unit_Index then
+ Found := False;
- if Source.Index /= 0 then -- Only multi-unit files
- declare
- S : Source_Id :=
- Source_Files_Htable.Get
- (Data.Tree.Source_Files_HT, Source.File);
- begin
- while S /= null loop
- if S.Path /= No_Path_Information then
- Source.Path := S.Path;
- Found := True;
+ if Source.Index /= 0 then -- Only multi-unit files
+ declare
+ S : Source_Id :=
+ Source_Files_Htable.Get
+ (Data.Tree.Source_Files_HT, Source.File);
+ begin
+ while S /= null loop
+ if S.Path /= No_Path_Information then
+ Source.Path := S.Path;
+ Found := True;
+
+ if Current_Verbosity = High then
+ Debug_Output
+ ("setting full path for "
+ & Get_Name_String (Source.File)
+ & " at" & Source.Index'Img
+ & " to "
+ & Get_Name_String (Source.Path.Name));
+ end if;
- if Current_Verbosity = High then
- Debug_Output
- ("setting full path for "
- & Get_Name_String (Source.File)
- & " at" & Source.Index'Img
- & " to "
- & Get_Name_String (Source.Path.Name));
+ exit;
end if;
- exit;
- end if;
+ S := S.Next_With_File_Name;
+ end loop;
+ end;
+ end if;
- S := S.Next_With_File_Name;
- end loop;
- end;
+ if not Found then
+ Error_Msg_Name_1 := Name_Id (Source.Display_File);
+ Error_Msg_Name_2 := Source.Unit.Name;
+ Error_Or_Warning
+ (Data.Flags, Data.Flags.Missing_Source_Files,
+ "source file %% for unit %% not found",
+ No_Location, Project.Project);
+ end if;
end if;
- if not Found then
- Error_Msg_Name_1 := Name_Id (Source.Display_File);
- Error_Msg_Name_2 := Source.Unit.Name;
- Error_Or_Warning
- (Data.Flags, Data.Flags.Missing_Source_Files,
- "source file %% for unit %% not found",
- No_Location, Project.Project);
+ if Source.Path = No_Path_Information then
+ Remove_Source (Data.Tree, Source, No_Source);
end if;
- end if;
- if Source.Path = No_Path_Information then
+ elsif Source.Naming_Exception = Inherited then
Remove_Source (Data.Tree, Source, No_Source);
end if;
end if;
@@ -6660,6 +6677,8 @@ package body Prj.Nmsc is
-- If we had another file referencing the same unit (for instance it
-- was in an extended project), that source file is in fact invisible
-- from now on, and in particular doesn't belong to the same unit.
+ -- If the source is an inherited naming exception, then it may not
+ -- really exist: the source potentially replaced is left untouched.
if Source.Unit.File_Names (Source.Kind) /= Source then
Source.Unit.File_Names (Source.Kind).Unit := No_Unit_Index;
@@ -6773,6 +6792,50 @@ package body Prj.Nmsc is
Override_Kind (Name_Loc.Source, Sep);
end if;
end if;
+
+ -- If this is an inherited naming exception, make sure that
+ -- the naming exception it replaces is no longer a source.
+
+ if Name_Loc.Source.Naming_Exception = Inherited then
+ declare
+ Proj : Project_Id := Name_Loc.Source.Project.Extends;
+ Iter : Source_Iterator;
+ Src : Source_Id;
+ begin
+ while Proj /= No_Project loop
+ Iter := For_Each_Source (Data.Tree, Proj);
+ Src := Prj.Element (Iter);
+ while Src /= No_Source loop
+ if Src.File = Name_Loc.Source.File then
+ Src.Replaced_By := Name_Loc.Source;
+ exit;
+ end if;
+
+ Next (Iter);
+ Src := Prj.Element (Iter);
+ end loop;
+
+ Proj := Proj.Extends;
+ end loop;
+ end;
+
+ if Name_Loc.Source.Unit /= No_Unit_Index then
+ if Name_Loc.Source.Kind = Spec then
+ Name_Loc.Source.Unit.File_Names (Spec) :=
+ Name_Loc.Source;
+
+ elsif Name_Loc.Source.Kind = Impl then
+ Name_Loc.Source.Unit.File_Names (Impl) :=
+ Name_Loc.Source;
+ end if;
+
+ Units_Htable.Set
+ (Data.Tree.Units_HT,
+ Name_Loc.Source.Unit.Name,
+ Name_Loc.Source.Unit);
+ end if;
+
+ end if;
end if;
end if;
end if;
@@ -6825,7 +6888,15 @@ package body Prj.Nmsc is
Name_Loc.Source := Source;
Source_Names_Htable.Set
(Project.Source_Names, File_Name, Name_Loc);
+
end if;
+
+-- if Source /= No_Source and then Source.Unit /= No_Unit_Index then
+-- Units_Htable.Set
+-- (Data.Tree.Units_HT,
+-- Source.Unit.Name,
+-- Source.Unit);
+-- end if;
end if;
end if;
@@ -7518,6 +7589,7 @@ package body Prj.Nmsc is
if Source /= No_Source
and then Source.Path /= Src.Path
+ and then Src.Project = Source.Project
then
Error_Msg_File_1 := Src.File;
Error_Msg_File_2 := Source.File;
diff --git a/gcc/ada/prj-proc.adb b/gcc/ada/prj-proc.adb
index b5869b2..cbe5142 100644
--- a/gcc/ada/prj-proc.adb
+++ b/gcc/ada/prj-proc.adb
@@ -398,69 +398,62 @@ package body Prj.Proc is
Arr := Shared.Arrays.Table (A1);
A1 := Arr.Next;
- if not Restricted
- or else
- (Arr.Name /= Snames.Name_Body and then
- Arr.Name /= Snames.Name_Spec and then
- Arr.Name /= Snames.Name_Implementation and then
- Arr.Name /= Snames.Name_Specification)
- then
- -- Remove the Next component
+ -- Remove the Next component
- Arr.Next := No_Array;
- Array_Table.Increment_Last (Shared.Arrays);
+ Arr.Next := No_Array;
+ Array_Table.Increment_Last (Shared.Arrays);
- -- Create new Array declaration
+ -- Create new Array declaration
- if To.Arrays = No_Array then
- To.Arrays := Array_Table.Last (Shared.Arrays);
- else
- Shared.Arrays.Table (A2).Next :=
- Array_Table.Last (Shared.Arrays);
- end if;
+ if To.Arrays = No_Array then
+ To.Arrays := Array_Table.Last (Shared.Arrays);
+ else
+ Shared.Arrays.Table (A2).Next :=
+ Array_Table.Last (Shared.Arrays);
+ end if;
- A2 := Array_Table.Last (Shared.Arrays);
+ A2 := Array_Table.Last (Shared.Arrays);
- -- Don't store the array as its first element has not been set yet
+ -- Don't store the array as its first element has not been set yet
- -- Copy the array elements of the array
+ -- Copy the array elements of the array
- E1 := Arr.Value;
- Arr.Value := No_Array_Element;
- while E1 /= No_Array_Element loop
+ E1 := Arr.Value;
+ Arr.Value := No_Array_Element;
+ while E1 /= No_Array_Element loop
- -- Copy the array element
+ -- Copy the array element
- Elm := Shared.Array_Elements.Table (E1);
- E1 := Elm.Next;
+ Elm := Shared.Array_Elements.Table (E1);
+ E1 := Elm.Next;
- -- Remove the Next component
+ -- Remove the Next component
- Elm.Next := No_Array_Element;
+ Elm.Next := No_Array_Element;
- -- Change the location
+ Elm.Restricted := Restricted;
+ -- Change the location
- Elm.Value.Location := New_Loc;
- Array_Element_Table.Increment_Last (Shared.Array_Elements);
+ Elm.Value.Location := New_Loc;
+ Array_Element_Table.Increment_Last (Shared.Array_Elements);
- -- Create new array element
+ -- Create new array element
- if Arr.Value = No_Array_Element then
- Arr.Value :=
- Array_Element_Table.Last (Shared.Array_Elements);
- else
- Shared.Array_Elements.Table (E2).Next :=
- Array_Element_Table.Last (Shared.Array_Elements);
- end if;
+ if Arr.Value = No_Array_Element then
+ Arr.Value :=
+ Array_Element_Table.Last (Shared.Array_Elements);
+ else
+ Shared.Array_Elements.Table (E2).Next :=
+ Array_Element_Table.Last (Shared.Array_Elements);
+ end if;
- E2 := Array_Element_Table.Last (Shared.Array_Elements);
- Shared.Array_Elements.Table (E2) := Elm;
- end loop;
+ E2 := Array_Element_Table.Last (Shared.Array_Elements);
+ Shared.Array_Elements.Table (E2) := Elm;
+ end loop;
- -- Finally, store the new array
+ -- Finally, store the new array
- Shared.Arrays.Table (A2) := Arr;
- end if;
+ Shared.Arrays.Table (A2) := Arr;
end loop;
end Copy_Package_Declarations;
@@ -1940,6 +1933,7 @@ package body Prj.Proc is
Shared.Array_Elements.Table
(Elem) :=
(Index => Index_Name,
+ Restricted => False,
Src_Index => Source_Index,
Index_Case_Sensitive =>
not Case_Insensitive (Current, Node_Tree),
diff --git a/gcc/ada/prj-util.adb b/gcc/ada/prj-util.adb
index deec676..c1f9409 100644
--- a/gcc/ada/prj-util.adb
+++ b/gcc/ada/prj-util.adb
@@ -757,8 +757,11 @@ package body Prj.Util is
elsif Name_Buffer (1 .. 2) = "I=" then
Info.Info.Index := Int'Value (Name_Buffer (3 .. Name_Len));
- elsif Name_Buffer (1 .. Name_Len) = "N=T" then
- Info.Info.Naming_Exception := True;
+ elsif Name_Buffer (1 .. Name_Len) = "N=Y" then
+ Info.Info.Naming_Exception := Yes;
+
+ elsif Name_Buffer (1 .. Name_Len) = "N=I" then
+ Info.Info.Naming_Exception := Inherited;
else
Report_Error;
@@ -1116,8 +1119,11 @@ package body Prj.Util is
-- Naming exception ("N=T");
- if Source.Naming_Exception then
- Put_Line (File, "N=T");
+ if Source.Naming_Exception = Yes then
+ Put_Line (File, "N=Y");
+
+ elsif Source.Naming_Exception = Inherited then
+ Put_Line (File, "N=I");
end if;
-- Empty line to indicate end of info on this source
diff --git a/gcc/ada/prj-util.ads b/gcc/ada/prj-util.ads
index cd2629d..b457a5e 100644
--- a/gcc/ada/prj-util.ads
+++ b/gcc/ada/prj-util.ads
@@ -210,7 +210,7 @@ package Prj.Util is
Path_Name : Name_Id;
Unit_Name : Name_Id := No_Name;
Index : Int := 0;
- Naming_Exception : Boolean := False;
+ Naming_Exception : Naming_Exception_Type := No;
end record;
-- Data read from a source info file for a single source
diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads
index 3ab0f3e..0c40420 100644
--- a/gcc/ada/prj.ads
+++ b/gcc/ada/prj.ads
@@ -187,6 +187,7 @@ package Prj is
No_Array_Element : constant Array_Element_Id := 0;
type Array_Element is record
Index : Name_Id;
+ Restricted : Boolean := False;
Src_Index : Int := 0;
Index_Case_Sensitive : Boolean := True;
Value : Variable_Value;
@@ -679,6 +680,8 @@ package Prj is
-- corresponding to an Ada file). In general, these are dependencies that
-- cannot be computed automatically by the builder.
+ type Naming_Exception_Type is (No, Yes, Inherited);
+
-- Structure to define source data
type Source_Data is record
@@ -791,7 +794,7 @@ package Prj is
Switches_TS : Time_Stamp_Type := Empty_Time_Stamp;
-- Switches file time stamp
- Naming_Exception : Boolean := False;
+ Naming_Exception : Naming_Exception_Type := No;
-- True if the source has an exceptional name
Duplicate_Unit : Boolean := False;
@@ -840,7 +843,7 @@ package Prj is
Switches => No_File,
Switches_Path => No_Path,
Switches_TS => Empty_Time_Stamp,
- Naming_Exception => False,
+ Naming_Exception => No,
Duplicate_Unit => False,
Next_In_Lang => No_Source,
Next_With_File_Name => No_Source,
@@ -864,14 +867,6 @@ package Prj is
Equal => "=");
-- Mapping of source paths to source ids
- package Unit_Sources_Htable is new Simple_HTable
- (Header_Num => Header_Num,
- Element => Source_Id,
- No_Element => No_Source,
- Key => Name_Id,
- Hash => Hash,
- Equal => "=");
-
type Lib_Kind is (Static, Dynamic, Relocatable);
type Policy is (Autonomous, Compliant, Controlled, Restricted, Direct);
diff --git a/gcc/ada/s-taprop-linux.adb b/gcc/ada/s-taprop-linux.adb
index 2034566..6eeaf62 100644
--- a/gcc/ada/s-taprop-linux.adb
+++ b/gcc/ada/s-taprop-linux.adb
@@ -870,7 +870,8 @@ package body System.Task_Primitives.Operations is
elsif T.Common.Base_CPU /= System.Multiprocessors.Not_A_Specific_CPU then
declare
CPUs : constant size_t :=
- Interfaces.C.size_t (System.Multiprocessors.Number_Of_CPUs);
+ Interfaces.C.size_t
+ (System.Multiprocessors.Number_Of_CPUs);
CPU_Set : constant cpu_set_t_ptr := CPU_ALLOC (CPUs);
Size : constant size_t := CPU_ALLOC_SIZE (CPUs);
@@ -909,7 +910,8 @@ package body System.Task_Primitives.Operations is
then
declare
CPUs : constant size_t :=
- Interfaces.C.size_t (System.Multiprocessors.Number_Of_CPUs);
+ Interfaces.C.size_t
+ (System.Multiprocessors.Number_Of_CPUs);
CPU_Set : constant cpu_set_t_ptr := CPU_ALLOC (CPUs);
Size : constant size_t := CPU_ALLOC_SIZE (CPUs);
@@ -943,6 +945,7 @@ package body System.Task_Primitives.Operations is
Attributes'Access,
Thread_Body_Access (Wrapper),
To_Address (T));
+
pragma Assert
(Result = 0 or else Result = EAGAIN or else Result = ENOMEM);
@@ -985,6 +988,7 @@ package body System.Task_Primitives.Operations is
if T.Known_Tasks_Index /= -1 then
Known_Tasks (T.Known_Tasks_Index) := null;
end if;
+
SC.Invalidate_Stack_Cache (T.Common.Compiler_Data.Pri_Stack_Info'Access);
Free (Tmp);
@@ -1403,7 +1407,8 @@ package body System.Task_Primitives.Operations is
then
declare
CPUs : constant size_t :=
- Interfaces.C.size_t (System.Multiprocessors.Number_Of_CPUs);
+ Interfaces.C.size_t
+ (System.Multiprocessors.Number_Of_CPUs);
CPU_Set : cpu_set_t_ptr := null;
Size : constant size_t := CPU_ALLOC_SIZE (CPUs);
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 2533be2..91e30e6 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -15761,7 +15761,7 @@ package body Sem_Ch3 is
Set_Anonymous_Type (New_C);
elsif (Is_Private_Type (Derived_Base)
- and then not Is_Generic_Type (Derived_Base))
+ and then not Is_Generic_Type (Derived_Base))
or else (Is_Empty_Elmt_List (Discs)
and then not Expander_Active)
then
@@ -15784,9 +15784,10 @@ package body Sem_Ch3 is
-- type T_2 is new Pack_1.T_1 with ...;
-- end Pack_2;
- Set_Etype (New_C,
- Constrain_Component_Type
- (Old_C, Derived_Base, N, Parent_Base, Discs));
+ Set_Etype
+ (New_C,
+ Constrain_Component_Type
+ (Old_C, Derived_Base, N, Parent_Base, Discs));
end if;
end if;