diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2013-01-21 19:34:49 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2013-01-21 19:34:49 +0000 |
commit | bfc1665471645a0c087ebfcf2aadaa9f93fb8be6 (patch) | |
tree | a497b79fd25f505a51f14cd7f475f9a76e186e43 /gcc/fortran/scanner.c | |
parent | 62e896818a07297d3469cdd185402c52768c01c2 (diff) | |
download | gcc-bfc1665471645a0c087ebfcf2aadaa9f93fb8be6.zip gcc-bfc1665471645a0c087ebfcf2aadaa9f93fb8be6.tar.gz gcc-bfc1665471645a0c087ebfcf2aadaa9f93fb8be6.tar.bz2 |
re PR fortran/55919 (Bogus warning with -J directory/)
2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/55919
* scanner.c (add_path_to_list): Copy path to temporary and strip
trailing directory separators before calling stat().
2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/55919
* gfortran.dg/include_8.f90: New test.
From-SVN: r195348
Diffstat (limited to 'gcc/fortran/scanner.c')
-rw-r--r-- | gcc/fortran/scanner.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c index 008e91f..0467f8a 100644 --- a/gcc/fortran/scanner.c +++ b/gcc/fortran/scanner.c @@ -310,14 +310,26 @@ add_path_to_list (gfc_directorylist **list, const char *path, { gfc_directorylist *dir; const char *p; + char *q; struct stat st; + size_t len; + int i; p = path; while (*p == ' ' || *p == '\t') /* someone might do "-I include" */ if (*p++ == '\0') return; - if (stat (p, &st)) + /* Strip trailing directory separators from the path, as this + will confuse Windows systems. */ + len = strlen (p); + q = (char *) alloca (len + 1); + memcpy (q, p, len + 1); + i = len - 1; + while (i >=0 && IS_DIR_SEPARATOR(q[i])) + q[i--] = '\0'; + + if (stat (q, &st)) { if (errno != ENOENT) gfc_warning_now ("Include directory \"%s\": %s", path, |