summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2016-03-22 21:05:51 +0000
committerSean Callanan <scallanan@apple.com>2016-03-22 21:05:51 +0000
commit00294b34a3c99f3540214a148c0bd15e68f9d7fd (patch)
treea6892887ee99bed68154d36a82a975d01ec566a1 /lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h
parente32368fc6edd4f1c284a9ba0cbdd6b8931dbe925 (diff)
downloadbcm5719-llvm-00294b34a3c99f3540214a148c0bd15e68f9d7fd.tar.gz
bcm5719-llvm-00294b34a3c99f3540214a148c0bd15e68f9d7fd.zip
Backend support for top-level Clang epxressions
This patch adds a new ExecutionPolicy, eExecutionPolicyTopLevel, which tells the expression parser that the expression should be JITted as top level code but nothing (except static initializers) should be run. I have modified the Clang expression parser to recognize this execution policy. On top of the existing patches that support storing IR and maintaining a map of arbitrary Decls, this is mainly just patching up a few places in the expression parser. I intend to submit a patch for review that exposes this functionality through the "expression" command and through the SB API. That patch also includes a testcase for all of this. <rdar://problem/22864976> llvm-svn: 264095
Diffstat (limited to 'lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h')
-rw-r--r--lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h
index bb620def691..bcd30ec4af2 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h
@@ -67,11 +67,14 @@ public:
/// the ASTs to after transformation.
//------------------------------------------------------------------
virtual clang::ASTConsumer *
- ASTTransformer (clang::ASTConsumer *passthrough) = 0;
-
+ ASTTransformer(clang::ASTConsumer *passthrough) = 0;
-protected:
+ virtual void
+ CommitPersistentDecls()
+ {
+ }
+protected:
};
} // namespace lldb_private
OpenPOWER on IntegriCloud