Re: [PATCH] D20923: [Sema] Fix a crash on invalid where invalid defaulted function is called

2016-06-20 Thread Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL273193: [Sema] Only define function as move assignment when 
needed (authored by epilk).

Changed prior to commit:
  http://reviews.llvm.org/D20923?vs=59409=61296#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D20923

Files:
  cfe/trunk/lib/Sema/SemaExpr.cpp
  cfe/trunk/test/SemaCXX/cxx0x-defaulted-functions.cpp

Index: cfe/trunk/lib/Sema/SemaExpr.cpp
===
--- cfe/trunk/lib/Sema/SemaExpr.cpp
+++ cfe/trunk/lib/Sema/SemaExpr.cpp
@@ -13012,7 +13012,7 @@
   if (MethodDecl->isDefaulted() && !MethodDecl->isDeleted()) {
 if (MethodDecl->isCopyAssignmentOperator())
   DefineImplicitCopyAssignment(Loc, MethodDecl);
-else
+else if (MethodDecl->isMoveAssignmentOperator())
   DefineImplicitMoveAssignment(Loc, MethodDecl);
   }
 } else if (isa(MethodDecl) &&
Index: cfe/trunk/test/SemaCXX/cxx0x-defaulted-functions.cpp
===
--- cfe/trunk/test/SemaCXX/cxx0x-defaulted-functions.cpp
+++ cfe/trunk/test/SemaCXX/cxx0x-defaulted-functions.cpp
@@ -196,3 +196,15 @@
   A a;
   B b; // expected-note {{here}}
 }
+
+namespace PR27941 {
+struct ExplicitBool {
+  ExplicitBool =(bool) = default; // expected-error{{only special 
member functions may be defaulted}}
+  int member;
+};
+
+int fn() {
+  ExplicitBool t;
+  t = true;
+}
+}


Index: cfe/trunk/lib/Sema/SemaExpr.cpp
===
--- cfe/trunk/lib/Sema/SemaExpr.cpp
+++ cfe/trunk/lib/Sema/SemaExpr.cpp
@@ -13012,7 +13012,7 @@
   if (MethodDecl->isDefaulted() && !MethodDecl->isDeleted()) {
 if (MethodDecl->isCopyAssignmentOperator())
   DefineImplicitCopyAssignment(Loc, MethodDecl);
-else
+else if (MethodDecl->isMoveAssignmentOperator())
   DefineImplicitMoveAssignment(Loc, MethodDecl);
   }
 } else if (isa(MethodDecl) &&
Index: cfe/trunk/test/SemaCXX/cxx0x-defaulted-functions.cpp
===
--- cfe/trunk/test/SemaCXX/cxx0x-defaulted-functions.cpp
+++ cfe/trunk/test/SemaCXX/cxx0x-defaulted-functions.cpp
@@ -196,3 +196,15 @@
   A a;
   B b; // expected-note {{here}}
 }
+
+namespace PR27941 {
+struct ExplicitBool {
+  ExplicitBool =(bool) = default; // expected-error{{only special member functions may be defaulted}}
+  int member;
+};
+
+int fn() {
+  ExplicitBool t;
+  t = true;
+}
+}
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D20923: [Sema] Fix a crash on invalid where invalid defaulted function is called

2016-06-20 Thread Manman Ren via cfe-commits
manmanren accepted this revision.
manmanren added a comment.
This revision is now accepted and ready to land.

LGTM.

Manman


http://reviews.llvm.org/D20923



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D20923: [Sema] Fix a crash on invalid where invalid defaulted function is called

2016-06-16 Thread Erik Pilkington via cfe-commits
erik.pilkington added a comment.

Ping!


http://reviews.llvm.org/D20923



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits