r248064 - Split off the binary literal warning into a subgroup of C++14 warnings

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 18 16:51:06 PDT 2015


Can we arrange for this warning to also be controlled by the
-Wgnu-binary-literal option, as it is outside C++ mode?

On Fri, Sep 18, 2015 at 4:18 PM, Richard Trieu via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> 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}}
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150918/e6a7ce68/attachment-0001.html>


More information about the cfe-commits mailing list