aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/c-incpath.c10
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca109d9..20c59e5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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):
diff --git a/gcc/c-incpath.c b/gcc/c-incpath.c
index 8bd18c6..2f00d62 100644
--- a/gcc/c-incpath.c
+++ b/gcc/c-incpath.c
@@ -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;