aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sema/SemaDecl.cpp')
-rw-r--r--lib/Sema/SemaDecl.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index d3e0cdc12b..e987cdaf7e 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -1508,18 +1508,15 @@ Sema::CXXSpecialMember Sema::getSpecialMember(const CXXMethodDecl *MD) {
if (Ctor->isCopyConstructor())
return Sema::CXXCopyConstructor;
- if (Ctor->isDefaultConstructor())
- return Sema::CXXDefaultConstructor;
+ return Sema::CXXConstructor;
}
if (isa<CXXDestructorDecl>(MD))
return Sema::CXXDestructor;
- if (MD->isCopyAssignmentOperator())
- return Sema::CXXCopyAssignment;
-
- llvm_unreachable("getSpecialMember on non-special member");
- return Sema::CXXInvalid;
+ assert(MD->isCopyAssignmentOperator() &&
+ "Must have copy assignment operator");
+ return Sema::CXXCopyAssignment;
}
/// canRedefineFunction - checks if a function can be redefined. Currently,
@@ -7680,7 +7677,7 @@ bool Sema::CheckNontrivialField(FieldDecl *FD) {
if (!RDecl->hasTrivialCopyConstructor())
member = CXXCopyConstructor;
else if (!RDecl->hasTrivialDefaultConstructor())
- member = CXXDefaultConstructor;
+ member = CXXConstructor;
else if (!RDecl->hasTrivialCopyAssignment())
member = CXXCopyAssignment;
else if (!RDecl->hasTrivialDestructor())
@@ -7709,7 +7706,7 @@ void Sema::DiagnoseNontrivial(const RecordType* T, CXXSpecialMember member) {
case CXXInvalid:
break;
- case CXXDefaultConstructor:
+ case CXXConstructor:
if (RD->hasUserDeclaredConstructor()) {
typedef CXXRecordDecl::ctor_iterator ctor_iter;
for (ctor_iter ci = RD->ctor_begin(), ce = RD->ctor_end(); ci != ce;++ci){
@@ -7783,7 +7780,7 @@ void Sema::DiagnoseNontrivial(const RecordType* T, CXXSpecialMember member) {
bool (CXXRecordDecl::*hasTrivial)() const;
switch (member) {
- case CXXDefaultConstructor:
+ case CXXConstructor:
hasTrivial = &CXXRecordDecl::hasTrivialDefaultConstructor; break;
case CXXCopyConstructor:
hasTrivial = &CXXRecordDecl::hasTrivialCopyConstructor; break;