[clang] 1650178 - [Clang] Add support for -Wno-inline-namespace-reopened-noninline
Andrey Bokhanko via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 25 08:49:46 PDT 2020
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
+}
More information about the cfe-commits
mailing list