]> granicus.if.org Git - llvm/commitdiff
Fix some C++ value / reference semantics issues.
authorZachary Turner <zturner@google.com>
Mon, 9 Oct 2017 18:50:29 +0000 (18:50 +0000)
committerZachary Turner <zturner@google.com>
Mon, 9 Oct 2017 18:50:29 +0000 (18:50 +0000)
Some functions were taking Twine's not by const&, these are all
fixed to take by const&.  We also had a case where some functions
were overloaded to accept by const& and &&.  Now there is only
one version which accepts by value and move's the value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315229 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-rc/ResourceFileWriter.cpp
tools/llvm-rc/ResourceFileWriter.h
tools/llvm-rc/ResourceScriptParser.cpp
tools/llvm-rc/ResourceScriptParser.h

index 8b7cd92c0532539f0835ba37a08dddb1d11a7981..3d72e16bf6e2f31fb0e5b530bd4ff581437a31be 100644 (file)
@@ -380,7 +380,7 @@ void ResourceFileWriter::padStream(uint64_t Length) {
     writeInt<uint8_t>(0);
 }
 
-Error ResourceFileWriter::handleError(Error &&Err, const RCResource *Res) {
+Error ResourceFileWriter::handleError(Error Err, const RCResource *Res) {
   if (Err)
     return joinErrors(createError("Error in " + Res->getResourceTypeName() +
                                   " statement (ID " + Twine(Res->ResName) +
index b44271607112ff83b54bbdb8ef6c7652254ace72..8d193d6a9488bc3808138f17ee657f7276eec560 100644 (file)
@@ -88,7 +88,7 @@ public:
   } StringTableData;
 
 private:
-  Error handleError(Error &&Err, const RCResource *Res);
+  Error handleError(Error Err, const RCResource *Res);
 
   Error
   writeResource(const RCResource *Res,
index 47f8745837ed051e993f3032db250275887b1c17..4acae313558163a07f52c3b086c7da64ae9a59cb 100644 (file)
@@ -28,7 +28,7 @@
 namespace llvm {
 namespace rc {
 
-RCParser::ParserError::ParserError(const Twine Expected, const LocIter CurLoc,
+RCParser::ParserError::ParserError(const Twine &Expected, const LocIter CurLoc,
                                    const LocIter End)
     : ErrorLoc(CurLoc), FileEnd(End) {
   CurMessage = "Error parsing file: expected " + Expected.str() + ", got " +
@@ -37,10 +37,7 @@ RCParser::ParserError::ParserError(const Twine Expected, const LocIter CurLoc,
 
 char RCParser::ParserError::ID = 0;
 
-RCParser::RCParser(const std::vector<RCToken> &TokenList)
-    : Tokens(TokenList), CurLoc(Tokens.begin()), End(Tokens.end()) {}
-
-RCParser::RCParser(std::vector<RCToken> &&TokenList)
+RCParser::RCParser(std::vector<RCToken> TokenList)
     : Tokens(std::move(TokenList)), CurLoc(Tokens.begin()), End(Tokens.end()) {}
 
 bool RCParser::isEof() const { return CurLoc == End; }
@@ -706,7 +703,7 @@ RCParser::ParseOptionType RCParser::parseStyleStmt() {
   return llvm::make_unique<StyleStmt>(*Arg);
 }
 
-Error RCParser::getExpectedError(const Twine Message, bool IsAlreadyRead) {
+Error RCParser::getExpectedError(const Twine &Message, bool IsAlreadyRead) {
   return make_error<ParserError>(
       Message, IsAlreadyRead ? std::prev(CurLoc) : CurLoc, End);
 }
index f2afe6d7c322645df4602639dbcd3be937b6042c..1a124d4ee2e55d7be4b8f39957759e13dec50405 100644 (file)
@@ -36,7 +36,7 @@ public:
   // Class describing a single failure of parser.
   class ParserError : public ErrorInfo<ParserError> {
   public:
-    ParserError(Twine Expected, const LocIter CurLoc, const LocIter End);
+    ParserError(const Twine &Expected, const LocIter CurLoc, const LocIter End);
 
     void log(raw_ostream &OS) const override { OS << CurMessage; }
     std::error_code convertToErrorCode() const override {
@@ -51,8 +51,7 @@ public:
     LocIter ErrorLoc, FileEnd;
   };
 
-  RCParser(const std::vector<RCToken> &TokenList);
-  RCParser(std::vector<RCToken> &&TokenList);
+  RCParser(std::vector<RCToken> TokenList);
 
   // Reads and returns a single resource definition, or error message if any
   // occurred.
@@ -172,7 +171,7 @@ private:
   // the token that couldn't be parsed. If the flag is on, this complains about
   // the correctly read token that makes no sense (that is, the current parser
   // state is beyond the erroneous token.)
-  Error getExpectedError(const Twine Message, bool IsAlreadyRead = false);
+  Error getExpectedError(const Twine &Message, bool IsAlreadyRead = false);
 
   std::vector<RCToken> Tokens;
   LocIter CurLoc;