Modifications to type handling logic.  We no longer
perform recursive type lookups, because these are not
required for full type fidelity.  We also make the
SelectorTable last for the full lifetime of the Clang
compiler; this was the source of many bugs.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@119835 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/ClangExpressionParser.cpp b/source/Expression/ClangExpressionParser.cpp
index ad0807a..ffc2c9d 100644
--- a/source/Expression/ClangExpressionParser.cpp
+++ b/source/Expression/ClangExpressionParser.cpp
@@ -254,14 +254,14 @@
     
     // 6. Most of this we get from the CompilerInstance, but we 
     // also want to give the context an ExternalASTSource.
-    SelectorTable selector_table;
+    m_selector_table.reset(new SelectorTable());
     m_builtin_context.reset(new Builtin::Context(m_compiler->getTarget()));
     
     std::auto_ptr<clang::ASTContext> ast_context(new ASTContext(m_compiler->getLangOpts(),
                                                                 m_compiler->getSourceManager(),
                                                                 m_compiler->getTarget(),
                                                                 m_compiler->getPreprocessor().getIdentifierTable(),
-                                                                selector_table,
+                                                                *m_selector_table.get(),
                                                                 *m_builtin_context.get(),
                                                                 0));