]> gcc.gnu.org Git - gcc.git/commitdiff
back_end.adb (Scan_Compiler_Arguments): Check if Search_Directory_Present is True...
authorVincent Celier <celier@adacore.com>
Wed, 15 Feb 2006 09:34:58 +0000 (10:34 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 15 Feb 2006 09:34:58 +0000 (10:34 +0100)
2006-02-13  Vincent Celier  <celier@adacore.com>

* back_end.adb (Scan_Compiler_Arguments): Check if
Search_Directory_Present is True and, if it is, add the argument in
the source search directory path.

* switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
Search_Directory_Present to True.

From-SVN: r111044

gcc/ada/back_end.adb
gcc/ada/switch-c.adb

index 5453dd3ab302aecec41dffe9e563301d8cc069fd..a77edd978c4db96dc9188639447bf1983ef4ad5a 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, 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- --
@@ -238,11 +238,10 @@ package body Back_End is
       --  Loop through command line arguments, storing them for later access
 
       while Next_Arg < save_argc loop
-
          Look_At_Arg : declare
-            Argv_Ptr  : constant BSP    := save_argv (Next_Arg);
-            Argv_Len  : constant Nat    := Len_Arg (Next_Arg);
-            Argv      : constant String := Argv_Ptr (1 .. Natural (Argv_Len));
+            Argv_Ptr : constant BSP    := save_argv (Next_Arg);
+            Argv_Len : constant Nat    := Len_Arg (Next_Arg);
+            Argv     : constant String := Argv_Ptr (1 .. Natural (Argv_Len));
 
          begin
             --  If the previous switch has set the Output_File_Name_Present
@@ -260,6 +259,18 @@ package body Back_End is
                   Output_File_Name_Seen := True;
                end if;
 
+               --  If the previous switch has set the Search_Directory_Present
+               --  flag (that is if we have just seen -I), then the next
+               --  argument is a search directory path.
+
+            elsif Search_Directory_Present then
+               if Is_Switch (Argv) then
+                  Fail ("search directory missing after -I");
+               else
+                  Add_Src_Search_Dir (Argv);
+                  Search_Directory_Present := False;
+               end if;
+
             elsif not Is_Switch (Argv) then -- must be a file name
                Add_File (Argv);
 
index eaefef90430a2a028d3eab6b84b6b587341117cd..1428aa79f638c9fe2450953f22cb3a10d41043c2 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2001-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2001-2006, 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- --
@@ -102,12 +102,16 @@ package body Switch.C is
                if Switch_Chars (Ptr) = 'I' then
                   Store_Switch := False;
 
-                  Ptr := Ptr + 1;
+                  --  Set flag Search_Directory_Present if switch is "-I" only:
+                  --  the directory will be the next argument.
 
-                  if Ptr > Max then
-                     Bad_Switch (C);
+                  if Ptr = Max then
+                     Search_Directory_Present := True;
+                     return;
                   end if;
 
+                  Ptr := Ptr + 1;
+
                   --  Find out whether this is a -I- or regular -Ixxx switch
 
                   if Ptr = Max and then Switch_Chars (Ptr) = '-' then
This page took 0.073168 seconds and 5 git commands to generate.