summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-08-28 03:35:18 +0000
committerAnders Carlsson <andersca@mac.com>2009-08-28 03:35:18 +0000
commit5a9c5acf0f4979a8ed5dd92de9861aba39d5a0d8 (patch)
treef9853f7f5efe1725cacb12103dc3c32a6a86891f /clang/lib/Sema/SemaDeclCXX.cpp
parent59140b3b86efa205d61043f560f9f7d0254a21f0 (diff)
downloadbcm5719-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.cpp10
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);
OpenPOWER on IntegriCloud