diff options
author | Stephen Hines <srhines@google.com> | 2016-04-20 00:33:06 +0000 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2016-04-20 00:33:06 +0000 |
commit | e4c63eefa75b843eaa0548c27a68f94b159abd25 (patch) | |
tree | a1454630db3c5a426d3016b9d7555b58580d7032 /test/Driver/response-file-extra-whitespace.c | |
parent | 9625d162e52552164d54e95ab4800f7223516570 (diff) | |
download | clang-e4c63eefa75b843eaa0548c27a68f94b159abd25.tar.gz |
MarkEOLs should only be true for clang-cl.exe.
Summary:
https://llvm.org/bugs/show_bug.cgi?id=27396
This fixes an issue in response files where "\r\n" was being interpreted
as two EOL markers (i.e. we consumed the '\r' as terminating the
previous token, and then parsed the '\n' as a significant EOL). This
breaks response files where joined arguments get split across multiple
lines (like "-x\r\nc"). I also fixed an accidental issue in the
response-file.c test, where the response file is appended to, instead of
being overwritten.
Reviewers: rnk
Subscribers: danalbert, llvm-commits
Differential Revision: http://reviews.llvm.org/D19289
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@266840 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Driver/response-file-extra-whitespace.c')
-rw-r--r-- | test/Driver/response-file-extra-whitespace.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/Driver/response-file-extra-whitespace.c b/test/Driver/response-file-extra-whitespace.c new file mode 100644 index 0000000000..93b32bb505 --- /dev/null +++ b/test/Driver/response-file-extra-whitespace.c @@ -0,0 +1,12 @@ +// Check that clang is able to process response files with extra whitespace. +// We generate a dos-style file with \r\n for line endings, and then split +// some joined arguments (like "-x c") across lines to ensure that regular +// clang (not clang-cl) can process it correctly. +// +// RUN: echo -en "-x\r\nc\r\n-DTEST\r\n" > %t.0.txt +// RUN: %clang -E @%t.0.txt %s -v 2>&1 | FileCheck %s -check-prefix=SHORT +// SHORT: extern int it_works; + +#ifdef TEST +extern int it_works; +#endif |