> On Oct 30, 2015, at 5:02 PM, Jim Ingham via lldb-commits 
> <lldb-commits@lists.llvm.org> wrote:
> 
> bool
> +ValueObject::IsLogicalTrue (Error& error)
> +{
> +    Scalar scalar_value;
> +    
> +    if (!ResolveValue (scalar_value))
> +    {
> +        error.SetErrorString("failed to get a scalar result");
> +        return false;
> +    }
> +    
> +    bool ret;
> +    if (scalar_value.ULongLong(1) == 0)
> +        ret = false;
> +    else
> +        ret = true;
> +    error.Clear();
> +    return ret;
> +}
> +

Should we be hardcoding the C notion of false == 0 and true == 1?
Could we instead not do something like

bool
ValueObject::IsLogicalTrue()
{
 Language *language = Language::FindPlugin(GetObjectRuntimeLanguage())
if (language)
  return language->IsLogicalTrue(*this);
else
 // we could fall back to your algorithm in that case since we don’t have a 
language plugin for C?
}

Thanks,
- Enrico
📩 egranata@.com ☎️ 27683

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to