]> granicus.if.org Git - clang/commitdiff
[Driver] Suggest valid integrated tools
authorBrian Gesiak <modocache@gmail.com>
Mon, 15 Jan 2018 21:05:40 +0000 (21:05 +0000)
committerBrian Gesiak <modocache@gmail.com>
Mon, 15 Jan 2018 21:05:40 +0000 (21:05 +0000)
Summary:
There are only two valid integrated Clang driver tools: `-cc1` and
`-cc1as`. If a user asks for an unknown tool, such as `-cc1asphalt`,
an error message is displayed to indicate that there is no such tool,
but the message doesn't indicate what the valid options are.

Include the valid options in the error message.

Test Plan: `check-clang`

Reviewers: sepavloff, bkramer, phosek

Reviewed By: bkramer

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D42004

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@322517 91177308-0d34-0410-b5e6-96231b3b80d8

test/Driver/unknown-arg.c
tools/driver/driver.cpp

index dec4d59e9870c394c425594e18b33596db29fd28..d6bb5f7ae307c478a7082d07e59f93570a2380a9 100644 (file)
@@ -14,6 +14,8 @@
 // RUN: FileCheck %s --check-prefix=SILENT
 // RUN: not %clang -cc1as -hell --version -debug-info-macros 2>&1 | \
 // RUN: FileCheck %s --check-prefix=CC1AS-DID-YOU-MEAN
+// RUN: not %clang -cc1asphalt -help 2>&1 | \
+// RUN: FileCheck %s --check-prefix=UNKNOWN-INTEGRATED
 
 // CHECK: error: unknown argument: '-cake-is-lie'
 // CHECK: error: unknown argument: '-%0'
@@ -46,7 +48,7 @@
 // CC1AS-DID-YOU-MEAN: error: unknown argument '-hell', did you mean '-help'?
 // CC1AS-DID-YOU-MEAN: error: unknown argument '--version', did you mean '-version'?
 // CC1AS-DID-YOU-MEAN: error: unknown argument '-debug-info-macros', did you mean '-debug-info-macro'?
-
+// UNKNOWN-INTEGRATED: error: unknown integrated tool 'asphalt'. Valid tools include '-cc1' and '-cc1as'.
 
 // RUN: %clang -S %s -o %t.s  -Wunknown-to-clang-option 2>&1 | FileCheck --check-prefix=IGNORED %s
 
index fa757da9535c20fbc63a4a814643caedb87e9fed..611bff233e41edd643f34100f85db255119d11dd 100644 (file)
@@ -311,7 +311,8 @@ static int ExecuteCC1Tool(ArrayRef<const char *> argv, StringRef Tool) {
     return cc1as_main(argv.slice(2), argv[0], GetExecutablePathVP);
 
   // Reject unknown tools.
-  llvm::errs() << "error: unknown integrated tool '" << Tool << "'\n";
+  llvm::errs() << "error: unknown integrated tool '" << Tool << "'. "
+               << "Valid tools include '-cc1' and '-cc1as'.\n";
   return 1;
 }