Add warning group -Wdeprecated-register for C++11 warning on 'register' being

deprecated.

llvm-svn: 184068
This commit is contained in:
Richard Smith 2013-06-17 00:01:58 +00:00
parent b735b4d6db
commit 37ba45a3c5
3 changed files with 12 additions and 6 deletions

View File

@ -57,11 +57,14 @@ def DeleteNonVirtualDtor : DiagGroup<"delete-non-virtual-dtor">;
def AbstractFinalClass : DiagGroup<"abstract-final-class">;
def DeprecatedDeclarations : DiagGroup<"deprecated-declarations">;
def DeprecatedWritableStr : DiagGroup<"deprecated-writable-strings">;
def Deprecated : DiagGroup<"deprecated", [ DeprecatedDeclarations] >,
DiagCategory<"Deprecations">;
def DeprecatedImplementations :DiagGroup<"deprecated-implementations">;
def DeprecatedRegister : DiagGroup<"deprecated-register">;
def DeprecatedWritableStr : DiagGroup<"deprecated-writable-strings">;
// FIXME: Why are DeprecatedImplementations and DeprecatedWritableStr
// not in this group?
def Deprecated : DiagGroup<"deprecated", [DeprecatedDeclarations,
DeprecatedRegister]>,
DiagCategory<"Deprecations">;
def : DiagGroup<"disabled-optimization">;
def : DiagGroup<"discard-qual">;

View File

@ -310,7 +310,8 @@ def err_expected_class_name_not_template :
def err_unspecified_vla_size_with_static : Error<
"'static' may not be used with an unspecified variable length array size">;
def warn_deprecated_register : Warning<
"'register' storage class specifier is deprecated">, InGroup<Deprecated>;
"'register' storage class specifier is deprecated">,
InGroup<DeprecatedRegister>;
def err_expected_case_before_expression: Error<
"expected 'case' keyword before expression">;

View File

@ -2,6 +2,8 @@
// RUN: %clang_cc1 -std=c++11 %s -Wdeprecated -verify
// RUN: %clang_cc1 -std=c++1y %s -Wdeprecated -verify
// RUN: %clang_cc1 -std=c++1y %s -Wdeprecated -verify -Wno-deprecated-register -DNO_DEPRECATED_FLAGS
#include "Inputs/register.h"
void f() throw();
@ -15,7 +17,7 @@ void h() throw(...);
void stuff() {
register int n;
#if __cplusplus >= 201103L
#if __cplusplus >= 201103L && !defined(NO_DEPRECATED_FLAGS)
// expected-warning@-2 {{'register' storage class specifier is deprecated}}
#endif