diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2021-01-03 21:40:04 +0100 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2021-01-03 21:40:04 +0100 |
commit | afae4a55ccaa0de95ea11e5f634084db6ab2f444 (patch) | |
tree | d632cc867d10410ba9fb750523be790b86846ac4 /gcc/d/d-lang.cc | |
parent | 9d9a82ec8478ff52c7a9d61f58cd2a7b6295b5f9 (diff) | |
parent | d2eb616a0f7bea78164912aa438c29fe1ef5774a (diff) | |
download | gcc-afae4a55ccaa0de95ea11e5f634084db6ab2f444.zip gcc-afae4a55ccaa0de95ea11e5f634084db6ab2f444.tar.gz gcc-afae4a55ccaa0de95ea11e5f634084db6ab2f444.tar.bz2 |
Merge branch 'master' into devel/coarray_native
Diffstat (limited to 'gcc/d/d-lang.cc')
-rw-r--r-- | gcc/d/d-lang.cc | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/gcc/d/d-lang.cc b/gcc/d/d-lang.cc index fb95716..f20d1f0 100644 --- a/gcc/d/d-lang.cc +++ b/gcc/d/d-lang.cc @@ -114,26 +114,35 @@ deps_add_target (const char *target, bool quoted) } /* Quote characters in target which are significant to Make. */ + unsigned slashes = 0; + for (const char *p = target; *p != '\0'; p++) { switch (*p) { + case '\\': + slashes++; + break; + case ' ': case '\t': - for (const char *q = p - 1; target <= q && *q == '\\'; q--) + while (slashes--) obstack_1grow (&buffer, '\\'); obstack_1grow (&buffer, '\\'); - break; + goto Ldef; case '$': obstack_1grow (&buffer, '$'); - break; + goto Ldef; case '#': + case ':': obstack_1grow (&buffer, '\\'); - break; + goto Ldef; default: + Ldef: + slashes = 0; break; } |