diff options
author | Zachary Turner <zturner@google.com> | 2017-10-11 23:33:06 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2017-10-11 23:33:06 +0000 |
commit | 337462b36512cc001891a98fb98fa5693651722f (patch) | |
tree | 4b1708ba51865a9a5611fe209082e9ace07e7a8d /clang/lib/Tooling/CompilationDatabase.cpp | |
parent | d791eaa5594053918e517439469e7747bd52d91c (diff) | |
download | llvm-337462b36512cc001891a98fb98fa5693651722f.zip llvm-337462b36512cc001891a98fb98fa5693651722f.tar.gz llvm-337462b36512cc001891a98fb98fa5693651722f.tar.bz2 |
[ADT] Make Twine's copy constructor private.
There's a lot of misuse of Twine scattered around LLVM. This
ranges in severity from benign (returning a Twine from a function
by value that is just a string literal) to pretty sketchy (storing
a Twine by value in a class). While there are some uses for
copying Twines, most of the very compelling ones are confined
to the Twine class implementation itself, and other uses are
either dubious or easily worked around.
This patch makes Twine's copy constructor private, and fixes up
all callsites.
Differential Revision: https://reviews.llvm.org/D38767
llvm-svn: 315530
Diffstat (limited to 'clang/lib/Tooling/CompilationDatabase.cpp')
-rw-r--r-- | clang/lib/Tooling/CompilationDatabase.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Tooling/CompilationDatabase.cpp b/clang/lib/Tooling/CompilationDatabase.cpp index 0e83557..121e001 100644 --- a/clang/lib/Tooling/CompilationDatabase.cpp +++ b/clang/lib/Tooling/CompilationDatabase.cpp @@ -289,7 +289,7 @@ std::unique_ptr<FixedCompilationDatabase> FixedCompilationDatabase::loadFromCommandLine(int &Argc, const char *const *Argv, std::string &ErrorMsg, - Twine Directory) { + const Twine &Directory) { ErrorMsg.clear(); if (Argc == 0) return nullptr; @@ -306,8 +306,8 @@ FixedCompilationDatabase::loadFromCommandLine(int &Argc, new FixedCompilationDatabase(Directory, StrippedArgs)); } -FixedCompilationDatabase:: -FixedCompilationDatabase(Twine Directory, ArrayRef<std::string> CommandLine) { +FixedCompilationDatabase::FixedCompilationDatabase( + const Twine &Directory, ArrayRef<std::string> CommandLine) { std::vector<std::string> ToolCommandLine(1, "clang-tool"); ToolCommandLine.insert(ToolCommandLine.end(), CommandLine.begin(), CommandLine.end()); |