diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -2549,6 +2549,8 @@ // -fdebug-compilation-dir (without '=') here. CmdArgs.push_back("-fdebug-compilation-dir"); CmdArgs.push_back(Value.data()); + } else if (Value == "--version") { + D.PrintVersion(C, llvm::outs()); } else { D.Diag(diag::err_drv_unsupported_option_argument) << A->getOption().getName() << Value; diff --git a/clang/test/Driver/as-options.s b/clang/test/Driver/as-options.s --- a/clang/test/Driver/as-options.s +++ b/clang/test/Driver/as-options.s @@ -34,6 +34,15 @@ // RUN: -Ifoo_dir -### 2>&1 \ // RUN: | FileCheck %s + +// Test version information. + +// RUN: %clang -Wa,--version -c -integrated-as %s -o /dev/null 2>&1 \ +// RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s + +// RUN: %clang -Wa,--version -c -no-integrated-as %s -o /dev/null 2>&1 \ +// RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s + // CHECK: "-I" "foo_dir" // Test that assembler options don't cause warnings when there's no assembler