This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] fix handling of naming scheme in project manager


Tested under i686-linux, committed on mainline.

After recent changes to support multiple project trees,
the default naming data can no longer be shared between project trees,
because it contains references to component of the tree.
Each project tree needs to have its own default data.

For the following project "toto.gpr":
project Toto is
   package Naming is
   end Naming;
end Toto;
  
the following program must execute silently:
with Csets;
with Errout;
with Namet; use Namet;
with Prj.Part;
with Prj.Proc;
with Prj.Tree; use Prj.Tree;
with Prj.Util; use Prj.Util;
with Snames;
with Types; use Types;

with Ada.Text_IO; use Ada.Text_IO;
   
procedure Driver is
   
   use Prj;

   Project        : Project_Id      := No_Project;
   Tree1   : constant Project_Tree_Ref := new Project_Tree_Data;
   Tree2   : constant Project_Tree_Ref := new Project_Tree_Data;
   Project_Node   : Project_Node_Id := Empty_Node;
   Node_Tree1 : constant Project_Node_Tree_Ref :=
                         new Project_Node_Tree_Data;
   Node_Tree2 : constant Project_Node_Tree_Ref :=
                         new Project_Node_Tree_Data;
   Success : Boolean := True;
begin
   Csets.Initialize;
   Namet.Initialize;
   Snames.Initialize;
   Prj.Initialize (Tree1);
   Prj.Tree.Initialize (Node_Tree1);

   Part.Parse (Node_Tree1, Project_Node, "toto.gpr", False);

   Proc.Process (Tree1, Project, Success, Project_Node,
                 Node_Tree1, null);
   Errout.Finalize;
   Prj.Initialize (Tree2);
   Prj.Tree.Initialize (Node_Tree2);
   Part.Parse (Node_Tree2, Project_Node, "toto.gpr", False);
   Proc.Process (Tree2, Project, Success, Project_Node,
                 Node_Tree2, null);
   Errout.Finalize;
end Driver;

2005-03-17  Vincent Celier  <celier@adacore.com>

	* make.adb (Insert_Project_Sources): Make sure the Q is always
	initialized.

	* prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
	the default for the tree, not the global default naming.

	* prj-proc.adb (Recursive_Process): No need to put the default naming
	in the project data, it's already there.

Attachment: difs.10
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]