From 16bc906be3024f9e3ba3149e26d9d506ae26e2fe Mon Sep 17 00:00:00 2001 From: Yaron Keren Date: Fri, 3 Jul 2015 05:31:54 +0000 Subject: [PATCH] Revert r241319, investigating. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@241321 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/ASTMatchers/ASTMatchers.h | 2 +- include/clang/ASTMatchers/ASTMatchersInternal.h | 3 ++- include/clang/ASTMatchers/Dynamic/VariantValue.h | 6 +++--- include/clang/Frontend/CompilerInstance.h | 15 ++++++++------- lib/ASTMatchers/Dynamic/Parser.cpp | 2 +- lib/ASTMatchers/Dynamic/VariantValue.cpp | 4 ++-- lib/Frontend/CompilerInstance.cpp | 6 +++--- 7 files changed, 20 insertions(+), 18 deletions(-) diff --git a/include/clang/ASTMatchers/ASTMatchers.h b/include/clang/ASTMatchers/ASTMatchers.h index 281d6370e5..e7a97a7ff7 100644 --- a/include/clang/ASTMatchers/ASTMatchers.h +++ b/include/clang/ASTMatchers/ASTMatchers.h @@ -112,7 +112,7 @@ private: /// /// FIXME: Do we want to support this now that we have bind()? template -internal::Matcher id(StringRef ID, +internal::Matcher id(const std::string &ID, const internal::BindableMatcher &InnerMatcher) { return InnerMatcher.bind(ID); } diff --git a/include/clang/ASTMatchers/ASTMatchersInternal.h b/include/clang/ASTMatchers/ASTMatchersInternal.h index b494647d79..cbaa4ba27c 100644 --- a/include/clang/ASTMatchers/ASTMatchersInternal.h +++ b/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -140,7 +140,8 @@ public: }; /// \brief Add a binding from an id to a node. - void setBinding(StringRef Id, const ast_type_traits::DynTypedNode &DynNode) { + void setBinding(const std::string &Id, + const ast_type_traits::DynTypedNode &DynNode) { if (Bindings.empty()) Bindings.emplace_back(); for (BoundNodesMap &Binding : Bindings) diff --git a/include/clang/ASTMatchers/Dynamic/VariantValue.h b/include/clang/ASTMatchers/Dynamic/VariantValue.h index c391b24a33..78aa9dc82a 100644 --- a/include/clang/ASTMatchers/Dynamic/VariantValue.h +++ b/include/clang/ASTMatchers/Dynamic/VariantValue.h @@ -242,7 +242,7 @@ struct VariantMatcher::TypedMatcherOps final : VariantMatcher::MatcherOps { /// /// Supported types: /// - \c unsigned -/// - \c llvm::StringRef +/// - \c std::string /// - \c VariantMatcher (\c DynTypedMatcher / \c Matcher) class VariantValue { public: @@ -254,7 +254,7 @@ public: /// \brief Specific constructors for each supported type. VariantValue(unsigned Unsigned); - VariantValue(StringRef String); + VariantValue(const std::string &String); VariantValue(const VariantMatcher &Matchers); /// \brief Returns true iff this is not an empty value. @@ -269,7 +269,7 @@ public: /// \brief String value functions. bool isString() const; const std::string &getString() const; - void setString(StringRef String); + void setString(const std::string &String); /// \brief Matcher value functions. bool isMatcher() const; diff --git a/include/clang/Frontend/CompilerInstance.h b/include/clang/Frontend/CompilerInstance.h index 084d876a2a..9cd806c99b 100644 --- a/include/clang/Frontend/CompilerInstance.h +++ b/include/clang/Frontend/CompilerInstance.h @@ -157,10 +157,9 @@ class CompilerInstance : public ModuleLoader { std::string TempFilename; std::unique_ptr OS; - OutputFile(std::string filename, std::string tempFilename, + OutputFile(const std::string &filename, const std::string &tempFilename, std::unique_ptr OS) - : Filename(std::move(filename)), TempFilename(std::move(tempFilename)), - OS(std::move(OS)) {} + : Filename(filename), TempFilename(tempFilename), OS(std::move(OS)) {} OutputFile(OutputFile &&O) : Filename(std::move(O.Filename)), TempFilename(std::move(O.TempFilename)), OS(std::move(O.OS)) {} @@ -615,7 +614,7 @@ public: /// /// \return - The new object on success, or null on failure. static IntrusiveRefCntPtr createPCHExternalASTSource( - StringRef Path, StringRef Sysroot, bool DisablePCHValidation, + StringRef Path, const std::string &Sysroot, bool DisablePCHValidation, bool AllowPCHWithCompilerErrors, Preprocessor &PP, ASTContext &Context, const PCHContainerOperations &PCHContainerOps, void *DeserializationListener, bool OwnDeserializationListener, @@ -628,9 +627,11 @@ public: /// Create a code completion consumer to print code completion results, at /// \p Filename, \p Line, and \p Column, to the given output stream \p OS. - static CodeCompleteConsumer *createCodeCompletionConsumer( - Preprocessor &PP, StringRef Filename, unsigned Line, unsigned Column, - const CodeCompleteOptions &Opts, raw_ostream &OS); + static CodeCompleteConsumer * + createCodeCompletionConsumer(Preprocessor &PP, const std::string &Filename, + unsigned Line, unsigned Column, + const CodeCompleteOptions &Opts, + raw_ostream &OS); /// \brief Create the Sema object to be used for parsing. void createSema(TranslationUnitKind TUKind, diff --git a/lib/ASTMatchers/Dynamic/Parser.cpp b/lib/ASTMatchers/Dynamic/Parser.cpp index 96a78cd9f8..9930c530c0 100644 --- a/lib/ASTMatchers/Dynamic/Parser.cpp +++ b/lib/ASTMatchers/Dynamic/Parser.cpp @@ -216,7 +216,7 @@ private: if (Code[Length] == Marker) { Result->Kind = TokenInfo::TK_Literal; Result->Text = Code.substr(0, Length + 1); - Result->Value = Code.substr(1, Length - 1); + Result->Value = Code.substr(1, Length - 1).str(); Code = Code.drop_front(Length + 1); return; } diff --git a/lib/ASTMatchers/Dynamic/VariantValue.cpp b/lib/ASTMatchers/Dynamic/VariantValue.cpp index 9d8be47005..a88b707012 100644 --- a/lib/ASTMatchers/Dynamic/VariantValue.cpp +++ b/lib/ASTMatchers/Dynamic/VariantValue.cpp @@ -249,7 +249,7 @@ VariantValue::VariantValue(unsigned Unsigned) : Type(VT_Nothing) { setUnsigned(Unsigned); } -VariantValue::VariantValue(StringRef String) : Type(VT_Nothing) { +VariantValue::VariantValue(const std::string &String) : Type(VT_Nothing) { setString(String); } @@ -319,7 +319,7 @@ const std::string &VariantValue::getString() const { return *Value.String; } -void VariantValue::setString(StringRef NewValue) { +void VariantValue::setString(const std::string &NewValue) { reset(); Type = VT_String; Value.String = new std::string(NewValue); diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp index f42198df4f..6b0fed6761 100644 --- a/lib/Frontend/CompilerInstance.cpp +++ b/lib/Frontend/CompilerInstance.cpp @@ -405,7 +405,7 @@ void CompilerInstance::createPCHExternalASTSource( } IntrusiveRefCntPtr CompilerInstance::createPCHExternalASTSource( - StringRef Path, StringRef Sysroot, bool DisablePCHValidation, + StringRef Path, const std::string &Sysroot, bool DisablePCHValidation, bool AllowPCHWithCompilerErrors, Preprocessor &PP, ASTContext &Context, const PCHContainerOperations &PCHContainerOps, void *DeserializationListener, bool OwnDeserializationListener, @@ -413,7 +413,7 @@ IntrusiveRefCntPtr CompilerInstance::createPCHExternalASTSource( HeaderSearchOptions &HSOpts = PP.getHeaderSearchInfo().getHeaderSearchOpts(); IntrusiveRefCntPtr Reader(new ASTReader( - PP, Context, PCHContainerOps, Sysroot.empty() ? "" : Sysroot.data(), + PP, Context, PCHContainerOps, Sysroot.empty() ? "" : Sysroot.c_str(), DisablePCHValidation, AllowPCHWithCompilerErrors, /*AllowConfigurationMismatch*/ false, HSOpts.ModulesValidateSystemHeaders, UseGlobalModuleIndex)); @@ -502,7 +502,7 @@ void CompilerInstance::createFrontendTimer() { CodeCompleteConsumer * CompilerInstance::createCodeCompletionConsumer(Preprocessor &PP, - StringRef Filename, + const std::string &Filename, unsigned Line, unsigned Column, const CodeCompleteOptions &Opts, -- 2.40.0