c-incpath.c (add_path): Canonicalize paths to use '/' if HAVE_DOS_BASED_FILESYSTEM.
authorDanny Smith <dannysmith@users.sourceforge.net>
Mon, 31 May 2004 10:30:00 +0000 (10:30 +0000)
committerDanny Smith <dannysmith@gcc.gnu.org>
Mon, 31 May 2004 10:30:00 +0000 (10:30 +0000)
* c-incpath.c (add_path): Canonicalize paths to use '/' if
HAVE_DOS_BASED_FILESYSTEM.

From-SVN: r82481

gcc/ChangeLog
gcc/c-incpath.c

index ca109d99911bf7565cb8b9869d90ee17e6d9902b..20c59e5f4c0cf6237171ab117b81687def9502c2 100644 (file)
@@ -1,3 +1,8 @@
+2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * c-incpath.c (add_path): Canonicalize paths to use '/' if
+       HAVE_DOS_BASED_FILESYSTEM.
+
 2004-05-31  Steven Bosscher  <stevenb@suse.de>
 
        * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
index 8bd18c62b12d3ddb1550e93b027d6f738dfd1029..2f00d62bb63aae2ab7ba2fdeb0d41a458d5d4357 100644 (file)
@@ -327,6 +327,16 @@ add_path (char *path, int chain, int cxx_aware, bool user_supplied_p)
 {
   cpp_dir *p;
 
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Convert all backslashes to slashes.  The native CRT stat()
+     function does not recognise a directory that ends in a backslash
+     (unless it is a drive root dir, such "c:\").  Forward slashes,
+     trailing or otherwise, cause no problems for stat().  */
+  char* c;
+  for (c = path; *c; c++)
+    if (*c == '\\') *c = '/';
+#endif
+
   p = xmalloc (sizeof (cpp_dir));
   p->next = NULL;
   p->name = path;