diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-07-06 18:29:01 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-07-06 18:29:01 +0000 | 
| commit | 6191f6c60749dee9f97deb1cb013b0594c9c2134 (patch) | |
| tree | dd587eed1c029a39381868d73155994275e41336 /clang/lib/Sema/SemaDeclCXX.cpp | |
| parent | 14b58dac8dfc6c1f19e24755fa8753132fbc3917 (diff) | |
| download | bcm5719-llvm-6191f6c60749dee9f97deb1cb013b0594c9c2134.tar.gz bcm5719-llvm-6191f6c60749dee9f97deb1cb013b0594c9c2134.zip | |
Remove my egregious hack that forced deserialization of visible
declarations when implicitly declaring the default constructor, copy
constructor, destructor, and copy-assignment operators of a
class. Argiris fixed the underlying problem in r107596.
llvm-svn: 107681
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 31 | 
1 files changed, 0 insertions, 31 deletions
| diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 1d0264853cb..e99fed3a12c 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -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 | 

