aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2007-12-07 18:03:20 +0000
committerSamuel Tardieu <sam@gcc.gnu.org>2007-12-07 18:03:20 +0000
commit72f69ddf21cbf51560e6da8d9a534d25a1e72a61 (patch)
treeb2b6133220f9d12c3206460455818820a2c27480
parent63396805ab90f39238caf76d7ed02b821bf21b14 (diff)
downloadgcc-72f69ddf21cbf51560e6da8d9a534d25a1e72a61.zip
gcc-72f69ddf21cbf51560e6da8d9a534d25a1e72a61.tar.gz
gcc-72f69ddf21cbf51560e6da8d9a534d25a1e72a61.tar.bz2
re PR ada/21346 (Ada.Directories.Compose raises exception if Containing_Directory is empty string)
gcc/ada/ PR ada/21346 * a-direct.adb (Compose): Containing_Directory can be an empty string. gcc/testsuite/ PR ada/21346 * gnat.dg/compose.adb: New test. From-SVN: r130692
-rw-r--r--gcc/ada/ChangeLog3
-rw-r--r--gcc/ada/a-direct.adb6
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gnat.dg/compose.adb11
4 files changed, 21 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 0b1afbc..49f226f 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -14,6 +14,9 @@
when an access to constant is used to initialize an access
value.
+ PR ada/21346
+ * a-direct.adb (Compose): Containing_Directory can be an empty string.
+
2007-12-07 Olivier Hainque <hainque@adacore.com>
PR ada/34173
diff --git a/gcc/ada/a-direct.adb b/gcc/ada/a-direct.adb
index 1d7ea55..52ad1b3 100644
--- a/gcc/ada/a-direct.adb
+++ b/gcc/ada/a-direct.adb
@@ -155,7 +155,9 @@ package body Ada.Directories is
begin
-- First, deal with the invalid cases
- if not Is_Valid_Path_Name (Containing_Directory) then
+ if Containing_Directory /= ""
+ and then not Is_Valid_Path_Name (Containing_Directory)
+ then
raise Name_Error;
elsif
@@ -176,7 +178,7 @@ package body Ada.Directories is
-- Add a directory separator if needed
- if Result (Last) /= Dir_Separator then
+ if Last /= 0 and then Result (Last) /= Dir_Separator then
Last := Last + 1;
Result (Last) := Dir_Separator;
end if;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1b0fbbd..62a7a15 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -15,6 +15,9 @@
* gnat.dg/specs/access_constant_decl.ads: New test.
+ PR ada/21346
+ * gnat.dg/compose.adb: New test.
+
2007-12-07 Olivier Hainque <hainque@adacore.com>
PR ada/34173
diff --git a/gcc/testsuite/gnat.dg/compose.adb b/gcc/testsuite/gnat.dg/compose.adb
new file mode 100644
index 0000000..4ee3c57
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/compose.adb
@@ -0,0 +1,11 @@
+-- { dg-do run }
+with Ada.Directories;
+with Ada.Text_IO;
+
+procedure Compose is
+ Result : constant String := Ada.Directories.Compose (Name => "foo",
+ Extension => "txt");
+ pragma Unreferenced (Result);
+begin
+ null;
+end Compose;