summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/ValueObject.cpp
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2015-11-02 21:52:05 +0000
committerEnrico Granata <egranata@apple.com>2015-11-02 21:52:05 +0000
commit407b5c62bae52c77efaf0cfa477cc0cbfc09bd85 (patch)
treee4a6a6de0e3c940a09c74fc74137bc95ffb9051d /lldb/source/Core/ValueObject.cpp
parentb1d4a39990f0abcd323cdb5631f46101d3e4e867 (diff)
downloadbcm5719-llvm-407b5c62bae52c77efaf0cfa477cc0cbfc09bd85.tar.gz
bcm5719-llvm-407b5c62bae52c77efaf0cfa477cc0cbfc09bd85.zip
Change ValueObject::IsLogicalTrue so that it starts by asking the applicable Language plugin before using the C-style rule
llvm-svn: 251838
Diffstat (limited to 'lldb/source/Core/ValueObject.cpp')
-rw-r--r--lldb/source/Core/ValueObject.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp
index 11ccd1bcfb6..fe86f374a01 100644
--- a/lldb/source/Core/ValueObject.cpp
+++ b/lldb/source/Core/ValueObject.cpp
@@ -47,6 +47,7 @@
#include "lldb/Symbol/Type.h"
#include "lldb/Target/ExecutionContext.h"
+#include "lldb/Target/Language.h"
#include "lldb/Target/LanguageRuntime.h"
#include "lldb/Target/ObjCLanguageRuntime.h"
#include "lldb/Target/Process.h"
@@ -515,6 +516,20 @@ ValueObject::ResolveValue (Scalar &scalar)
bool
ValueObject::IsLogicalTrue (Error& error)
{
+ if (Language *language = Language::FindPlugin(GetObjectRuntimeLanguage()))
+ {
+ LazyBool is_logical_true = language->IsLogicalTrue(*this, error);
+ switch (is_logical_true)
+ {
+ case eLazyBoolYes:
+ case eLazyBoolNo:
+ return (is_logical_true == true);
+ case eLazyBoolCalculate:
+ default:
+ break;
+ }
+ }
+
Scalar scalar_value;
if (!ResolveValue (scalar_value))
OpenPOWER on IntegriCloud