aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ada/ChangeLog27
-rw-r--r--gcc/ada/bindgen.adb2
-rw-r--r--gcc/ada/gnat_ugn.texi7
-rw-r--r--gcc/ada/prj-conf.adb2
-rw-r--r--gcc/ada/prj-err.adb6
-rw-r--r--gcc/ada/prj-part.adb1
-rw-r--r--gcc/ada/prj-proc.adb20
-rw-r--r--gcc/ada/prj.adb3
-rw-r--r--gcc/ada/prj.ads20
-rw-r--r--gcc/ada/sem_util.adb21
-rw-r--r--gcc/ada/sem_util.ads2
11 files changed, 87 insertions, 24 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 5f34d8f..19d6eb0 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,30 @@
+2015-01-06 Pascal Obry <obry@adacore.com>
+
+ * bindgen.adb: Minor style fix.
+
+2015-01-06 Robert Dewar <dewar@adacore.com>
+
+ * sem_util.ads, sem_util.adb: Minor reformatting.
+
+2015-01-06 Vincent Celier <celier@adacore.com>
+
+ * prj-conf.adb (Parse_Project_And_Apply_Config): Reset incomplete
+ with flags before parsing the projects.
+ * prj-err.adb (Error_Msg): Do nothing if there are incomplete withs.
+ * prj-part.adb (Post_Parse_Context_Clause): Set Incomplete_Withs
+ to True in the flags, when Ignore_Missing_With is True and an
+ imported project cannot be found.
+ * prj-proc.adb (Expression): When there are incomplete withs and
+ a variable or attribute is not found, set the variable/attribute
+ to unknown.
+ * prj.ads (Processing_Flags): New flag Incomplete_Withs,
+ defaulted to False.
+
+2015-01-06 Vasiliy Fofanov <fofanov@adacore.com>
+
+ * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-conf.adb,
+ prj-err.adb: Add new switch --no-command-line.
+
2015-01-06 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb: Sloc of wrapper is that of instantiation.
diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb
index 9a5c1a8..9f4f105 100644
--- a/gcc/ada/bindgen.adb
+++ b/gcc/ada/bindgen.adb
@@ -941,7 +941,7 @@ package body Bindgen is
WBI (" System.Elaboration_Allocators.Mark_End_Of_Elaboration;");
end if;
- -- From this point, no new dispatching domain can be created.
+ -- From this point, no new dispatching domain can be created
if Dispatching_Domains_Used then
WBI (" Freeze_Dispatching_Domains;");
diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi
index 9e487db..ba1a8f2 100644
--- a/gcc/ada/gnat_ugn.texi
+++ b/gcc/ada/gnat_ugn.texi
@@ -19247,6 +19247,13 @@ status if at least one test fails or crashes. @var{val} can be either
Suppresses comment line containing file name and line number of corresponding
subprograms in test skeletons.
+@item --no-command-line
+@cindex @option{--no-command-line} (@command{gnattest})
+Don't add command line support to test driver. Note that regardless of this
+switch, @command{gnattest} will automatically refrain from adding command
+line support if it detects that the selected run-time doesn't provide
+this capability.
+
@item --separates
@cindex @option{--separates} (@command{gnattest})
diff --git a/gcc/ada/prj-conf.adb b/gcc/ada/prj-conf.adb
index 84c3dd6..4ab035d 100644
--- a/gcc/ada/prj-conf.adb
+++ b/gcc/ada/prj-conf.adb
@@ -1652,6 +1652,8 @@ package body Prj.Conf is
-- Parse the user project tree
+ Project_Node_Tree.Incomplete_With := False;
+ Env.Flags.Incomplete_Withs := False;
Prj.Initialize (Project_Tree);
Main_Project := No_Project;
diff --git a/gcc/ada/prj-err.adb b/gcc/ada/prj-err.adb
index 75cf23b..e6e6dd3 100644
--- a/gcc/ada/prj-err.adb
+++ b/gcc/ada/prj-err.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2014, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -72,6 +72,10 @@ package body Prj.Err is
Real_Location : Source_Ptr := Location;
begin
+ if Flags.Incomplete_Withs then
+ return;
+ end if;
+
-- Display the error message in the traces so that it appears in the
-- correct location in the traces (otherwise error messages are only
-- displayed at the end and it is difficult to see when they were
diff --git a/gcc/ada/prj-part.adb b/gcc/ada/prj-part.adb
index 234ccdc..c4cf2da 100644
--- a/gcc/ada/prj-part.adb
+++ b/gcc/ada/prj-part.adb
@@ -895,6 +895,7 @@ package body Prj.Part is
if Imported_Path_Name_Id = No_Path then
if Env.Flags.Ignore_Missing_With then
In_Tree.Incomplete_With := True;
+ Env.Flags.Incomplete_Withs := True;
else
-- The project file cannot be found
diff --git a/gcc/ada/prj-proc.adb b/gcc/ada/prj-proc.adb
index 71ac421..ac2cc66 100644
--- a/gcc/ada/prj-proc.adb
+++ b/gcc/ada/prj-proc.adb
@@ -819,11 +819,23 @@ package body Prj.Proc is
end if;
- pragma Assert (The_Variable_Id /= No_Variable,
- "variable or attribute not found");
+ if From_Project_Node_Tree.Incomplete_With then
+ if The_Variable_Id = No_Variable then
+ The_Variable := Nil_Variable_Value;
+ else
+ The_Variable :=
+ Shared.Variable_Elements.Table
+ (The_Variable_Id).Value;
+ end if;
- The_Variable :=
- Shared.Variable_Elements.Table (The_Variable_Id).Value;
+ else
+ pragma Assert (The_Variable_Id /= No_Variable,
+ "variable or attribute not found");
+
+ The_Variable :=
+ Shared.Variable_Elements.Table
+ (The_Variable_Id).Value;
+ end if;
else
diff --git a/gcc/ada/prj.adb b/gcc/ada/prj.adb
index b696e2a..9da0f44 100644
--- a/gcc/ada/prj.adb
+++ b/gcc/ada/prj.adb
@@ -1934,7 +1934,8 @@ package body Prj is
Require_Obj_Dirs => Require_Obj_Dirs,
Allow_Invalid_External => Allow_Invalid_External,
Missing_Source_Files => Missing_Source_Files,
- Ignore_Missing_With => Ignore_Missing_With);
+ Ignore_Missing_With => Ignore_Missing_With,
+ Incomplete_Withs => False);
end Create_Flags;
------------
diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads
index 6266a0a..935f3de 100644
--- a/gcc/ada/prj.ads
+++ b/gcc/ada/prj.ads
@@ -2051,6 +2051,11 @@ private
Allow_Invalid_External : Error_Warning;
Missing_Source_Files : Error_Warning;
Ignore_Missing_With : Boolean;
+
+ Incomplete_Withs : Boolean := False;
+ -- This flag is set to True when the projects are parsed while ignoring
+ -- missing withed project and some withed projects are not found.
+
end record;
Gprbuild_Flags : constant Processing_Flags :=
@@ -2063,7 +2068,8 @@ private
Require_Obj_Dirs => Error,
Allow_Invalid_External => Error,
Missing_Source_Files => Error,
- Ignore_Missing_With => False);
+ Ignore_Missing_With => False,
+ Incomplete_Withs => False);
Gprinstall_Flags : constant Processing_Flags :=
(Report_Error => null,
@@ -2075,7 +2081,8 @@ private
Require_Obj_Dirs => Silent,
Allow_Invalid_External => Error,
Missing_Source_Files => Error,
- Ignore_Missing_With => False);
+ Ignore_Missing_With => False,
+ Incomplete_Withs => False);
Gprclean_Flags : constant Processing_Flags :=
(Report_Error => null,
@@ -2087,7 +2094,8 @@ private
Require_Obj_Dirs => Warning,
Allow_Invalid_External => Error,
Missing_Source_Files => Error,
- Ignore_Missing_With => False);
+ Ignore_Missing_With => False,
+ Incomplete_Withs => False);
Gprexec_Flags : constant Processing_Flags :=
(Report_Error => null,
@@ -2099,7 +2107,8 @@ private
Require_Obj_Dirs => Silent,
Allow_Invalid_External => Error,
Missing_Source_Files => Silent,
- Ignore_Missing_With => False);
+ Ignore_Missing_With => False,
+ Incomplete_Withs => False);
Gnatmake_Flags : constant Processing_Flags :=
(Report_Error => null,
@@ -2111,6 +2120,7 @@ private
Require_Obj_Dirs => Error,
Allow_Invalid_External => Error,
Missing_Source_Files => Error,
- Ignore_Missing_With => False);
+ Ignore_Missing_With => False,
+ Incomplete_Withs => False);
end Prj;
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index b8e22ea..b0fcc17 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -5065,23 +5065,22 @@ package body Sem_Util is
end if;
end Select_Node;
- -- Start of processing for Designate_Next_Unit
+ -- Start of processing for Designate_Same_Unit
begin
- if (K1 = N_Identifier or else K1 = N_Defining_Identifier)
+ if Nkind_In (K1, N_Identifier, N_Defining_Identifier)
and then
- (K2 = N_Identifier or else K2 = N_Defining_Identifier)
+ Nkind_In (K2, N_Identifier, N_Defining_Identifier)
then
return Chars (Name1) = Chars (Name2);
- elsif
- (K1 = N_Expanded_Name or else
- K1 = N_Selected_Component or else
- K1 = N_Defining_Program_Unit_Name)
- and then
- (K2 = N_Expanded_Name or else
- K2 = N_Selected_Component or else
- K2 = N_Defining_Program_Unit_Name)
+ elsif Nkind_In (K1, N_Expanded_Name,
+ N_Selected_Component,
+ N_Defining_Program_Unit_Name)
+ and then
+ Nkind_In (K2, N_Expanded_Name,
+ N_Selected_Component,
+ N_Defining_Program_Unit_Name)
then
return
(Chars (Select_Node (Name1)) = Chars (Select_Node (Name2)))
diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads
index 162c4b6..040a7d6 100644
--- a/gcc/ada/sem_util.ads
+++ b/gcc/ada/sem_util.ads
@@ -504,7 +504,7 @@ package Sem_Util is
function Designate_Same_Unit
(Name1 : Node_Id;
Name2 : Node_Id) return Boolean;
- -- Return true if Name1 and Name2 designate the same unit name; each of
+ -- Returns True if Name1 and Name2 designate the same unit name; each of
-- these names is supposed to be a selected component name, an expanded
-- name, a defining program unit name or an identifier.