diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-11-20 22:03:38 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-11-20 22:03:38 +0000 |
commit | a25d65d1b6318407fb99a5de0a7720d8881146f3 (patch) | |
tree | c1cd754557864732dc71ac3b32546fd2db2abb69 /clang/lib/Parse/ParseExprCXX.cpp | |
parent | 09177b2b7fc0d08e55589cf8035ec9a54c4ce6c8 (diff) | |
download | bcm5719-llvm-a25d65d1b6318407fb99a5de0a7720d8881146f3.tar.gz bcm5719-llvm-a25d65d1b6318407fb99a5de0a7720d8881146f3.zip |
Implement C++ [basic.lookup.classref]p3, which states how the type
name 'T' is looked up in the expression
t.~T()
Previously, we weren't looking into the type of "t", and therefore
would fail when T actually referred to an injected-class-name. Fixes
PR5530.
llvm-svn: 89493
Diffstat (limited to 'clang/lib/Parse/ParseExprCXX.cpp')
-rw-r--r-- | clang/lib/Parse/ParseExprCXX.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp index b2ecc9e827f..145c8616eb8 100644 --- a/clang/lib/Parse/ParseExprCXX.cpp +++ b/clang/lib/Parse/ParseExprCXX.cpp @@ -1010,7 +1010,7 @@ bool Parser::ParseUnqualifiedIdOperator(CXXScopeSpec &SS, bool EnteringContext, // Parse the type-specifier-seq. DeclSpec DS; - if (ParseCXXTypeSpecifierSeq(DS)) + if (ParseCXXTypeSpecifierSeq(DS)) // FIXME: ObjectType? return true; // Parse the conversion-declarator, which is merely a sequence of @@ -1152,7 +1152,7 @@ bool Parser::ParseUnqualifiedId(CXXScopeSpec &SS, bool EnteringContext, // Note that this is a destructor name. Action::TypeTy *Ty = Actions.getTypeName(*ClassName, ClassNameLoc, - CurScope, &SS); + CurScope, &SS, false, ObjectType); if (!Ty) { if (ObjectType) Diag(ClassNameLoc, diag::err_ident_in_pseudo_dtor_not_a_type) |