diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 6b5930990f11713da647de740bd3436570b6c415..704a3291298024a3170e8be04656a47e70c194ae 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -2731,6 +2731,12 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, CmdArgs.push_back(Value.data()); } else if (Value == "--version") { D.PrintVersion(C, llvm::outs()); + #ifdef BUILD_FOR_OPENEULER + } else if (Value.startswith("--generate-missing-build-notes=") && + Args.hasFlag(options::OPT_fgcc_compatible, + options::OPT_fno_gcc_compatible, false)) { + // Do nothing. + #endif } else { D.Diag(diag::err_drv_unsupported_option_argument) << A->getSpelling() << Value; diff --git a/clang/test/Driver/test-generate-missing-build-notes.cpp b/clang/test/Driver/test-generate-missing-build-notes.cpp new file mode 100644 index 0000000000000000000000000000000000000000..efd5251e6a1caca7a020fcb401cfaffcd724b41e --- /dev/null +++ b/clang/test/Driver/test-generate-missing-build-notes.cpp @@ -0,0 +1,13 @@ +// REQUIRES: build_for_openeuler +// RUN: %clang -### -fgcc-compatible -Wa,--generate-missing-build-notes=yes %s 2>&1 | FileCheck -check-prefix=CHECK-NO-ERROR %s +// RUN: %clang -### -fgcc-compatible -Wa,--generate-missing-build-notes=no %s 2>&1 | FileCheck -check-prefix=CHECK-NO-ERROR %s +// CHECK-NO-ERROR-NOT: --generate-missing-build-notes= +// RUN: %clang -### -Wa,--generate-missing-build-notes=yes %s 2>&1 | FileCheck -check-prefix=CHECK-ERROR %s +// RUN: %clang -### -Wa,--generate-missing-build-notes=no %s 2>&1 | FileCheck -check-prefix=CHECK-ERROR %s +// RUN: %clang -### -fno-gcc-compatible -Wa,--generate-missing-build-notes=yes %s 2>&1 | FileCheck -check-prefix=CHECK-ERROR %s +// RUN: %clang -### -fno-gcc-compatible -Wa,--generate-missing-build-notes=no %s 2>&1 | FileCheck -check-prefix=CHECK-ERROR %s +// CHECK-ERROR: error: unsupported argument '--generate-missing-build-notes= + +int main() { + return 1; +}