diff options
author | Anders Carlsson <andersca@mac.com> | 2009-08-28 03:35:18 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-08-28 03:35:18 +0000 |
commit | 5a9c5acf0f4979a8ed5dd92de9861aba39d5a0d8 (patch) | |
tree | f9853f7f5efe1725cacb12103dc3c32a6a86891f /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 59140b3b86efa205d61043f560f9f7d0254a21f0 (diff) | |
download | bcm5719-llvm-5a9c5acf0f4979a8ed5dd92de9861aba39d5a0d8.tar.gz bcm5719-llvm-5a9c5acf0f4979a8ed5dd92de9861aba39d5a0d8.zip |
More work on using declarations.
llvm-svn: 80333
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index b8384ee780e..f10d7315e91 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -2151,7 +2151,7 @@ Sema::DeclPtrTy Sema::ActOnUsingDeclaration(Scope *S, // C++0x N2914 [namespace.udecl]p8: // A using-declaration for a class member shall be a member-declaration. if (NNS->getKind() == NestedNameSpecifier::TypeSpec) { - Diag(IdentLoc, diag::err_using_decl_refers_to_class_member) + Diag(IdentLoc, diag::err_using_decl_can_not_refer_to_class_member) << SS.getRange(); return DeclPtrTy(); } @@ -2181,6 +2181,14 @@ Sema::DeclPtrTy Sema::ActOnUsingDeclaration(Scope *S, return DeclPtrTy(); } + // C++0x N2914 [namespace.udecl]p6: + // A using-declaration shall not name a namespace. + if (isa<NamespaceDecl>(ND)) { + Diag(IdentLoc, diag::err_using_decl_can_not_refer_to_namespace) + << SS.getRange(); + return DeclPtrTy(); + } + UsingAlias = UsingDecl::Create(Context, CurContext, IdentLoc, SS.getRange(), ND->getLocation(), UsingLoc, ND, NNS, IsTypeName); |