From 20bd11e85cc6656db6f3f8d3b5079c59d4a1cffd Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Thu, 20 Jun 2019 21:33:09 +0000 Subject: [PATCH] [test][Driver] Fix Clang :: Driver/cl-response-file.c Clang :: Driver/cl-response-file.c currently FAILs on Solaris: Command Output (stderr): -- /vol/llvm/src/clang/dist/test/Driver/cl-response-file.c:10:11: error: CHECK: expected string not found in input // CHECK: "-I" "{{.*}}\\Inputs\\cl-response-file\\" "-D" "FOO=2" ^ Looking at the generated response file reveals that this is no surprise: /I/vol/llvm/src/clang/dist/test/Driver\Inputs with no newline at the end. The echo command used to create it boils down to echo 'a\cb' However, one cannot expect \c to be emitted literally: e.g. bash's builtin echo has \c suppress further output I've tried various combinations of builtin echo, /usr/bin/echo, GNU echo if different, the same for printf, and the backslash unescaped and quoted (a\cb and a\\cb). The only combination that worked reliably on Solaris, Linux, and macOS was printf 'a\\cb' so this is what this patch uses. Tested on amd64-pc-solaris2.11 and x86_64-pc-linux-gnu. Differential Revision: https://reviews.llvm.org/D63600 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363985 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Driver/cl-response-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Driver/cl-response-file.c b/test/Driver/cl-response-file.c index 51ee00bff4..9186c43050 100644 --- a/test/Driver/cl-response-file.c +++ b/test/Driver/cl-response-file.c @@ -4,7 +4,7 @@ -// RUN: echo '/I%S\Inputs\cl-response-file\ /DFOO=2' > %t.rsp +// RUN: printf '/I%S\Inputs\\cl-response-file\ /DFOO=2' > %t.rsp // RUN: %clang_cl /c -### @%t.rsp -- %s 2>&1 | FileCheck %s // CHECK: "-I" "{{.*}}\\Inputs\\cl-response-file\\" "-D" "FOO=2" -- 2.50.1