<rdar://problem/15235492>

Extend DummySyntheticProvider to actually use debug-info vended children as the source of information
Make Python synthetic children either be valid, or fallback to the dummy, like their C++ counterparts

This allows LLDB to actually stop bailing out upon encountering an invalid synthetic children provider front-end, and still displaying the non synthetized ivar info

llvm-svn: 192741
diff --git a/lldb/source/DataFormatters/FormatManager.cpp b/lldb/source/DataFormatters/FormatManager.cpp
index e8bc54f..0faf817 100644
--- a/lldb/source/DataFormatters/FormatManager.cpp
+++ b/lldb/source/DataFormatters/FormatManager.cpp
@@ -801,6 +801,12 @@
 #endif
 }
 
+static SyntheticChildrenFrontEnd*
+FooStructSynth (CXXSyntheticChildren*, lldb::ValueObjectSP)
+{
+    return NULL;
+}
+
 void
 FormatManager::LoadSystemFormatters()
 {
@@ -834,6 +840,8 @@
     sys_category_sp->GetSummaryNavigator()->Add(ConstString("unsigned char *"), string_format);
     sys_category_sp->GetRegexSummaryNavigator()->Add(any_size_char_arr, string_array_format);
     
+    AddCXXSynthetic(sys_category_sp, FooStructSynth, "Foo synth", ConstString("Foo"), ScriptedSyntheticChildren::Flags(), false);
+    
     lldb::TypeSummaryImplSP ostype_summary(new StringSummaryFormat(TypeSummaryImpl::Flags().SetCascades(false)
                                                                    .SetSkipPointers(true)
                                                                    .SetSkipReferences(true)