[PATCH] [dwarfdump] Resolve also variable specifications/abstract_origins.
friss at apple.com
Thu Oct 9 09:26:17 PDT 2014
Comment at: lib/DebugInfo/DWARFDebugInfoEntry.h:139
@@ +138,3 @@
+ getName(const DWARFUnit *U,
+ DILineInfoSpecifier::FunctionNameKind Kind,
+ bool SearchOnlySubroutine = false) const;
> DILineInfoSpecifier::FunctionNameKind looks kind of weird here. Maybe, you should just add a custom enum that would set the kind of name you want to fetch from the DIE (in this way, you might never need to handle FunctionNameKind::None, for instance). Why do you need a SearchOnlySubroutine argument? I don't think a suprogram DIE can refer to a variable DIE via DW_AT_specification attribute.
FunctionNameKind is part of the public DebugInfo interface. I'm not that fond of adding another enum with a very similar meaning (just leaving the None out). How about I move FunctionNameKind out of DILineInfoSpecifier and rename it to something like DINameKind ? I'll still have to deal with the None case, but at least the type passed to getName would be a bit more sensical.
I put the SearchOnlySubroutine parameter to preserve the exact semantic of the getSubroutineName method which checks the type of DIE at each recursive invocation. As said in the patch log, I can remove that parameter and have the DIE type check be done only on the root search DIE (I'd find this nicer myself).
If I don't here any opposition to the above, I'll resubmit with these changes.
More information about the llvm-commits