[Lldb-commits] [lldb] d364815 - [lldb][NFC] Take a llvm::Triple in ClangASTContext constructor
Raphael Isemann via lldb-commits
lldb-commits at lists.llvm.org
Tue Jan 7 01:51:35 PST 2020
Author: Raphael Isemann
Date: 2020-01-07T10:50:59+01:00
New Revision: d364815351a887cbcd4579bc41995f8b2eb185ff
URL: https://github.com/llvm/llvm-project/commit/d364815351a887cbcd4579bc41995f8b2eb185ff
DIFF: https://github.com/llvm/llvm-project/commit/d364815351a887cbcd4579bc41995f8b2eb185ff.diff
LOG: [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.
Added:
Modified:
lldb/include/lldb/Host/HostInfoBase.h
lldb/include/lldb/Symbol/ClangASTContext.h
lldb/source/Host/common/HostInfoBase.cpp
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp
lldb/source/Symbol/ClangASTContext.cpp
lldb/unittests/Symbol/TestClangASTContext.cpp
Removed:
################################################################################
diff --git a/lldb/include/lldb/Host/HostInfoBase.h b/lldb/include/lldb/Host/HostInfoBase.h
index 5f0a4ab01f69..c59050cb34e9 100644
--- a/lldb/include/lldb/Host/HostInfoBase.h
+++ b/lldb/include/lldb/Host/HostInfoBase.h
@@ -33,11 +33,11 @@ class HostInfoBase {
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 53ecd1bb78fc..9e8d301fd3f7 100644
--- a/lldb/include/lldb/Symbol/ClangASTContext.h
+++ b/lldb/include/lldb/Symbol/ClangASTContext.h
@@ -56,7 +56,7 @@ class ClangASTContext : public TypeSystem {
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 0b24188d339a..8f263e90d90f 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 29930c303b07..73843063606c 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 d92f782c72e9..66f04bef6cbd 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 99299c3c6c42..314aaa83d4e6 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 cea3a2912e30..547ca312283f 100644
--- a/lldb/unittests/Symbol/TestClangASTContext.cpp
+++ b/lldb/unittests/Symbol/TestClangASTContext.cpp
@@ -26,8 +26,7 @@ class TestClangASTContext : public testing::Test {
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(); }
More information about the lldb-commits
mailing list