summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorRichard Trieu <rtrieu@google.com>2016-09-27 23:44:07 +0000
committerRichard Trieu <rtrieu@google.com>2016-09-27 23:44:07 +0000
commit3d1235a97d805e00222f12dc11dfac83b9164551 (patch)
tree91de6dcdcfd0edb40495c1e8ba203cb8f25996a7 /clang/lib/Sema/SemaDeclCXX.cpp
parent08780529b3d6deadbf1e1a1a19ea9689241eb4c1 (diff)
downloadbcm5719-llvm-3d1235a97d805e00222f12dc11dfac83b9164551.tar.gz
bcm5719-llvm-3d1235a97d805e00222f12dc11dfac83b9164551.zip
Revert r282547 and add test to show correct behavior.
llvm-svn: 282555
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 91c12d8f5c1..eb8c3d2cc83 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -13850,6 +13850,12 @@ void Sema::SetDeclDefaulted(Decl *Dcl, SourceLocation DefaultLoc) {
CXXMethodDecl *MD = dyn_cast_or_null<CXXMethodDecl>(Dcl);
if (MD) {
+ if (MD->getParent()->isDependentType()) {
+ MD->setDefaulted();
+ MD->setExplicitlyDefaulted();
+ return;
+ }
+
CXXSpecialMember Member = getSpecialMember(MD);
if (Member == CXXInvalid) {
if (!MD->isInvalidDecl())
@@ -13860,8 +13866,6 @@ void Sema::SetDeclDefaulted(Decl *Dcl, SourceLocation DefaultLoc) {
MD->setDefaulted();
MD->setExplicitlyDefaulted();
- if (MD->getParent()->isDependentType()) return;
-
// If this definition appears within the record, do the checking when
// the record is complete.
const FunctionDecl *Primary = MD;
OpenPOWER on IntegriCloud