diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-09-27 23:16:44 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-09-27 23:16:44 +0000 | 
| commit | 1be93f5143afb06d5e380a6fadb41fabc40794ab (patch) | |
| tree | 07e2c6cf3cbc42d9d4aea3633d20bcd36b30d43a /clang/lib/Sema | |
| parent | 185051cb8e69e5cb17a82c9c0591afecf0bcadf8 (diff) | |
| download | bcm5719-llvm-1be93f5143afb06d5e380a6fadb41fabc40794ab.tar.gz bcm5719-llvm-1be93f5143afb06d5e380a6fadb41fabc40794ab.zip  | |
Centralize the management of CXXRecordDecl::DefinitionData's Aggregate
and PlainOldData bits in CXXRecordDecl itself. Another milepost on the
road toward <rdar://problem/8459981>.
llvm-svn: 114921
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 18 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 8 | 
2 files changed, 0 insertions, 26 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 68cdc556e8d..5ac6f618d30 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -3931,10 +3931,6 @@ void Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD,          }        } -      // C++ [class]p4: A POD-struct is an aggregate class that has [...] no -      // user-defined destructor. -      Record->setPOD(false); -        // C++ [class.dtor]p3: A destructor is trivial if it is an implicitly-        // declared destructor.        // FIXME: C++0x: don't do this for "= default" destructors @@ -6194,8 +6190,6 @@ FieldDecl *Sema::CheckFieldDecl(DeclarationName Name, QualType T,    if (!InvalidDecl && getLangOptions().CPlusPlus) {      CXXRecordDecl* CXXRecord = cast<CXXRecordDecl>(Record); -    if (!T->isPODType()) -      CXXRecord->setPOD(false);      if (!ZeroWidth)        CXXRecord->setEmpty(false);      if (T->isReferenceType()) @@ -6235,18 +6229,6 @@ FieldDecl *Sema::CheckFieldDecl(DeclarationName Name, QualType T,      Diag(Loc, diag::warn_attribute_weak_on_field);    NewFD->setAccess(AS); - -  // C++ [dcl.init.aggr]p1: -  //   An aggregate is an array or a class (clause 9) with [...] no -  //   private or protected non-static data members (clause 11). -  // A POD must be an aggregate. -  if (getLangOptions().CPlusPlus && -      (AS == AS_private || AS == AS_protected)) { -    CXXRecordDecl *CXXRecord = cast<CXXRecordDecl>(Record); -    CXXRecord->setAggregate(false); -    CXXRecord->setPOD(false); -  } -    return NewFD;  } diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 473247139e6..8ecf047a670 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -527,14 +527,6 @@ void Sema::SetClassDeclAttributesFromBase(CXXRecordDecl *Class,    if (BaseClass->isPolymorphic())      Class->setPolymorphic(true); -  // C++ [dcl.init.aggr]p1: -  //   An aggregate is [...] a class with [...] no base classes [...]. -  Class->setAggregate(false); - -  // C++ [class]p4: -  //   A POD-struct is an aggregate class... -  Class->setPOD(false); -    if (BaseIsVirtual) {      // C++ [class.ctor]p5:      //   A constructor is trivial if its class has no virtual base classes.  | 

