================
@@ -2202,6 +2202,45 @@ void ValueObject::GetExpressionPath(Stream &s,
}
}
+// Return the alternate value (synthetic if the input object is non-synthetic
+// and otherwise) this is permitted by the expression path options.
+static ValueObjectSP GetAlternateValue(
+ ValueObject &valobj,
+ ValueObject::GetValueForExpressionPathOptions::SyntheticChildrenTraversal
+ synth_traversal) {
+ using SynthTraversal =
+
ValueObject::GetValueForExpressionPathOptions::SyntheticChildrenTraversal;
+
+ if (valobj.IsSynthetic()) {
+ if (synth_traversal == SynthTraversal::FromSynthetic ||
+ synth_traversal == SynthTraversal::Both)
+ return valobj.GetNonSyntheticValue();
+ } else {
+ if (synth_traversal == SynthTraversal::ToSynthetic ||
+ synth_traversal == SynthTraversal::Both)
+ return valobj.GetSyntheticValue();
+ }
+ return nullptr;
+}
+
+// Dereference the provided object or the alternate value, ir permitted by the
----------------
kuilpd wrote:
```suggestion
// Dereference the provided object or the alternate value, if permitted by the
```
https://github.com/llvm/llvm-project/pull/137311
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits