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-version.s b/clang/test/Driver/as-version.s new file mode 100644 --- /dev/null +++ b/clang/test/Driver/as-version.s @@ -0,0 +1,9 @@ +// Test version information. + +// RUN: %clang -Wa,--version -c -fintegrated-as %s -o /dev/null \ +// RUN: | FileCheck --check-prefix=IAS %s +// IAS: clang version + +// RUN: %clang -Wa,--version -c -fno-integrated-as %s -o /dev/null \ +// RUN: | FileCheck --check-prefix=GAS %s +// GAS-NOT: clang