]> granicus.if.org Git - clang/commitdiff
Remove my egregious hack that forced deserialization of visible
authorDouglas Gregor <dgregor@apple.com>
Tue, 6 Jul 2010 18:29:01 +0000 (18:29 +0000)
committerDouglas Gregor <dgregor@apple.com>
Tue, 6 Jul 2010 18:29:01 +0000 (18:29 +0000)
declarations when implicitly declaring the default constructor, copy
constructor, destructor, and copy-assignment operators of a
class. Argiris fixed the underlying problem in r107596.

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

lib/Sema/SemaDeclCXX.cpp

index 1d0264853cbddf08451e391ce4927d8e9bf87856..e99fed3a12c10d4073284238272b70707497ac3b 100644 (file)
@@ -4161,17 +4161,6 @@ CXXConstructorDecl *Sema::DeclareImplicitDefaultConstructor(
   assert(!ClassDecl->hasUserDeclaredConstructor() && 
          "Should not build implicit default constructor!");
   
-  // FIXME: HACK HACK HACK
-  if (Context.getExternalSource()) {
-    // This hack ensures that, when using precompiled headers, the lookup
-    // table in the DeclContext has already loaded the constructor declarations
-    // so that we can add a new one. The real fix will go into DeclContext,
-    // when I figure out what that is.
-    CanQualType T
-      = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl));
-    ClassDecl->lookup(Context.DeclarationNames.getCXXConstructorName(T));
-  }
-  
   // C++ [except.spec]p14:
   //   An implicitly declared special member function (Clause 12) shall have an 
   //   exception-specification. [...]
@@ -4647,15 +4636,6 @@ CXXMethodDecl *Sema::DeclareImplicitCopyAssignment(CXXRecordDecl *ClassDecl) {
   // operators taking an object instead of a reference are allowed.
   
   
-  // FIXME: HACK HACK HACK
-  if (Context.getExternalSource()) {
-    // This hack ensures that, when using precompiled headers, the lookup
-    // table in the DeclContext has already loaded the assignment operator
-    // declarations so that we can add a new one. The real fix will go into 
-    // DeclContext, when I figure out what that is.
-    ClassDecl->lookup(Context.DeclarationNames.getCXXOperatorName(OO_Equal));
-  }
-  
   // C++ [class.copy]p10:
   //   If the class definition does not explicitly declare a copy
   //   assignment operator, one is declared implicitly.
@@ -5088,17 +5068,6 @@ CXXConstructorDecl *Sema::DeclareImplicitCopyConstructor(
   //   If the class definition does not explicitly declare a copy
   //   constructor, one is declared implicitly.
   
-  // FIXME: HACK HACK HACK
-  if (Context.getExternalSource()) {
-    // This hack ensures that, when using precompiled headers, the lookup
-    // table in the DeclContext has already loaded the constructor declarations
-    // so that we can add a new one. The real fix will go into DeclContext,
-    // when I figure out what that is.
-    CanQualType T
-      = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl));
-    ClassDecl->lookup(Context.DeclarationNames.getCXXConstructorName(T));
-  }
-  
   // C++ [class.copy]p5:
   //   The implicitly-declared copy constructor for a class X will
   //   have the form