From e4c63eefa75b843eaa0548c27a68f94b159abd25 Mon Sep 17 00:00:00 2001 From: Stephen Hines Date: Wed, 20 Apr 2016 00:33:06 +0000 Subject: 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 --- test/Driver/response-file-extra-whitespace.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 test/Driver/response-file-extra-whitespace.c (limited to 'test/Driver/response-file-extra-whitespace.c') 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 -- cgit v1.2.1