Track changes from clang r212388

llvm-svn: 212391
diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp
index 07accbf..19835a3 100644
--- a/lldb/source/Symbol/ClangASTContext.cpp
+++ b/lldb/source/Symbol/ClangASTContext.cpp
@@ -499,17 +499,14 @@
     return m_diagnostic_consumer_ap.get();
 }
 
-TargetOptions *
-ClangASTContext::getTargetOptions()
-{
+std::shared_ptr<TargetOptions> &ClangASTContext::getTargetOptions() {
     if (m_target_options_rp.get() == nullptr && !m_target_triple.empty())
     {
-        m_target_options_rp.reset ();
-        m_target_options_rp = new TargetOptions();
+        m_target_options_rp = std::make_shared<TargetOptions>();
         if (m_target_options_rp.get() != nullptr)
             m_target_options_rp->Triple = m_target_triple;
     }
-    return m_target_options_rp.get();
+    return m_target_options_rp;
 }