Make IsSyntheticChildrenGenerated() virtual so that dynamic and synthetic values can refer back to their parents

llvm-svn: 274901
diff --git a/lldb/include/lldb/Core/ValueObject.h b/lldb/include/lldb/Core/ValueObject.h
index b3f6ff8..bef158f 100644
--- a/lldb/include/lldb/Core/ValueObject.h
+++ b/lldb/include/lldb/Core/ValueObject.h
@@ -793,10 +793,10 @@
         return false;
     }
     
-    bool
+    virtual bool
     IsSyntheticChildrenGenerated ();
     
-    void
+    virtual void
     SetSyntheticChildrenGenerated (bool b);
     
     virtual SymbolContextScope *
diff --git a/lldb/include/lldb/Core/ValueObjectDynamicValue.h b/lldb/include/lldb/Core/ValueObjectDynamicValue.h
index 80f37f1..8a045c3 100644
--- a/lldb/include/lldb/Core/ValueObjectDynamicValue.h
+++ b/lldb/include/lldb/Core/ValueObjectDynamicValue.h
@@ -117,6 +117,12 @@
     
     void
     SetPreferredDisplayLanguage (lldb::LanguageType);
+        
+    bool
+    IsSyntheticChildrenGenerated () override;
+    
+    void
+    SetSyntheticChildrenGenerated (bool b) override;
     
     bool
     GetDeclaration(Declaration &decl) override;
diff --git a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
index 3a80682..38d9f7b 100644
--- a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
+++ b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
@@ -148,6 +148,12 @@
     SetPreferredDisplayLanguage (lldb::LanguageType);
     
     bool
+    IsSyntheticChildrenGenerated () override;
+    
+    void
+    SetSyntheticChildrenGenerated (bool b) override;
+    
+    bool
     GetDeclaration(Declaration &decl) override;
 
     uint64_t
diff --git a/lldb/source/Core/ValueObjectDynamicValue.cpp b/lldb/source/Core/ValueObjectDynamicValue.cpp
index 0ac86a6..65deba0 100644
--- a/lldb/source/Core/ValueObjectDynamicValue.cpp
+++ b/lldb/source/Core/ValueObjectDynamicValue.cpp
@@ -419,6 +419,22 @@
 }
 
 bool
+ValueObjectDynamicValue::IsSyntheticChildrenGenerated ()
+{
+    if (m_parent)
+        return m_parent->IsSyntheticChildrenGenerated();
+    return false;
+}
+
+void
+ValueObjectDynamicValue::SetSyntheticChildrenGenerated (bool b)
+{
+    if (m_parent)
+        m_parent->SetSyntheticChildrenGenerated(b);
+    this->ValueObject::SetSyntheticChildrenGenerated(b);
+}
+
+bool
 ValueObjectDynamicValue::GetDeclaration (Declaration &decl)
 {
     if (m_parent)
diff --git a/lldb/source/Core/ValueObjectSyntheticFilter.cpp b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
index 53e38ec..f2f2337 100644
--- a/lldb/source/Core/ValueObjectSyntheticFilter.cpp
+++ b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
@@ -417,6 +417,22 @@
 }
 
 bool
+ValueObjectSynthetic::IsSyntheticChildrenGenerated ()
+{
+    if (m_parent)
+        return m_parent->IsSyntheticChildrenGenerated();
+    return false;
+}
+
+void
+ValueObjectSynthetic::SetSyntheticChildrenGenerated (bool b)
+{
+    if (m_parent)
+        m_parent->SetSyntheticChildrenGenerated(b);
+    this->ValueObject::SetSyntheticChildrenGenerated(b);
+}
+
+bool
 ValueObjectSynthetic::GetDeclaration (Declaration &decl)
 {
     if (m_parent)