Skip to content

Commit

Permalink
Implement caching of copy assignment operator lookup.
Browse files Browse the repository at this point in the history
I believe, upon, careful review, that this code causes us to incorrectly
handle exception specifications of copy assignment operators in C++03
mode. However, we currently do not seem to properly implement the subtle
distinction between copying of members and bases made by implicit copy
constructors and assignment operators in C++03 - namely that they are
limited in their overload selection - in all cases. As such, I feel that
committing this code is correct pending a careful review of our
implementation of these semantics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132841 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
Sean Hunt committed Jun 10, 2011
1 parent ac73ea8 commit 53e669f
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 195 deletions.
9 changes: 6 additions & 3 deletions include/clang/Sema/Sema.h
Expand Up @@ -1669,9 +1669,12 @@ class Sema {

DeclContextLookupResult LookupConstructors(CXXRecordDecl *Class);
CXXConstructorDecl *LookupDefaultConstructor(CXXRecordDecl *Class);
CXXConstructorDecl *LookupCopyConstructor(CXXRecordDecl *Class,
unsigned Quals,
bool *ConstParam = 0);
CXXConstructorDecl *LookupCopyingConstructor(CXXRecordDecl *Class,
unsigned Quals,
bool *ConstParam = 0);
CXXMethodDecl *LookupCopyingAssignment(CXXRecordDecl *Class, unsigned Quals,
bool RValueThis, unsigned ThisQuals,
bool *ConstParam = 0);
CXXDestructorDecl *LookupDestructor(CXXRecordDecl *Class);

void ArgumentDependentLookup(DeclarationName Name, bool Operator,
Expand Down

0 comments on commit 53e669f

Please sign in to comment.