From 28db314c8257a23de44cfe559198e447faf04753 Mon Sep 17 00:00:00 2001 From: Brian Gesiak Date: Mon, 15 Jan 2018 21:05:40 +0000 Subject: [PATCH] [Driver] Suggest valid integrated tools 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 llvm-svn: 322517 --- clang/test/Driver/unknown-arg.c | 4 +++- clang/tools/driver/driver.cpp | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/clang/test/Driver/unknown-arg.c b/clang/test/Driver/unknown-arg.c index dec4d59e9870..d6bb5f7ae307 100644 --- a/clang/test/Driver/unknown-arg.c +++ b/clang/test/Driver/unknown-arg.c @@ -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 diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp index fa757da9535c..611bff233e41 100644 --- a/clang/tools/driver/driver.cpp +++ b/clang/tools/driver/driver.cpp @@ -311,7 +311,8 @@ static int ExecuteCC1Tool(ArrayRef 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; }