[Frontend] Move, don't copy the predefines buffer into PP. NFC.
authorSam McCall <sam.mccall@gmail.com>
Sat, 7 May 2022 23:03:35 +0000 (01:03 +0200)
committerSam McCall <sam.mccall@gmail.com>
Sat, 7 May 2022 23:04:46 +0000 (01:04 +0200)
It's not trivially small, >10kb.

clang/include/clang/Lex/Preprocessor.h
clang/lib/Frontend/InitPreprocessor.cpp

index 3c74b48..f0070b3 100644 (file)
@@ -1280,13 +1280,10 @@ public:
   StringRef getLastMacroWithSpelling(SourceLocation Loc,
                                      ArrayRef<TokenValue> Tokens) const;
 
-  const std::string &getPredefines() const { return Predefines; }
-
   /// Set the predefines for this Preprocessor.
   ///
   /// These predefines are automatically injected when parsing the main file.
-  void setPredefines(const char *P) { Predefines = P; }
-  void setPredefines(StringRef P) { Predefines = std::string(P); }
+  void setPredefines(std::string P) { Predefines = std::move(P); }
 
   /// Return information about the specified preprocessor
   /// identifier token.
index 847d366..3921f79 100644 (file)
@@ -1388,5 +1388,5 @@ void clang::InitializePreprocessor(
                              InitOpts.PrecompiledPreambleBytes.second);
 
   // Copy PredefinedBuffer into the Preprocessor.
-  PP.setPredefines(Predefines.str());
+  PP.setPredefines(std::move(PredefineBuffer));
 }