summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/ClangUtilityFunction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Expression/ClangUtilityFunction.cpp')
-rw-r--r--lldb/source/Expression/ClangUtilityFunction.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/lldb/source/Expression/ClangUtilityFunction.cpp b/lldb/source/Expression/ClangUtilityFunction.cpp
index 17ba7dba331..310cac9d571 100644
--- a/lldb/source/Expression/ClangUtilityFunction.cpp
+++ b/lldb/source/Expression/ClangUtilityFunction.cpp
@@ -17,6 +17,7 @@
#include "lldb/Core/ConstString.h"
#include "lldb/Core/Stream.h"
+#include "lldb/Expression/ClangExpressionDeclMap.h"
#include "lldb/Expression/ClangExpressionParser.h"
#include "lldb/Expression/ClangUtilityFunction.h"
#include "lldb/Host/Host.h"
@@ -93,6 +94,8 @@ ClangUtilityFunction::Install (Stream &error_stream,
//////////////////////////
// Parse the expression
//
+
+ m_expr_decl_map.reset(new ClangExpressionDeclMap(&exe_ctx));
ClangExpressionParser parser(target_triple.GetCString(), *this);
@@ -101,6 +104,9 @@ ClangUtilityFunction::Install (Stream &error_stream,
if (num_errors)
{
error_stream.Printf ("error: %d errors parsing expression\n", num_errors);
+
+ m_expr_decl_map.reset();
+
return false;
}
@@ -110,6 +116,8 @@ ClangUtilityFunction::Install (Stream &error_stream,
Error jit_error = parser.MakeJIT (m_jit_begin, m_jit_end, exe_ctx);
+ m_expr_decl_map.reset();
+
if (jit_error.Success())
{
return true;
OpenPOWER on IntegriCloud