[LIB]: Make function__fprintf handle the member virtuality
More C++ support. Now we print "virtual" before DW_TAG_subprogram DW_TAG_member tags that have a DW_AT_virtuality attribute of and DW_VIRTUALITY_pure_virtual or DW_VIRTUALITY_virtual and " = 0" after the DW_VIRTUALITY_pure_virtual ones. vtables are next. Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
This commit is contained in:
parent
10d68c1101
commit
d6471b435b
14
dwarves.c
14
dwarves.c
|
@ -2127,9 +2127,19 @@ static size_t function__fprintf(const struct tag *tag_self,
|
|||
const struct cu *cu, FILE *fp)
|
||||
{
|
||||
struct function *self = tag__function(tag_self);
|
||||
size_t printed = 0;
|
||||
|
||||
return ftype__fprintf(&self->proto, cu, function__name(self, cu),
|
||||
function__declared_inline(self), 0, 0, fp);
|
||||
if (self->virtuality == DW_VIRTUALITY_virtual ||
|
||||
self->virtuality == DW_VIRTUALITY_pure_virtual)
|
||||
printed += fprintf(fp, "virtual ");
|
||||
|
||||
printed += ftype__fprintf(&self->proto, cu, function__name(self, cu),
|
||||
function__declared_inline(self), 0, 0, fp);
|
||||
|
||||
if (self->virtuality == DW_VIRTUALITY_pure_virtual)
|
||||
printed += fprintf(fp, " = 0");
|
||||
|
||||
return printed;
|
||||
}
|
||||
|
||||
size_t function__fprintf_stats(const struct tag *tag_self,
|
||||
|
|
Loading…
Reference in New Issue