From 21cb013c82d2e922431a8a9a6e4ae5d86a6118e7 Mon Sep 17 00:00:00 2001 From: Khomutov Nikita Date: Thu, 2 Feb 2023 13:04:55 +0000 Subject: [PATCH 1/2] [OHOS-LLVM15-workaround] suppress broken diagnistics Several diagnostics are uplifted to errors due to complex build configurations. In LLVM12->LLVM15 for OHOS there are several places that should be suppressed now for a more efficient migration. Signed-off-by: Khomutov Nikita --- clang/lib/Basic/Warnings.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/clang/lib/Basic/Warnings.cpp b/clang/lib/Basic/Warnings.cpp index cc8c138233ca..b854c500156e 100644 --- a/clang/lib/Basic/Warnings.cpp +++ b/clang/lib/Basic/Warnings.cpp @@ -52,6 +52,30 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags, Diags.setPrintTemplateTree(Opts.ShowTemplateTree); Diags.setShowColors(Opts.ShowColors); + // OHOS LLVM15 migration workaround + { + const std::vector InjectedChecks = { + "no-error=unused-but-set-variable", + "no-error=deprecated-declarations", + "no-error=strict-prototypes", + "no-error=null-pointer-subtraction", + "no-error=unqualified-std-cast-call", + "no-error=unused-but-set-parameter", + "no-error=deprecated-builtins", + "no-error=array-bounds", + "no-error=array-parameter", + "no-error=unused-but-set-variable", + "no-error=reserved-identifier", + "no-error=bitwise-instead-of-logical", + "no-error=strict-prototypes", + "no-error=deprecated-pragma" + }; + + auto& Warnings = const_cast(Opts).Warnings; + Warnings.insert(Warnings.end(), InjectedChecks.begin(), InjectedChecks.end()); + } + + // Handle -ferror-limit if (Opts.ErrorLimit) Diags.setErrorLimit(Opts.ErrorLimit); -- Gitee From b42472dd36cb9005ef9265c415795f8214c7f90e Mon Sep 17 00:00:00 2001 From: Khomutov Nikita Date: Thu, 2 Feb 2023 14:32:06 +0000 Subject: [PATCH 2/2] fix build Signed-off-by: Khomutov Nikita --- clang/lib/Basic/Warnings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/lib/Basic/Warnings.cpp b/clang/lib/Basic/Warnings.cpp index b854c500156e..e938edd04621 100644 --- a/clang/lib/Basic/Warnings.cpp +++ b/clang/lib/Basic/Warnings.cpp @@ -71,7 +71,7 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags, "no-error=deprecated-pragma" }; - auto& Warnings = const_cast(Opts).Warnings; + auto& Warnings = const_cast(Opts).Warnings; Warnings.insert(Warnings.end(), InjectedChecks.begin(), InjectedChecks.end()); } -- Gitee