Author: ovyalov Date: Sat May 14 14:07:13 2016 New Revision: 269575 URL: http://llvm.org/viewvc/llvm-project?rev=269575&view=rev Log: Revert r269546 "Added support to the ASTImporter for C++ constructor initializers." as it breaks TestDataFormatterSynthVal.DataFormatterSynthValueTestCase.test_with_run_command_dwarf test - http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/14699
Removed: cfe/trunk/test/ASTMerge/Inputs/init-ctors-classes.cpp cfe/trunk/test/ASTMerge/init-ctors.cpp Modified: cfe/trunk/include/clang/AST/ASTImporter.h cfe/trunk/lib/AST/ASTImporter.cpp Modified: cfe/trunk/include/clang/AST/ASTImporter.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/ASTImporter.h?rev=269575&r1=269574&r2=269575&view=diff ============================================================================== --- cfe/trunk/include/clang/AST/ASTImporter.h (original) +++ cfe/trunk/include/clang/AST/ASTImporter.h Sat May 14 14:07:13 2016 @@ -23,7 +23,6 @@ namespace clang { class ASTContext; - class CXXCtorInitializer; class Decl; class DeclContext; class DiagnosticsEngine; @@ -205,14 +204,6 @@ namespace clang { /// \returns the equivalent file ID in the source manager of the "to" /// context. FileID Import(FileID); - - /// \brief Import the given C++ constructor initializer from the "from" - /// context into the "to" context. - /// - /// \returns the equivalent initializer in the "to" context. - CXXCtorInitializer *Import(CXXCtorInitializer *FromInit); - - /// \brief Import the definition of the given declaration, including all of /// the declarations it contains. Modified: cfe/trunk/lib/AST/ASTImporter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=269575&r1=269574&r2=269575&view=diff ============================================================================== --- cfe/trunk/lib/AST/ASTImporter.cpp (original) +++ cfe/trunk/lib/AST/ASTImporter.cpp Sat May 14 14:07:13 2016 @@ -3029,22 +3029,6 @@ Decl *ASTNodeImporter::VisitFunctionDecl D->isInlineSpecified(), D->isImplicit(), D->isConstexpr()); - if (unsigned NumInitializers = FromConstructor->getNumCtorInitializers()) { - SmallVector<CXXCtorInitializer *, 4> CtorInitializers; - for (CXXCtorInitializer *I : FromConstructor->inits()) { - CXXCtorInitializer *ToI = - cast_or_null<CXXCtorInitializer>(Importer.Import(I)); - if (!ToI && I) - return nullptr; - CtorInitializers.push_back(ToI); - } - CXXCtorInitializer **Memory = - new (Importer.getToContext()) CXXCtorInitializer *[NumInitializers]; - std::copy(CtorInitializers.begin(), CtorInitializers.end(), Memory); - CXXConstructorDecl *ToCtor = llvm::cast<CXXConstructorDecl>(ToFunction); - ToCtor->setCtorInitializers(Memory); - ToCtor->setNumCtorInitializers(NumInitializers); - } } else if (isa<CXXDestructorDecl>(D)) { ToFunction = CXXDestructorDecl::Create(Importer.getToContext(), cast<CXXRecordDecl>(DC), @@ -6376,72 +6360,6 @@ FileID ASTImporter::Import(FileID FromID return ToID; } -CXXCtorInitializer *ASTImporter::Import(CXXCtorInitializer *From) { - Expr *ToExpr = Import(From->getInit()); - if (!ToExpr && From->getInit()) - return nullptr; - - if (From->isBaseInitializer()) { - TypeSourceInfo *ToTInfo = Import(From->getTypeSourceInfo()); - if (!ToTInfo && From->getTypeSourceInfo()) - return nullptr; - - return new (ToContext) CXXCtorInitializer( - ToContext, ToTInfo, From->isBaseVirtual(), Import(From->getLParenLoc()), - ToExpr, Import(From->getRParenLoc()), - From->isPackExpansion() ? Import(From->getEllipsisLoc()) - : SourceLocation()); - } else if (From->isMemberInitializer()) { - FieldDecl *ToField = - llvm::cast_or_null<FieldDecl>(Import(From->getMember())); - if (!ToField && From->getMember()) - return nullptr; - - return new (ToContext) CXXCtorInitializer( - ToContext, ToField, Import(From->getMemberLocation()), - Import(From->getLParenLoc()), ToExpr, Import(From->getRParenLoc())); - } else if (From->isIndirectMemberInitializer()) { - IndirectFieldDecl *ToIField = llvm::cast_or_null<IndirectFieldDecl>( - Import(From->getIndirectMember())); - if (!ToIField && From->getIndirectMember()) - return nullptr; - - return new (ToContext) CXXCtorInitializer( - ToContext, ToIField, Import(From->getMemberLocation()), - Import(From->getLParenLoc()), ToExpr, Import(From->getRParenLoc())); - } else if (From->isDelegatingInitializer()) { - TypeSourceInfo *ToTInfo = Import(From->getTypeSourceInfo()); - if (!ToTInfo && From->getTypeSourceInfo()) - return nullptr; - - return new (ToContext) - CXXCtorInitializer(ToContext, ToTInfo, Import(From->getLParenLoc()), - ToExpr, Import(From->getRParenLoc())); - } else if (unsigned NumArrayIndices = From->getNumArrayIndices()) { - FieldDecl *ToField = - llvm::cast_or_null<FieldDecl>(Import(From->getMember())); - if (!ToField && From->getMember()) - return nullptr; - - SmallVector<VarDecl *, 4> ToAIs(NumArrayIndices); - - for (unsigned AII = 0; AII < NumArrayIndices; ++AII) { - VarDecl *ToArrayIndex = - dyn_cast_or_null<VarDecl>(Import(From->getArrayIndex(AII))); - if (!ToArrayIndex && From->getArrayIndex(AII)) - return nullptr; - } - - return CXXCtorInitializer::Create( - ToContext, ToField, Import(From->getMemberLocation()), - Import(From->getLParenLoc()), ToExpr, Import(From->getRParenLoc()), - ToAIs.data(), NumArrayIndices); - } else { - return nullptr; - } -} - - void ASTImporter::ImportDefinition(Decl *From) { Decl *To = Import(From); if (!To) Removed: cfe/trunk/test/ASTMerge/Inputs/init-ctors-classes.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ASTMerge/Inputs/init-ctors-classes.cpp?rev=269574&view=auto ============================================================================== --- cfe/trunk/test/ASTMerge/Inputs/init-ctors-classes.cpp (original) +++ cfe/trunk/test/ASTMerge/Inputs/init-ctors-classes.cpp (removed) @@ -1,17 +0,0 @@ -class A_base -{ -public: - int x; - A_base(int _x) : x(_x) { - } -}; - -class A : public A_base -{ -public: - int y; - struct { int z; }; - int array[2]; - A(int _x) : A_base(_x), y(0), z(1), array{{2},{3}} { - } -}; Removed: cfe/trunk/test/ASTMerge/init-ctors.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ASTMerge/init-ctors.cpp?rev=269574&view=auto ============================================================================== --- cfe/trunk/test/ASTMerge/init-ctors.cpp (original) +++ cfe/trunk/test/ASTMerge/init-ctors.cpp (removed) @@ -1,10 +0,0 @@ -// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++1z -emit-pch -o %t.1.ast %S/Inputs/init-ctors-classes.cpp -// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++1z -ast-merge %t.1.ast -fsyntax-only -verify %s -// expected-no-diagnostics - -class B { - int method_1() { - A a(0); - return a.x; - } -}; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits