[cfe-commits] r80346 - in /cfe/trunk: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaDeclCXX.cpp
Anders Carlsson
andersca at mac.com
Thu Aug 27 22:49:21 PDT 2009
Author: andersca
Date: Fri Aug 28 00:49:21 2009
New Revision: 80346
URL: http://llvm.org/viewvc/llvm-project?rev=80346&view=rev
Log:
Create UnresolvedUsingDecls.
Modified:
cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
cfe/trunk/lib/Sema/SemaDeclCXX.cpp
Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=80346&r1=80345&r2=80346&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Fri Aug 28 00:49:21 2009
@@ -98,8 +98,6 @@
"using declaration requires a qualified name">;
def err_using_typename_non_type : Error<
"'typename' keyword used on a non-type">;
-def err_using_dependent_unsupported : Error<
- "dependent using declaration not supported yet">;
def err_using_decl_nested_name_specifier_is_not_a_base_class : Error<
"using declaration refers into %0, which is not a base class of %1">;
def err_using_decl_can_not_refer_to_class_member : Error<
Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=80346&r1=80345&r2=80346&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Fri Aug 28 00:49:21 2009
@@ -2127,13 +2127,9 @@
assert(!SS.isInvalid() && "Invalid CXXScopeSpec.");
assert(IdentLoc.isValid() && "Invalid TargetName location.");
- // FIXME: Implement this properly!
- if (isUnknownSpecialization(SS)) {
- Diag(IdentLoc, diag::err_using_dependent_unsupported);
- delete AttrList;
- return 0;
- }
-
+ // FIXME: We ignore attributes for now.
+ delete AttrList;
+
if (SS.isEmpty()) {
Diag(IdentLoc, diag::err_using_requires_qualname);
return 0;
@@ -2142,6 +2138,12 @@
NestedNameSpecifier *NNS =
static_cast<NestedNameSpecifier *>(SS.getScopeRep());
+ if (isUnknownSpecialization(SS)) {
+ return UnresolvedUsingDecl::Create(Context, CurContext, UsingLoc,
+ SS.getRange(), NNS,
+ IdentLoc, Name, IsTypeName);
+ }
+
DeclContext *LookupContext = 0;
if (const CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(CurContext)) {
@@ -2202,9 +2204,6 @@
return 0;
}
- // FIXME: We ignore attributes for now.
- delete AttrList;
-
return UsingDecl::Create(Context, CurContext, IdentLoc, SS.getRange(),
ND->getLocation(), UsingLoc, ND, NNS, IsTypeName);
}
More information about the cfe-commits
mailing list