Author: Elvina Yakubova Date: 2020-06-25T18:48:50+03:00 New Revision: 16501782c8d849bc1812d527dc8466574700663d
URL: https://github.com/llvm/llvm-project/commit/16501782c8d849bc1812d527dc8466574700663d DIFF: https://github.com/llvm/llvm-project/commit/16501782c8d849bc1812d527dc8466574700663d.diff LOG: [Clang] Add support for -Wno-inline-namespace-reopened-noninline This patch adds the option for disabling warn_inline_namespace_reopened_noninline warning described here: https://bugs.llvm.org/show_bug.cgi?id=46106 Patch by Elvina Yakubova Differential Revision: https://reviews.llvm.org/D81825 Added: clang/test/SemaCXX/warn-inline-namespace-reopened-noninline-disable.cpp Modified: clang/include/clang/Basic/DiagnosticGroups.td clang/include/clang/Basic/DiagnosticSemaKinds.td clang/test/Misc/warning-flags.c Removed: ################################################################################ diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index 23f530dd4e1f..37e0b77e79ed 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -382,6 +382,8 @@ def IncompleteModule : DiagGroup<"incomplete-module", def PrivateModule : DiagGroup<"private-module">; def CXX11InlineNamespace : DiagGroup<"c++11-inline-namespace">; +def InlineNamespaceReopenedNoninline + : DiagGroup<"inline-namespace-reopened-noninline">; def InvalidNoreturn : DiagGroup<"invalid-noreturn">; def InvalidSourceEncoding : DiagGroup<"invalid-source-encoding">; def KNRPromotedParameter : DiagGroup<"knr-promoted-parameter">; diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 9067c45adc77..70b43f5abc4b 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -1414,7 +1414,8 @@ def warn_cxx14_compat_inline_variable : Warning< DefaultIgnore, InGroup<CXXPre17Compat>; def warn_inline_namespace_reopened_noninline : Warning< - "inline namespace reopened as a non-inline namespace">; + "inline namespace reopened as a non-inline namespace">, + InGroup<InlineNamespaceReopenedNoninline>; def err_inline_namespace_mismatch : Error< "non-inline namespace cannot be reopened as inline">; diff --git a/clang/test/Misc/warning-flags.c b/clang/test/Misc/warning-flags.c index 841c748b8025..e4f9069b88c8 100644 --- a/clang/test/Misc/warning-flags.c +++ b/clang/test/Misc/warning-flags.c @@ -18,7 +18,7 @@ This test serves two purposes: The list of warnings below should NEVER grow. It should gradually shrink to 0. -CHECK: Warnings without flags (69): +CHECK: Warnings without flags (68): CHECK-NEXT: ext_expected_semi_decl_list CHECK-NEXT: ext_explicit_specialization_storage_class @@ -58,7 +58,6 @@ CHECK-NEXT: warn_fe_macro_contains_embedded_newline CHECK-NEXT: warn_ignoring_ftabstop_value CHECK-NEXT: warn_implements_nscopying CHECK-NEXT: warn_incompatible_qualified_id -CHECK-NEXT: warn_inline_namespace_reopened_noninline CHECK-NEXT: warn_invalid_asm_cast_lvalue CHECK-NEXT: warn_maynot_respond CHECK-NEXT: warn_method_param_redefinition diff --git a/clang/test/SemaCXX/warn-inline-namespace-reopened-noninline-disable.cpp b/clang/test/SemaCXX/warn-inline-namespace-reopened-noninline-disable.cpp new file mode 100644 index 000000000000..3cc683006c41 --- /dev/null +++ b/clang/test/SemaCXX/warn-inline-namespace-reopened-noninline-disable.cpp @@ -0,0 +1,13 @@ +// RUN: %clang_cc1 -fsyntax-only -Wall -verify -std=c++11 %s +// RUN: %clang_cc1 -fsyntax-only -Wall -Wno-inline-namespace-reopened-noninline -DSILENCE -verify -std=c++11 %s + +namespace X { + #ifndef SILENCE + inline namespace {} // expected-note {{previous definition}} + namespace {} // expected-warning {{inline namespace reopened as a non-inline namespace}} + #else + // expected-no-diagnostics + inline namespace {} + namespace {} + #endif +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits