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@-1{{binary integer literals are a C++14 extension}} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits