aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/makeutl.adb
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2009-04-30 14:35:22 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2009-04-30 14:35:22 +0000
commit35debead51c672d94e09901096032aded316a45c (patch)
treeb930499490b07e1c897cdfe8e6d50538aecc8f2b /gcc/ada/makeutl.adb
parentdf35c271df60646a09af5279506c76c676a83217 (diff)
downloadgcc-35debead51c672d94e09901096032aded316a45c.zip
gcc-35debead51c672d94e09901096032aded316a45c.tar.gz
gcc-35debead51c672d94e09901096032aded316a45c.tar.bz2
Makefile.in (dce.o): Add $(EXCEPT_H).
* Makefile.in (dce.o): Add $(EXCEPT_H). * dce.c: Include except.h and delete redundant vector definitions. (deletable_insn_p): Return false for non-call insns that can throw if DF is running. From-SVN: r147002
Diffstat (limited to 'gcc/ada/makeutl.adb')
-rw-r--r--gcc/ada/makeutl.adb25
1 files changed, 23 insertions, 2 deletions
diff --git a/gcc/ada/makeutl.adb b/gcc/ada/makeutl.adb
index 50b9fe2..17c34ff 100644
--- a/gcc/ada/makeutl.adb
+++ b/gcc/ada/makeutl.adb
@@ -598,7 +598,8 @@ package body Makeutl is
(Switch : in out String_Access;
Parent : String;
Including_L_Switch : Boolean := True;
- Including_Non_Switch : Boolean := True)
+ Including_Non_Switch : Boolean := True;
+ Including_RTS : Boolean := False)
is
begin
if Switch /= null then
@@ -628,13 +629,20 @@ package body Makeutl is
then
Start := 4;
+ elsif Including_RTS
+ and then Sw'Length >= 7
+ and then Sw (2 .. 6) = "-RTS="
+ then
+ Start := 7;
+
else
return;
end if;
-- Because relative path arguments to --RTS= may be relative
-- to the search directory prefix, those relative path
- -- arguments are not converted.
+ -- arguments are converted only when they include directory
+ -- information.
if not Is_Absolute_Path (Sw (Start .. Sw'Last)) then
if Parent'Length = 0 then
@@ -643,6 +651,19 @@ package body Makeutl is
& Sw
& """) are not allowed");
+ elsif Including_RTS then
+ for J in Start .. Sw'Last loop
+ if Sw (J) = Directory_Separator then
+ Switch :=
+ new String'
+ (Sw (1 .. Start - 1) &
+ Parent &
+ Directory_Separator &
+ Sw (Start .. Sw'Last));
+ return;
+ end if;
+ end loop;
+
else
Switch :=
new String'