================
@@ -393,6 +538,83 @@ Interpreter::Visit(const UnaryOpNode &node) {
node.GetLocation());
}
+llvm::Expected<lldb::ValueObjectSP>
+Interpreter::EvaluateScalarOp(BinaryOpKind kind, lldb::ValueObjectSP lhs,
+ lldb::ValueObjectSP rhs, CompilerType
result_type,
+ uint32_t location) {
+ Scalar l, r;
+ bool l_resolved = lhs->ResolveValue(l);
+ bool r_resolved = rhs->ResolveValue(r);
+
+ if (!l_resolved || !r_resolved)
+ return llvm::make_error<DILDiagnosticError>(m_expr, "invalid scalar value",
+ location);
+
+ auto value_object = [this, result_type](Scalar scalar) {
+ return ValueObject::CreateValueObjectFromScalar(m_target, scalar,
+ result_type, "result");
+ };
----------------
kuilpd wrote:
Technically not, but once `switch (kind)` has 10+ cases, it starts to look
better.
https://github.com/llvm/llvm-project/pull/177208
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits