diff options
| author | Raphael Isemann <teemperor@gmail.com> | 2020-01-07 10:37:57 +0100 |
|---|---|---|
| committer | Raphael Isemann <teemperor@gmail.com> | 2020-01-07 10:50:59 +0100 |
| commit | d364815351a887cbcd4579bc41995f8b2eb185ff (patch) | |
| tree | 1c471d6fe5f49a5ef2bd702a15992c29e1a5c14a /lldb | |
| parent | ab1bcda851d95aeec03ffc1218bf9cae261a9280 (diff) | |
| download | bcm5719-llvm-d364815351a887cbcd4579bc41995f8b2eb185ff.tar.gz bcm5719-llvm-d364815351a887cbcd4579bc41995f8b2eb185ff.zip | |
[lldb][NFC] Take a llvm::Triple in ClangASTContext constructor
This constructor is supposed to take a string representing an llvm::Triple.
We might as well take a llvm::Triple here which saves us all the string
conversions in the call sites and we make this more type safe.
Diffstat (limited to 'lldb')
7 files changed, 13 insertions, 18 deletions
diff --git a/lldb/include/lldb/Host/HostInfoBase.h b/lldb/include/lldb/Host/HostInfoBase.h index 5f0a4ab01f6..c59050cb34e 100644 --- a/lldb/include/lldb/Host/HostInfoBase.h +++ b/lldb/include/lldb/Host/HostInfoBase.h @@ -33,11 +33,11 @@ public: static void Initialize(); static void Terminate(); - /// Gets the host target triple as a const string. + /// Gets the host target triple. /// /// \return - /// A const string object containing the host target triple. - static llvm::StringRef GetTargetTriple(); + /// The host target triple. + static llvm::Triple GetTargetTriple(); enum ArchitectureKind { eArchKindDefault, // The overall default architecture that applications will diff --git a/lldb/include/lldb/Symbol/ClangASTContext.h b/lldb/include/lldb/Symbol/ClangASTContext.h index 53ecd1bb78f..9e8d301fd3f 100644 --- a/lldb/include/lldb/Symbol/ClangASTContext.h +++ b/lldb/include/lldb/Symbol/ClangASTContext.h @@ -56,7 +56,7 @@ public: static bool classof(const TypeSystem *ts) { return ts->isA(&ID); } // Constructors and Destructors - explicit ClangASTContext(llvm::StringRef triple = ""); + explicit ClangASTContext(llvm::Triple triple = llvm::Triple()); explicit ClangASTContext(ArchSpec arch); /// Constructs a ClangASTContext that uses an existing ASTContext internally. diff --git a/lldb/source/Host/common/HostInfoBase.cpp b/lldb/source/Host/common/HostInfoBase.cpp index 0b24188d339..8f263e90d90 100644 --- a/lldb/source/Host/common/HostInfoBase.cpp +++ b/lldb/source/Host/common/HostInfoBase.cpp @@ -48,7 +48,7 @@ struct HostInfoBaseFields { } llvm::once_flag m_host_triple_once; - std::string m_host_triple; + llvm::Triple m_host_triple; llvm::once_flag m_host_arch_once; ArchSpec m_host_arch_32; @@ -82,10 +82,10 @@ void HostInfoBase::Terminate() { g_fields = nullptr; } -llvm::StringRef HostInfoBase::GetTargetTriple() { +llvm::Triple HostInfoBase::GetTargetTriple() { llvm::call_once(g_fields->m_host_triple_once, []() { g_fields->m_host_triple = - HostInfo::GetArchitecture().GetTriple().getTriple(); + HostInfo::GetArchitecture().GetTriple(); }); return g_fields->m_host_triple; } diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp index 29930c303b0..73843063606 100644 --- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp +++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp @@ -146,9 +146,7 @@ AppleObjCDeclVendor::AppleObjCDeclVendor(ObjCLanguageRuntime &runtime) m_ast_ctx(runtime.GetProcess() ->GetTarget() .GetArchitecture() - .GetTriple() - .getTriple() - .c_str()), + .GetTriple()), m_type_realizer_sp(m_runtime.GetEncodingToType()) { m_external_source = new AppleObjCExternalASTSource(*this); llvm::IntrusiveRefCntPtr<clang::ExternalASTSource> external_source_owning_ptr( diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp index d92f782c72e..66f04bef6cb 100644 --- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp +++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp @@ -26,9 +26,7 @@ AppleObjCTypeEncodingParser::AppleObjCTypeEncodingParser( m_scratch_ast_ctx_up.reset(new ClangASTContext(runtime.GetProcess() ->GetTarget() .GetArchitecture() - .GetTriple() - .str() - .c_str())); + .GetTriple())); } std::string AppleObjCTypeEncodingParser::ReadStructName(StringLexer &type) { diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp index 99299c3c6c4..314aaa83d4e 100644 --- a/lldb/source/Symbol/ClangASTContext.cpp +++ b/lldb/source/Symbol/ClangASTContext.cpp @@ -499,9 +499,9 @@ static void ParseLangArgs(LangOptions &Opts, InputKind IK, const char *triple) { Opts.NoInlineDefine = !Opt; } -ClangASTContext::ClangASTContext(llvm::StringRef target_triple) { - if (!target_triple.empty()) - SetTargetTriple(target_triple); +ClangASTContext::ClangASTContext(llvm::Triple target_triple) { + if (!target_triple.str().empty()) + SetTargetTriple(target_triple.str()); // The caller didn't pass an ASTContext so create a new one for this // ClangASTContext. CreateASTContext(); diff --git a/lldb/unittests/Symbol/TestClangASTContext.cpp b/lldb/unittests/Symbol/TestClangASTContext.cpp index cea3a2912e3..547ca312283 100644 --- a/lldb/unittests/Symbol/TestClangASTContext.cpp +++ b/lldb/unittests/Symbol/TestClangASTContext.cpp @@ -26,8 +26,7 @@ public: SubsystemRAII<FileSystem, HostInfo> subsystems; void SetUp() override { - std::string triple = HostInfo::GetTargetTriple(); - m_ast.reset(new ClangASTContext(triple.c_str())); + m_ast.reset(new ClangASTContext(HostInfo::GetTargetTriple())); } void TearDown() override { m_ast.reset(); } |

