r248064 - Split off the binary literal warning into a subgroup of C++14 warnings
Richard Trieu via cfe-commits
cfe-commits at lists.llvm.org
Fri Sep 18 16:18:39 PDT 2015
Author: rtrieu
Date: Fri Sep 18 18:18:39 2015
New Revision: 248064
URL: http://llvm.org/viewvc/llvm-project?rev=248064&view=rev
Log:
Split off the binary literal warning into a subgroup of C++14 warnings
Binary literals predate C++14, but they are listed as a C++14 extension since
this was the first time they were standardized in the language. Move the
warning into a subgroup so it can be selectively disabled when checking for
other C++14 features.
Added:
cfe/trunk/test/Lexer/warn_binary_literals.cpp
Modified:
cfe/trunk/include/clang/Basic/DiagnosticGroups.td
cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td
Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=248064&r1=248063&r2=248064&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticGroups.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td Fri Sep 18 18:18:39 2015
@@ -29,6 +29,7 @@ def ArrayBoundsPointerArithmetic : DiagG
def Availability : DiagGroup<"availability">;
def Section : DiagGroup<"section">;
def AutoImport : DiagGroup<"auto-import">;
+def CXX14BinaryLiteral : DiagGroup<"c++14-binary-literal">;
def GNUBinaryLiteral : DiagGroup<"gnu-binary-literal">;
def GNUCompoundLiteralInitializer : DiagGroup<"gnu-compound-literal-initializer">;
def BitFieldConstantConversion : DiagGroup<"bitfield-constant-conversion">;
@@ -680,7 +681,7 @@ def CXX11 : DiagGroup<"c++11-extensions"
// A warning group for warnings about using C++14 features as extensions in
// earlier C++ versions.
-def CXX14 : DiagGroup<"c++14-extensions">;
+def CXX14 : DiagGroup<"c++14-extensions", [CXX14BinaryLiteral]>;
// A warning group for warnings about using C++1z features as extensions in
// earlier C++ versions.
Modified: cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td?rev=248064&r1=248063&r2=248064&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td Fri Sep 18 18:18:39 2015
@@ -184,7 +184,7 @@ def ext_hexconstant_invalid : Extension<
def ext_binary_literal : Extension<
"binary integer literals are a GNU extension">, InGroup<GNUBinaryLiteral>;
def ext_binary_literal_cxx14 : Extension<
- "binary integer literals are a C++14 extension">, InGroup<CXX14>;
+ "binary integer literals are a C++14 extension">, InGroup<CXX14BinaryLiteral>;
def warn_cxx11_compat_binary_literal : Warning<
"binary integer literals are incompatible with C++ standards before C++14">,
InGroup<CXXPre14CompatPedantic>, DefaultIgnore;
Added: cfe/trunk/test/Lexer/warn_binary_literals.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/warn_binary_literals.cpp?rev=248064&view=auto
==============================================================================
--- cfe/trunk/test/Lexer/warn_binary_literals.cpp (added)
+++ cfe/trunk/test/Lexer/warn_binary_literals.cpp Fri Sep 18 18:18:39 2015
@@ -0,0 +1,5 @@
+// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s -Wc++14-binary-literal
+// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s -Wc++14-extensions
+
+int x = 0b11;
+// expected-warning at -1{{binary integer literals are a C++14 extension}}
More information about the cfe-commits
mailing list