From 91c7bbde4b6d8b916a81c66465951eda3684746c Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 20 Oct 2011 03:28:47 +0000 Subject: Add -Wc++98-compat warning for enumerations in nested name specifiers. llvm-svn: 142568 --- clang/lib/Sema/SemaCXXScopeSpec.cpp | 3 +++ clang/lib/Sema/TreeTransform.h | 3 +++ 2 files changed, 6 insertions(+) (limited to 'clang/lib/Sema') diff --git a/clang/lib/Sema/SemaCXXScopeSpec.cpp b/clang/lib/Sema/SemaCXXScopeSpec.cpp index a9b6536e7dc..dfd59bfe4fd 100644 --- a/clang/lib/Sema/SemaCXXScopeSpec.cpp +++ b/clang/lib/Sema/SemaCXXScopeSpec.cpp @@ -596,6 +596,9 @@ bool Sema::BuildCXXNestedNameSpecifier(Scope *S, llvm_unreachable("Unhandled TypeDecl node in nested-name-specifier"); } + if (T->isEnumeralType()) + Diag(IdentifierLoc, diag::warn_cxx98_compat_enum_nested_name_spec); + SS.Extend(Context, SourceLocation(), TLB.getTypeLocInContext(Context, T), CCLoc); return false; diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 64315ea15d0..03a1d78aa01 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -2629,6 +2629,9 @@ TreeTransform::TransformNestedNameSpecifierLoc( TL.getType()->isEnumeralType())) { assert(!TL.getType().hasLocalQualifiers() && "Can't get cv-qualifiers here"); + if (TL.getType()->isEnumeralType()) + SemaRef.Diag(TL.getBeginLoc(), + diag::warn_cxx98_compat_enum_nested_name_spec); SS.Extend(SemaRef.Context, /*FIXME:*/SourceLocation(), TL, Q.getLocalEndLoc()); break; -- cgit v1.2.3