[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:
Arnaldo Carvalho de Melo 2007-07-08 14:55:15 -03:00
parent 10d68c1101
commit d6471b435b
1 changed files with 12 additions and 2 deletions

View File

@ -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,