================
@@ -3490,7 +3490,7 @@ VariableSP SymbolFileDWARF::ParseVariableDIE(const 
SymbolContext &sc,
   ModuleSP module = GetObjectFile()->GetModule();
 
   if (tag != DW_TAG_variable && tag != DW_TAG_constant &&
-      (tag != DW_TAG_formal_parameter || !sc.function))
+      tag != DW_TAG_member && (tag != DW_TAG_formal_parameter || !sc.function))
----------------
labath wrote:

I don't think that should be an assert unless some piece of code (where?) 
alredy makes sure that these kinds of DIEs don't make their way here. Debug 
info can come from all kinds of compilers (including those from the past and 
the future), so we shouldn't be crashing just because we've ran into debug info 
(aka "user input") that we don't understand. Logging something or reporting a 
warning might be more appropriate.

Checking for this member when detecting a static const member might be okay, 
but it doesn't really count as the check I mention above, since it only works 
for the manual index. The other indexes come straight from the compiler (past, 
future, etc.) so they can't be relied upon in the same way. For this reason 
(and because we want to make the indexing step as fast as possible), I'd put 
the check into the indexing step only if it's necessary to properly detect 
static members.

https://github.com/llvm/llvm-project/pull/111859
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to