[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