diff options
author | Aidan Dodds <aidan@codeplay.com> | 2016-03-10 17:23:33 +0000 |
---|---|---|
committer | Aidan Dodds <aidan@codeplay.com> | 2016-03-10 17:23:33 +0000 |
commit | 8433fdbedfad67239b7658089b3974b3e516d487 (patch) | |
tree | 9f4af6f8b6707dda852a2edd681a196cbc581ac0 /lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp | |
parent | 92be8e6d95e2df96d0f5c08c36880b22bb355a38 (diff) | |
download | bcm5719-llvm-8433fdbedfad67239b7658089b3974b3e516d487.tar.gz bcm5719-llvm-8433fdbedfad67239b7658089b3974b3e516d487.zip |
[Renderscript] Explicitly set the language to evaluate allocations
Currently it is not specified, and since allocations are usually
requested once we hit a renderscript breakpoint, the language will be
inferred being as renderscript by the ExpressionParser.
Actually allocations attempt to invoke functions part of the RS runtime,
written in C/C++, so evaluating the calls in RenderScript could be
misleading.
In particular, in MIPS, the ABI between C/C++ (mips o32) and
renderscript (arm) might introduce subtle bugs when evaluating such
expressions.
This change explicitly sets the language used to evaluate the allocations
as C++.
Committed on behalf of: Dean De Leo <dean@codeplay.com>
llvm-svn: 263129
Diffstat (limited to 'lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp')
-rw-r--r-- | lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp index 6dd6582ff64..bad04d81433 100644 --- a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp +++ b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp @@ -1457,8 +1457,10 @@ RenderScriptRuntime::EvalRSExpression(const char *expression, StackFrame *frame_ log->Printf("%s(%s)", __FUNCTION__, expression); ValueObjectSP expr_result; + EvaluateExpressionOptions options; + options.SetLanguage(lldb::eLanguageTypeC_plus_plus); // Perform the actual expression evaluation - GetProcess()->GetTarget().EvaluateExpression(expression, frame_ptr, expr_result); + GetProcess()->GetTarget().EvaluateExpression(expression, frame_ptr, expr_result, options); if (!expr_result) { |