Browse Source

Move forced declarations of implicit members earlier just in case it makes a difference.

pull/86/head
triton 12 years ago
parent
commit
2d23070305
  1. 6
      src/CppParser/Parser.cpp
  2. 6
      src/Parser/Parser.cpp

6
src/CppParser/Parser.cpp

@ -575,6 +575,9 @@ Class* Parser::WalkRecordCXX(clang::CXXRecordDecl* Record) @@ -575,6 +575,9 @@ Class* Parser::WalkRecordCXX(clang::CXXRecordDecl* Record)
HandlePreprocessedEntities(RC, headRange, MacroLocation::ClassHead);
HandlePreprocessedEntities(RC, bodyRange, MacroLocation::ClassBody);
auto &Sema = C->getSema();
Sema.ForceDeclarationOfImplicitMembers(Record);
RC->IsPOD = Record->isPOD();
RC->IsUnion = Record->isUnion();
RC->IsAbstract = Record->isAbstract();
@ -584,9 +587,6 @@ Class* Parser::WalkRecordCXX(clang::CXXRecordDecl* Record) @@ -584,9 +587,6 @@ Class* Parser::WalkRecordCXX(clang::CXXRecordDecl* Record)
RC->HasNonTrivialDefaultConstructor = Record->hasNonTrivialDefaultConstructor();
RC->HasNonTrivialCopyConstructor = Record->hasNonTrivialCopyConstructor();
auto &Sema = C->getSema();
Sema.ForceDeclarationOfImplicitMembers(Record);
bool hasLayout = !Record->isDependentType() && !Record->isInvalidDecl();
// Get the record layout information.

6
src/Parser/Parser.cpp

@ -575,6 +575,9 @@ CppSharp::AST::Class^ Parser::WalkRecordCXX(clang::CXXRecordDecl* Record) @@ -575,6 +575,9 @@ CppSharp::AST::Class^ Parser::WalkRecordCXX(clang::CXXRecordDecl* Record)
HandlePreprocessedEntities(RC, headRange, CppSharp::AST::MacroLocation::ClassHead);
HandlePreprocessedEntities(RC, bodyRange, CppSharp::AST::MacroLocation::ClassBody);
auto &Sema = C->getSema();
Sema.ForceDeclarationOfImplicitMembers(Record);
RC->IsPOD = Record->isPOD();
RC->IsUnion = Record->isUnion();
RC->IsAbstract = Record->isAbstract();
@ -584,9 +587,6 @@ CppSharp::AST::Class^ Parser::WalkRecordCXX(clang::CXXRecordDecl* Record) @@ -584,9 +587,6 @@ CppSharp::AST::Class^ Parser::WalkRecordCXX(clang::CXXRecordDecl* Record)
RC->HasNonTrivialDefaultConstructor = Record->hasNonTrivialDefaultConstructor();
RC->HasNonTrivialCopyConstructor = Record->hasNonTrivialCopyConstructor();
auto &Sema = C->getSema();
Sema.ForceDeclarationOfImplicitMembers(Record);
bool hasLayout = !Record->isDependentType() && !Record->isInvalidDecl();
// Get the record layout information.

Loading…
Cancel
Save