diff options
author | Hans Wennborg <hans@hanshq.net> | 2014-10-17 17:07:59 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2014-10-17 17:07:59 +0000 |
commit | 1a27e04af9a1e0301546953f9e9fcb101e7d0f1b (patch) | |
tree | cc2569a055a57f919fc1c957bbff3b0fc6371a61 /clang/test/Driver/parse-progname.c | |
parent | f497d5511d1aff061c3af95b13796f8a4b05a4d0 (diff) | |
download | bcm5719-llvm-1a27e04af9a1e0301546953f9e9fcb101e7d0f1b.tar.gz bcm5719-llvm-1a27e04af9a1e0301546953f9e9fcb101e7d0f1b.zip |
Driver: support detecting driver mode when clang has a version suffix without dash (PR21094)
Clang would previously not get into C++ mode when invoked as 'clang++3.6'
(though clang++-3.6 would work).
I found the previous loop logic in this function confusing; hopefully this
makes it a little clearer.
Differential Revision: http://reviews.llvm.org/D5833
llvm-svn: 220052
Diffstat (limited to 'clang/test/Driver/parse-progname.c')
-rw-r--r-- | clang/test/Driver/parse-progname.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/clang/test/Driver/parse-progname.c b/clang/test/Driver/parse-progname.c new file mode 100644 index 00000000000..7fd285cdb24 --- /dev/null +++ b/clang/test/Driver/parse-progname.c @@ -0,0 +1,56 @@ +// REQUIRES: shell, arm-registered-target + + + +// RUN: ln -fs %clang %T/clang++ +// RUN: ln -fs %clang %T/clang++3.5.0 +// RUN: ln -fs %clang %T/clang++-3.5 +// RUN: ln -fs %clang %T/clang++-tot +// RUN: ln -fs %clang %T/clang-c++ +// RUN: ln -fs %clang %T/clang-g++ +// RUN: ln -fs %clang %T/c++ +// RUN: ln -fs %clang %T/foo-clang++ +// RUN: ln -fs %clang %T/foo-clang++-3.5 +// RUN: ln -fs %clang %T/foo-clang++3.5 +// RUN: %T/clang++ -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// RUN: %T/clang++3.5.0 -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// RUN: %T/clang++-3.5 -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// RUN: %T/clang++-tot -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// RUN: %T/clang-c++ -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// RUN: %T/clang-g++ -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// RUN: %T/c++ -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// RUN: %T/foo-clang++ -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// RUN: %T/foo-clang++-3.5 -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// RUN: %T/foo-clang++3.5 -### %s 2>&1 | FileCheck -check-prefix=CXXMODE %s +// CXXMODE: "-x" "c++" + + +// RUN: ln -fs %clang %T/clang-cl +// RUN: ln -fs %clang %T/cl +// RUN: ln -fs %clang %T/cl.exe +// RUN: ln -fs %clang %T/clang-cl3.5 +// RUN: ln -fs %clang %T/clang-cl-3.5 +// RUN: %T/clang-cl -### %s 2>&1 | FileCheck -check-prefix=CLMODE %s +// RUN: %T/cl -### %s 2>&1 | FileCheck -check-prefix=CLMODE %s +// RUN: %T/cl.exe -### %s 2>&1 | FileCheck -check-prefix=CLMODE %s +// RUN: %T/clang-cl3.5 -### %s 2>&1 | FileCheck -check-prefix=CLMODE %s +// RUN: %T/clang-cl-3.5 -### %s 2>&1 | FileCheck -check-prefix=CLMODE %s +// CLMODE: "-fdiagnostics-format" "msvc" + + +// RUN: ln -fs %clang %T/clang-cpp +// RUN: ln -fs %clang %T/cpp +// RUN: %T/clang-cpp -### %s 2>&1 | FileCheck -check-prefix=CPPMODE %s +// RUN: %T/cpp -### %s 2>&1 | FileCheck -check-prefix=CPPMODE %s +// CPPMODE: "-E" + + +// RUN: ln -fs %clang %T/cl-clang +// RUN: %T/cl-clang -### %s 2>&1 | FileCheck -check-prefix=CMODE %s +// CMODE: "-x" "c" +// CMODE-NOT: "-fdiagnostics-format" "msvc" + + +// RUN: ln -fs %clang %T/arm-linux-gnueabi-clang +// RUN: %T/arm-linux-gnueabi-clang -### %s 2>&1 | FileCheck -check-prefix=TARGET %s +// TARGET: Target: arm--linux-gnueabi |