<div dir="ltr">Can we arrange for this warning to also be controlled by the -Wgnu-binary-literal option, as it is outside C++ mode?</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 18, 2015 at 4:18 PM, Richard Trieu via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rtrieu<br>
Date: Fri Sep 18 18:18:39 2015<br>
New Revision: 248064<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=248064&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=248064&view=rev</a><br>
Log:<br>
Split off the binary literal warning into a subgroup of C++14 warnings<br>
<br>
Binary literals predate C++14, but they are listed as a C++14 extension since<br>
this was the first time they were standardized in the language.  Move the<br>
warning into a subgroup so it can be selectively disabled when checking for<br>
other C++14 features.<br>
<br>
Added:<br>
    cfe/trunk/test/Lexer/warn_binary_literals.cpp<br>
Modified:<br>
    cfe/trunk/include/clang/Basic/DiagnosticGroups.td<br>
    cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td<br>
<br>
Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=248064&r1=248063&r2=248064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=248064&r1=248063&r2=248064&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Basic/DiagnosticGroups.td (original)<br>
+++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td Fri Sep 18 18:18:39 2015<br>
@@ -29,6 +29,7 @@ def ArrayBoundsPointerArithmetic : DiagG<br>
 def Availability : DiagGroup<"availability">;<br>
 def Section : DiagGroup<"section">;<br>
 def AutoImport : DiagGroup<"auto-import">;<br>
+def CXX14BinaryLiteral : DiagGroup<"c++14-binary-literal">;<br>
 def GNUBinaryLiteral : DiagGroup<"gnu-binary-literal">;<br>
 def GNUCompoundLiteralInitializer : DiagGroup<"gnu-compound-literal-initializer">;<br>
 def BitFieldConstantConversion : DiagGroup<"bitfield-constant-conversion">;<br>
@@ -680,7 +681,7 @@ def CXX11 : DiagGroup<"c++11-extensions"<br>
<br>
 // A warning group for warnings about using C++14 features as extensions in<br>
 // earlier C++ versions.<br>
-def CXX14 : DiagGroup<"c++14-extensions">;<br>
+def CXX14 : DiagGroup<"c++14-extensions", [CXX14BinaryLiteral]>;<br>
<br>
 // A warning group for warnings about using C++1z features as extensions in<br>
 // earlier C++ versions.<br>
<br>
Modified: cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td?rev=248064&r1=248063&r2=248064&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td?rev=248064&r1=248063&r2=248064&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td (original)<br>
+++ cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td Fri Sep 18 18:18:39 2015<br>
@@ -184,7 +184,7 @@ def ext_hexconstant_invalid : Extension<<br>
 def ext_binary_literal : Extension<<br>
   "binary integer literals are a GNU extension">, InGroup<GNUBinaryLiteral>;<br>
 def ext_binary_literal_cxx14 : Extension<<br>
-  "binary integer literals are a C++14 extension">, InGroup<CXX14>;<br>
+  "binary integer literals are a C++14 extension">, InGroup<CXX14BinaryLiteral>;<br>
 def warn_cxx11_compat_binary_literal : Warning<<br>
   "binary integer literals are incompatible with C++ standards before C++14">,<br>
   InGroup<CXXPre14CompatPedantic>, DefaultIgnore;<br>
<br>
Added: cfe/trunk/test/Lexer/warn_binary_literals.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/warn_binary_literals.cpp?rev=248064&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/warn_binary_literals.cpp?rev=248064&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/Lexer/warn_binary_literals.cpp (added)<br>
+++ cfe/trunk/test/Lexer/warn_binary_literals.cpp Fri Sep 18 18:18:39 2015<br>
@@ -0,0 +1,5 @@<br>
+// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s -Wc++14-binary-literal<br>
+// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s -Wc++14-extensions<br>
+<br>
+int x = 0b11;<br>
+// expected-warning@-1{{binary integer literals are a C++14 extension}}<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>