]> granicus.if.org Git - clang/commitdiff
Removed deadcode related to addition of constructor
authorFariborz Jahanian <fjahanian@apple.com>
Wed, 17 Jun 2009 22:44:31 +0000 (22:44 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Wed, 17 Jun 2009 22:44:31 +0000 (22:44 +0000)
decls to a class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73650 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/DeclCXX.cpp
lib/Sema/SemaDeclCXX.cpp

index 8430da2be6b133edd904683ef2e85013779a895c..f299ed1023ef9c9272afb7bc47ccac974ab5dccf 100644 (file)
@@ -128,36 +128,33 @@ bool CXXRecordDecl::hasConstCopyAssignment(ASTContext &Context) const {
 void
 CXXRecordDecl::addedConstructor(ASTContext &Context, 
                                 CXXConstructorDecl *ConDecl) {
-  if (!ConDecl->isImplicit()) {
-    // Note that we have a user-declared constructor.
-    UserDeclaredConstructor = true;
-
-    // C++ [dcl.init.aggr]p1: 
-    //   An aggregate is an array or a class (clause 9) with no
-    //   user-declared constructors (12.1) [...].
-    Aggregate = false;
-
-    // C++ [class]p4:
-    //   A POD-struct is an aggregate class [...]
-    PlainOldData = false;
-
-    // C++ [class.ctor]p5:
-    //   A constructor is trivial if it is an implicitly-declared default
-    //   constructor.
-    HasTrivialConstructor = false;
+  assert(!ConDecl->isImplicit() && "addedConstructor - not for implicit decl");
+  // Note that we have a user-declared constructor.
+  UserDeclaredConstructor = true;
+
+  // C++ [dcl.init.aggr]p1: 
+  //   An aggregate is an array or a class (clause 9) with no
+  //   user-declared constructors (12.1) [...].
+  Aggregate = false;
+
+  // C++ [class]p4:
+  //   A POD-struct is an aggregate class [...]
+  PlainOldData = false;
+
+  // C++ [class.ctor]p5:
+  //   A constructor is trivial if it is an implicitly-declared default
+  //   constructor.
+  HasTrivialConstructor = false;
     
-    // Note when we have a user-declared copy constructor, which will
-    // suppress the implicit declaration of a copy constructor.
-    if (ConDecl->isCopyConstructor(Context))
-      UserDeclaredCopyConstructor = true;
-  }
+  // Note when we have a user-declared copy constructor, which will
+  // suppress the implicit declaration of a copy constructor.
+  if (ConDecl->isCopyConstructor(Context))
+    UserDeclaredCopyConstructor = true;
 }
 
 void CXXRecordDecl::addedAssignmentOperator(ASTContext &Context,
                                             CXXMethodDecl *OpDecl) {
   // We're interested specifically in copy assignment operators.
-  // Unlike addedConstructor, this method is not called for implicit
-  // declarations.
   const FunctionProtoType *FnType = OpDecl->getType()->getAsFunctionProtoType();
   assert(FnType && "Overloaded operator has no proto function type.");
   assert(FnType->getNumArgs() == 1 && !FnType->isVariadic());
index 7a4789411c82f67d1ff24c1bb8d69b4e6d721170..dcf11c54acf5e53c2af5d14d2d92f03dd908a9f6 100644 (file)
@@ -1034,9 +1034,6 @@ void Sema::AddImplicitlyDeclaredMembersToClass(CXXRecordDecl *ClassDecl) {
     DefaultCon->setAccess(AS_public);
     DefaultCon->setImplicit();
     ClassDecl->addDecl(Context, DefaultCon);
-
-    // Notify the class that we've added a constructor.
-    ClassDecl->addedConstructor(Context, DefaultCon);
   }
 
   if (!ClassDecl->hasUserDeclaredCopyConstructor()) {
@@ -1113,8 +1110,6 @@ void Sema::AddImplicitlyDeclaredMembersToClass(CXXRecordDecl *ClassDecl) {
                                                  /*IdentifierInfo=*/0,
                                                  ArgType, VarDecl::None, 0);
     CopyConstructor->setParams(Context, &FromParam, 1);
-
-    ClassDecl->addedConstructor(Context, CopyConstructor);
     ClassDecl->addDecl(Context, CopyConstructor);
   }