From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============7140950023711445115==" MIME-Version: 1.0 From: Mark Wielaard To: elfutils-devel@lists.fedorahosted.org Subject: Re: dwarf_aggregate_size() seems to fall over on pointer types Date: Wed, 01 Oct 2014 20:33:26 +0200 Message-ID: <20141001183326.GA25015@blokker.redhat.com> In-Reply-To: 542C3E0C.3000503@redhat.com --===============7140950023711445115== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Wed, Oct 01, 2014 at 10:46:52AM -0700, Josh Stone wrote: > > Am I missing something? Is this a Clang bug or an elfutils bug? > = > I don't think it's strictly a bug in either. Clang is not required to > produce byte_size, and elfutils is just reporting what it knows. > = > Still, it might be nice if elfutils made that machine-class inference > for you. (But I worry about things like that mips pointer issue > reported recently.) Agreed. It seems reasonable for a consumer to assume that if any of the reference/pointer types don't have an explicit size then they should assume the type has address size. The DWARF spec does explicitly call out DW_AT_address_class for pointer types. But that isn't really helpful since it then only defines DW_ADDR_none and leaves any other value as architecture defined. How about the attached patch? (I haven't yet looked at the MIPS issue, but think it reasonable to require the producer to add an explicit DW_AT_byte_size if the assumption of address size is not correct.) Thanks, Mark --===============7140950023711445115== Content-Type: text/plain MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-libdw-dwarf_aggregate_size-return-CU-address_size-fo.patch" PkZyb20gYjI5ZjE3NDE4NTZhMTc5ZmQ2YTQyNjUzNGQxOWIxZWQ0ODA3ZjZjMSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyayBXaWVsYWFyZCA8bWp3QHJlZGhhdC5jb20+CkRhdGU6 IFdlZCwgMSBPY3QgMjAxNCAyMDoyOToxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGxpYmR3OiBk d2FyZl9hZ2dyZWdhdGVfc2l6ZSByZXR1cm4gQ1UgYWRkcmVzc19zaXplIGZvcgogc2l6ZWxlc3Mg cG9pbnRlci9yZWZzLgoKU2lnbmVkLW9mZi1ieTogTWFyayBXaWVsYWFyZCA8bWp3QHJlZGhhdC5j b20+Ci0tLQogbGliZHcvQ2hhbmdlTG9nICAgICAgICAgICAgICB8IDYgKysrKysrCiBsaWJkdy9k d2FyZl9hZ2dyZWdhdGVfc2l6ZS5jIHwgOSArKysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTQg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpYmR3L0NoYW5nZUxv ZyBiL2xpYmR3L0NoYW5nZUxvZwppbmRleCA0MTBiMzFhLi5lNjcxNmQ2IDEwMDY0NAotLS0gYS9s aWJkdy9DaGFuZ2VMb2cKKysrIGIvbGliZHcvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOSBAQAorMjAx NC0xMC0wMSAgTWFyayBXaWVsYWFyZCAgPG1qd0ByZWRoYXQuY29tPgorCisJKiBkd2FyZl9hZ2dy ZWdhdGVfc2l6ZS5jIChhZ2dyZWdhdGVfc2l6ZSk6IFJldHVybiBDVSBhZGRyZXNzX3NpemUKKwlm b3Igc2l6ZWxlc3MgRFdfVEFHX3BvaW50ZXJfdHlwZSwgRFdfVEFHX3JlZmVyZW5jZV90eXBlIG9y CisJRFdfVEFHX3J2YWx1ZV9yZWZlcmVuY2VfdHlwZS4KKwogMjAxNC0wOS0xMiAgUGV0ciBNYWNo YXRhICA8cG1hY2hhdGFAcmVkaGF0LmNvbT4KIAogCSogbWVtb3J5LWFjY2Vzcy5oIChyZWFkX3Vi eXRlX3VuYWxpZ25lZF9pbmMpOiBBbGxvdyBvbmx5IDQtIGFuZApkaWZmIC0tZ2l0IGEvbGliZHcv ZHdhcmZfYWdncmVnYXRlX3NpemUuYyBiL2xpYmR3L2R3YXJmX2FnZ3JlZ2F0ZV9zaXplLmMKaW5k ZXggMDdjNTNhMi4uY2ZjMjYzOSAxMDA2NDQKLS0tIGEvbGliZHcvZHdhcmZfYWdncmVnYXRlX3Np emUuYworKysgYi9saWJkdy9kd2FyZl9hZ2dyZWdhdGVfc2l6ZS5jCkBAIC0xLDUgKzEsNSBAQAog LyogQ29tcHV0ZSBzaXplIG9mIGFuIGFnZ3JlZ2F0ZSB0eXBlIGZyb20gRFdBUkYuCi0gICBDb3B5 cmlnaHQgKEMpIDIwMTAgUmVkIEhhdCwgSW5jLgorICAgQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE0 IFJlZCBIYXQsIEluYy4KICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgogCiAgICBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQpAQCAtMjA1LDYgKzIwNSwxMyBAQCBhZ2dyZWdhdGVfc2l6ZSAoRHdhcmZfRGllICpk aWUsIER3YXJmX1dvcmQgKnNpemUsIER3YXJmX0RpZSAqdHlwZV9tZW0pCiAKICAgICBjYXNlIERX X1RBR19hcnJheV90eXBlOgogICAgICAgcmV0dXJuIGFycmF5X3NpemUgKGRpZSwgc2l6ZSwgJmF0 dHJfbWVtLCB0eXBlX21lbSk7CisKKyAgICAvKiBBc3N1bWUgcmVmZXJlbmNlcyBhbmQgcG9pbnRl cnMgaGF2ZSBwb2ludGVyIHNpemUgaWYgbm90IGdpdmVuIGFuCisgICAgICAgZXhwbGljaXQgRFdf QVRfYnl0ZV9zaXplLiAgKi8KKyAgICBjYXNlIERXX1RBR19wb2ludGVyX3R5cGU6CisgICAgY2Fz ZSBEV19UQUdfcmVmZXJlbmNlX3R5cGU6CisgICAgY2FzZSBEV19UQUdfcnZhbHVlX3JlZmVyZW5j ZV90eXBlOgorICAgICAgcmV0dXJuIGRpZS0+Y3UtPmFkZHJlc3Nfc2l6ZTsKICAgICB9CiAKICAg LyogTW9zdCB0eXBlcyBtdXN0IGdpdmUgdGhlaXIgc2l6ZSBkaXJlY3RseS4gICovCi0tIAoxLjku MwoK --===============7140950023711445115==--