r315536 - Revert "[ADT] Make Twine's copy constructor private."
Zachary Turner via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 11 16:54:34 PDT 2017
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) {}
More information about the cfe-commits
mailing list