rdar://problem/10501020

ClangASTSource::~ClangASTSource() was calling

    ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext();

which had the side effect of deleting this very ClangASTSource instance.  Not good.
Change it to

    // We are in the process of destruction, don't create clang ast context on demand
    // by passing false to Target::GetScratchClangASTContext(create_on_demand).
    ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext(false);

The Target::GetScratchClangASTContext(bool create_on_demand=true) has a new signature.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@145537 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/ClangASTSource.cpp b/source/Expression/ClangASTSource.cpp
index db08539..ca97fc1 100644
--- a/source/Expression/ClangASTSource.cpp
+++ b/source/Expression/ClangASTSource.cpp
@@ -27,7 +27,9 @@
 {
     m_ast_importer->ForgetDestination(m_ast_context);
     
-    ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext();
+    // We are in the process of destruction, don't create clang ast context on demand
+    // by passing false to Target::GetScratchClangASTContext(create_on_demand).
+    ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext(false);
     
     if (!scratch_clang_ast_context)
         return;