Author: zturner Date: Wed Oct 11 16:54:34 2017 New Revision: 315536 URL: http://llvm.org/viewvc/llvm-project?rev=315536&view=rev Log: Revert "[ADT] Make Twine's copy constructor private."
This reverts commit 4e4ee1c507e2707bb3c208e1e1b6551c3015cbf5. This is failing due to some code that isn't built on MSVC so I didn't catch. Not immediately obvious how to fix this at first glance, so I'm reverting for now. Modified: cfe/trunk/include/clang/Tooling/CompilationDatabase.h cfe/trunk/lib/CodeGen/CGObjCMac.cpp cfe/trunk/lib/CodeGen/CodeGenAction.cpp cfe/trunk/lib/Driver/ToolChains/MSVC.cpp cfe/trunk/lib/Driver/ToolChains/MinGW.cpp cfe/trunk/lib/Tooling/CompilationDatabase.cpp cfe/trunk/unittests/Tooling/TestVisitor.h Modified: cfe/trunk/include/clang/Tooling/CompilationDatabase.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Tooling/CompilationDatabase.h?rev=315536&r1=315535&r2=315536&view=diff ============================================================================== --- cfe/trunk/include/clang/Tooling/CompilationDatabase.h (original) +++ cfe/trunk/include/clang/Tooling/CompilationDatabase.h Wed Oct 11 16:54:34 2017 @@ -42,10 +42,12 @@ namespace tooling { /// \brief Specifies the working directory and command of a compilation. struct CompileCommand { CompileCommand() {} - CompileCommand(const Twine &Directory, const Twine &Filename, - std::vector<std::string> CommandLine, const Twine &Output) - : Directory(Directory.str()), Filename(Filename.str()), - CommandLine(std::move(CommandLine)), Output(Output.str()) {} + CompileCommand(Twine Directory, Twine Filename, + std::vector<std::string> CommandLine, Twine Output) + : Directory(Directory.str()), + Filename(Filename.str()), + CommandLine(std::move(CommandLine)), + Output(Output.str()){} /// \brief The working directory the command was executed from. std::string Directory; @@ -176,14 +178,13 @@ public: /// \param Argv Points to the command line arguments. /// \param ErrorMsg Contains error text if the function returns null pointer. /// \param Directory The base directory used in the FixedCompilationDatabase. - static std::unique_ptr<FixedCompilationDatabase> - loadFromCommandLine(int &Argc, const char *const *Argv, std::string &ErrorMsg, - const Twine &Directory = "."); + static std::unique_ptr<FixedCompilationDatabase> loadFromCommandLine( + int &Argc, const char *const *Argv, std::string &ErrorMsg, + Twine Directory = "."); /// \brief Constructs a compilation data base from a specified directory /// and command line. - FixedCompilationDatabase(const Twine &Directory, - ArrayRef<std::string> CommandLine); + FixedCompilationDatabase(Twine Directory, ArrayRef<std::string> CommandLine); /// \brief Returns the given compile command. /// Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=315536&r1=315535&r2=315536&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original) +++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Wed Oct 11 16:54:34 2017 @@ -981,17 +981,17 @@ protected: /// EmitPropertyList - Emit the given property list. The return /// value has type PropertyListPtrTy. - llvm::Constant *EmitPropertyList(const Twine &Name, const Decl *Container, + llvm::Constant *EmitPropertyList(Twine Name, + const Decl *Container, const ObjCContainerDecl *OCD, const ObjCCommonTypesHelper &ObjCTypes, bool IsClassProperty); /// EmitProtocolMethodTypes - Generate the array of extended method type /// strings. The return value has type Int8PtrPtrTy. - llvm::Constant * - EmitProtocolMethodTypes(const Twine &Name, - ArrayRef<llvm::Constant *> MethodTypes, - const ObjCCommonTypesHelper &ObjCTypes); + llvm::Constant *EmitProtocolMethodTypes(Twine Name, + ArrayRef<llvm::Constant*> MethodTypes, + const ObjCCommonTypesHelper &ObjCTypes); /// GetProtocolRef - Return a reference to the internal protocol /// description, creating an empty one if it has not been @@ -1021,11 +1021,11 @@ public: /// \param Align - The alignment for the variable, or 0. /// \param AddToUsed - Whether the variable should be added to /// "llvm.used". - llvm::GlobalVariable *CreateMetadataVar(const Twine &Name, + llvm::GlobalVariable *CreateMetadataVar(Twine Name, ConstantStructBuilder &Init, StringRef Section, CharUnits Align, bool AddToUsed); - llvm::GlobalVariable *CreateMetadataVar(const Twine &Name, + llvm::GlobalVariable *CreateMetadataVar(Twine Name, llvm::Constant *Init, StringRef Section, CharUnits Align, bool AddToUsed); @@ -1241,7 +1241,7 @@ private: /// EmitMethodList - Emit the method list for the given /// implementation. The return value has type MethodListPtrTy. - llvm::Constant *emitMethodList(const Twine &Name, MethodListType MLT, + llvm::Constant *emitMethodList(Twine Name, MethodListType MLT, ArrayRef<const ObjCMethodDecl *> Methods); /// GetOrEmitProtocol - Get the protocol object for the given @@ -1265,7 +1265,7 @@ private: /// EmitProtocolList - Generate the list of referenced /// protocols. The return value has type ProtocolListPtrTy. - llvm::Constant *EmitProtocolList(const Twine &Name, + llvm::Constant *EmitProtocolList(Twine Name, ObjCProtocolDecl::protocol_iterator begin, ObjCProtocolDecl::protocol_iterator end); @@ -1413,7 +1413,7 @@ private: /// Emit the method list for the given implementation. The return value /// has type MethodListnfABITy. - llvm::Constant *emitMethodList(const Twine &Name, MethodListType MLT, + llvm::Constant *emitMethodList(Twine Name, MethodListType MLT, ArrayRef<const ObjCMethodDecl *> Methods); /// EmitIvarList - Emit the ivar list for the given @@ -1440,7 +1440,7 @@ private: /// EmitProtocolList - Generate the list of referenced /// protocols. The return value has type ProtocolListPtrTy. - llvm::Constant *EmitProtocolList(const Twine &Name, + llvm::Constant *EmitProtocolList(Twine Name, ObjCProtocolDecl::protocol_iterator begin, ObjCProtocolDecl::protocol_iterator end); @@ -3057,7 +3057,7 @@ CGObjCMac::EmitProtocolExtension(const O }; */ llvm::Constant * -CGObjCMac::EmitProtocolList(const Twine &Name, +CGObjCMac::EmitProtocolList(Twine name, ObjCProtocolDecl::protocol_iterator begin, ObjCProtocolDecl::protocol_iterator end) { // Just return null for empty protocol lists @@ -3090,7 +3090,7 @@ CGObjCMac::EmitProtocolList(const Twine section = "__OBJC,__cat_cls_meth,regular,no_dead_strip"; llvm::GlobalVariable *GV = - CreateMetadataVar(Name, values, section, CGM.getPointerAlign(), false); + CreateMetadataVar(name, values, section, CGM.getPointerAlign(), false); return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.ProtocolListPtrTy); } @@ -3123,9 +3123,11 @@ PushProtocolProperties(llvm::SmallPtrSet struct _objc_property[prop_count]; }; */ -llvm::Constant *CGObjCCommonMac::EmitPropertyList( - const Twine &Name, const Decl *Container, const ObjCContainerDecl *OCD, - const ObjCCommonTypesHelper &ObjCTypes, bool IsClassProperty) { +llvm::Constant *CGObjCCommonMac::EmitPropertyList(Twine Name, + const Decl *Container, + const ObjCContainerDecl *OCD, + const ObjCCommonTypesHelper &ObjCTypes, + bool IsClassProperty) { if (IsClassProperty) { // Make this entry NULL for OS X with deployment target < 10.11, for iOS // with deployment target < 9.0. @@ -3196,9 +3198,10 @@ llvm::Constant *CGObjCCommonMac::EmitPro return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.PropertyListPtrTy); } -llvm::Constant *CGObjCCommonMac::EmitProtocolMethodTypes( - const Twine &Name, ArrayRef<llvm::Constant *> MethodTypes, - const ObjCCommonTypesHelper &ObjCTypes) { +llvm::Constant * +CGObjCCommonMac::EmitProtocolMethodTypes(Twine Name, + ArrayRef<llvm::Constant*> MethodTypes, + const ObjCCommonTypesHelper &ObjCTypes) { // Return null for empty list. if (MethodTypes.empty()) return llvm::Constant::getNullValue(ObjCTypes.Int8PtrPtrTy); @@ -3759,9 +3762,8 @@ void CGObjCMac::emitMethodConstant(Const /// int count; /// struct objc_method_description list[count]; /// }; -llvm::Constant * -CGObjCMac::emitMethodList(const Twine &Name, MethodListType MLT, - ArrayRef<const ObjCMethodDecl *> methods) { +llvm::Constant *CGObjCMac::emitMethodList(Twine name, MethodListType MLT, + ArrayRef<const ObjCMethodDecl *> methods) { StringRef prefix; StringRef section; bool forProtocol = false; @@ -3826,7 +3828,7 @@ CGObjCMac::emitMethodList(const Twine &N } methodArray.finishAndAddTo(values); - llvm::GlobalVariable *GV = CreateMetadataVar(prefix + Name, values, section, + llvm::GlobalVariable *GV = CreateMetadataVar(prefix + name, values, section, CGM.getPointerAlign(), true); return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.MethodDescriptionListPtrTy); @@ -3843,7 +3845,7 @@ CGObjCMac::emitMethodList(const Twine &N } methodArray.finishAndAddTo(values); - llvm::GlobalVariable *GV = CreateMetadataVar(prefix + Name, values, section, + llvm::GlobalVariable *GV = CreateMetadataVar(prefix + name, values, section, CGM.getPointerAlign(), true); return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.MethodListPtrTy); } @@ -3866,9 +3868,11 @@ llvm::Function *CGObjCCommonMac::Generat return Method; } -llvm::GlobalVariable *CGObjCCommonMac::CreateMetadataVar( - const Twine &Name, ConstantStructBuilder &Init, StringRef Section, - CharUnits Align, bool AddToUsed) { +llvm::GlobalVariable *CGObjCCommonMac::CreateMetadataVar(Twine Name, + ConstantStructBuilder &Init, + StringRef Section, + CharUnits Align, + bool AddToUsed) { llvm::GlobalVariable *GV = Init.finishAndCreateGlobal(Name, Align, /*constant*/ false, llvm::GlobalValue::PrivateLinkage); @@ -3879,7 +3883,7 @@ llvm::GlobalVariable *CGObjCCommonMac::C return GV; } -llvm::GlobalVariable *CGObjCCommonMac::CreateMetadataVar(const Twine &Name, +llvm::GlobalVariable *CGObjCCommonMac::CreateMetadataVar(Twine Name, llvm::Constant *Init, StringRef Section, CharUnits Align, @@ -6522,9 +6526,9 @@ void CGObjCNonFragileABIMac::emitMethodC /// struct _objc_method method_list[method_count]; /// } /// -llvm::Constant *CGObjCNonFragileABIMac::emitMethodList( - const Twine &Name, MethodListType kind, - ArrayRef<const ObjCMethodDecl *> methods) { +llvm::Constant * +CGObjCNonFragileABIMac::emitMethodList(Twine name, MethodListType kind, + ArrayRef<const ObjCMethodDecl *> methods) { // Return null for empty list. if (methods.empty()) return llvm::Constant::getNullValue(ObjCTypes.MethodListnfABIPtrTy); @@ -6581,7 +6585,7 @@ llvm::Constant *CGObjCNonFragileABIMac:: } methodArray.finishAndAddTo(values); - auto *GV = values.finishAndCreateGlobal(prefix + Name, CGM.getPointerAlign(), + auto *GV = values.finishAndCreateGlobal(prefix + name, CGM.getPointerAlign(), /*constant*/ false, llvm::GlobalValue::PrivateLinkage); if (CGM.getTriple().isOSBinFormatMachO()) @@ -6868,9 +6872,10 @@ llvm::Constant *CGObjCNonFragileABIMac:: /// } /// @endcode /// -llvm::Constant *CGObjCNonFragileABIMac::EmitProtocolList( - const Twine &Name, ObjCProtocolDecl::protocol_iterator begin, - ObjCProtocolDecl::protocol_iterator end) { +llvm::Constant * +CGObjCNonFragileABIMac::EmitProtocolList(Twine Name, + ObjCProtocolDecl::protocol_iterator begin, + ObjCProtocolDecl::protocol_iterator end) { SmallVector<llvm::Constant *, 16> ProtocolRefs; // Just return null for empty protocol lists Modified: cfe/trunk/lib/CodeGen/CodeGenAction.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenAction.cpp?rev=315536&r1=315535&r2=315536&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CodeGenAction.cpp (original) +++ cfe/trunk/lib/CodeGen/CodeGenAction.cpp Wed Oct 11 16:54:34 2017 @@ -586,7 +586,7 @@ void BackendConsumer::UnsupportedDiagHan FullSourceLoc Loc = getBestLocationFromDebugLoc(D, BadDebugInfo, Filename, Line, Column); - Diags.Report(Loc, diag::err_fe_backend_unsupported) << D.getMessage(); + Diags.Report(Loc, diag::err_fe_backend_unsupported) << D.getMessage().str(); if (BadDebugInfo) // If we were not able to translate the file:line:col information Modified: cfe/trunk/lib/Driver/ToolChains/MSVC.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/MSVC.cpp?rev=315536&r1=315535&r2=315536&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/MSVC.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/MSVC.cpp Wed Oct 11 16:54:34 2017 @@ -369,7 +369,7 @@ void visualstudio::Linker::ConstructJob( SmallString<128> ImplibName(Output.getFilename()); llvm::sys::path::replace_extension(ImplibName, "lib"); - CmdArgs.push_back(Args.MakeArgString(Twine("-implib:") + ImplibName)); + CmdArgs.push_back(Args.MakeArgString(std::string("-implib:") + ImplibName)); } if (TC.getSanitizerArgs().needsAsanRt()) { Modified: cfe/trunk/lib/Driver/ToolChains/MinGW.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/MinGW.cpp?rev=315536&r1=315535&r2=315536&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/MinGW.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/MinGW.cpp Wed Oct 11 16:54:34 2017 @@ -479,7 +479,7 @@ void toolchains::MinGW::AddClangCXXStdli for (auto &CppIncludeBase : CppIncludeBases) { addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); CppIncludeBase += llvm::sys::path::get_separator(); - addSystemInclude(DriverArgs, CC1Args, Twine(CppIncludeBase) + Arch); + addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + Arch); addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); } break; Modified: cfe/trunk/lib/Tooling/CompilationDatabase.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/CompilationDatabase.cpp?rev=315536&r1=315535&r2=315536&view=diff ============================================================================== --- cfe/trunk/lib/Tooling/CompilationDatabase.cpp (original) +++ cfe/trunk/lib/Tooling/CompilationDatabase.cpp Wed Oct 11 16:54:34 2017 @@ -289,7 +289,7 @@ std::unique_ptr<FixedCompilationDatabase FixedCompilationDatabase::loadFromCommandLine(int &Argc, const char *const *Argv, std::string &ErrorMsg, - const Twine &Directory) { + Twine Directory) { ErrorMsg.clear(); if (Argc == 0) return nullptr; @@ -306,8 +306,8 @@ FixedCompilationDatabase::loadFromComman new FixedCompilationDatabase(Directory, StrippedArgs)); } -FixedCompilationDatabase::FixedCompilationDatabase( - const Twine &Directory, ArrayRef<std::string> CommandLine) { +FixedCompilationDatabase:: +FixedCompilationDatabase(Twine Directory, ArrayRef<std::string> CommandLine) { std::vector<std::string> ToolCommandLine(1, "clang-tool"); ToolCommandLine.insert(ToolCommandLine.end(), CommandLine.begin(), CommandLine.end()); Modified: cfe/trunk/unittests/Tooling/TestVisitor.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Tooling/TestVisitor.h?rev=315536&r1=315535&r2=315536&view=diff ============================================================================== --- cfe/trunk/unittests/Tooling/TestVisitor.h (original) +++ cfe/trunk/unittests/Tooling/TestVisitor.h Wed Oct 11 16:54:34 2017 @@ -128,7 +128,7 @@ public: /// \brief Expect 'Match' *not* to occur at the given 'Line' and 'Column'. /// /// Any number of matches can be disallowed. - void DisallowMatch(const Twine &Match, unsigned Line, unsigned Column) { + void DisallowMatch(Twine Match, unsigned Line, unsigned Column) { DisallowedMatches.push_back(MatchCandidate(Match, Line, Column)); } @@ -138,7 +138,7 @@ public: /// Each is expected to be matched 'Times' number of times. (This is useful in /// cases in which different AST nodes can match at the same source code /// location.) - void ExpectMatch(const Twine &Match, unsigned Line, unsigned Column, + void ExpectMatch(Twine Match, unsigned Line, unsigned Column, unsigned Times = 1) { ExpectedMatches.push_back(ExpectedMatch(Match, Line, Column, Times)); } @@ -180,10 +180,10 @@ protected: unsigned LineNumber; unsigned ColumnNumber; - MatchCandidate(const Twine &Name, unsigned LineNumber, - unsigned ColumnNumber) - : ExpectedName(Name.str()), LineNumber(LineNumber), - ColumnNumber(ColumnNumber) {} + MatchCandidate(Twine Name, unsigned LineNumber, unsigned ColumnNumber) + : ExpectedName(Name.str()), LineNumber(LineNumber), + ColumnNumber(ColumnNumber) { + } bool Matches(StringRef Name, FullSourceLoc const &Location) const { return MatchesName(Name) && MatchesLocation(Location); @@ -211,7 +211,7 @@ protected: }; struct ExpectedMatch { - ExpectedMatch(const Twine &Name, unsigned LineNumber, unsigned ColumnNumber, + ExpectedMatch(Twine Name, unsigned LineNumber, unsigned ColumnNumber, unsigned Times) : Candidate(Name, LineNumber, ColumnNumber), TimesExpected(Times), TimesSeen(0) {} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits