Add a way for source languages to "mark" ValueObjects with language-specific flags
In this way, when a language needs to tell itself things that are not bound to a type but to a value (imagine a base-class relation, this is not about the type, but about the ValueObject), it can do so in a clean and general fashion

The interpretation of the values of the flags is, of course, up to the language that owns the value (the value object's runtime language, that is)

llvm-svn: 252503
diff --git a/lldb/source/Symbol/GoASTContext.cpp b/lldb/source/Symbol/GoASTContext.cpp
index 46bb7d3..4ba51f7 100644
--- a/lldb/source/Symbol/GoASTContext.cpp
+++ b/lldb/source/Symbol/GoASTContext.cpp
@@ -1134,7 +1134,7 @@
                                           bool omit_empty_base_classes, bool ignore_array_bounds, std::string &child_name,
                                           uint32_t &child_byte_size, int32_t &child_byte_offset,
                                           uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset,
-                                          bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj)
+                                          bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj, uint64_t &language_flags)
 {
     child_name.clear();
     child_byte_size = 0;
@@ -1143,6 +1143,7 @@
     child_bitfield_bit_offset = 0;
     child_is_base_class = false;
     child_is_deref_of_parent = false;
+    language_flags = 0;
 
     if (!type || !GetCompleteType(type))
         return CompilerType();
@@ -1167,7 +1168,7 @@
             return pointee.GetChildCompilerTypeAtIndex(exe_ctx, idx, transparent_pointers, omit_empty_base_classes,
                                                     ignore_array_bounds, child_name, child_byte_size, child_byte_offset,
                                                     child_bitfield_bit_size, child_bitfield_bit_offset,
-                                                    child_is_base_class, tmp_child_is_deref_of_parent, valobj);
+                                                       child_is_base_class, tmp_child_is_deref_of_parent, valobj, language_flags);
         }
         else
         {
@@ -1209,7 +1210,7 @@
         return t->GetElementType().GetChildCompilerTypeAtIndex(
             exe_ctx, idx, transparent_pointers, omit_empty_base_classes, ignore_array_bounds, child_name,
             child_byte_size, child_byte_offset, child_bitfield_bit_size, child_bitfield_bit_offset, child_is_base_class,
-            child_is_deref_of_parent, valobj);
+            child_is_deref_of_parent, valobj, language_flags);
     }
     return CompilerType();
 }