dmd 1.059 and 2.044 release

Robert Clipsham robert at octarineparrot.com
Sun May 2 18:26:50 PDT 2010


On 03/05/10 00:59, Walter Bright wrote:
> Any ideas why?

dwarf.c:1525: infobuf->write32(*++pparamidx);        // DW_AT_type

*++pparamidx is 0 (and always seems to be). GDB doesn't like DW_AT_type 
being 0, if it has no type there shouldn't be a DW_AT_type at all. This 
said, that code looks wrong, as *++pparamidx is always 0 according to 
gdb, which it shouldn't be. Replacing it with the old code:
  unsigned x = dwarf_typidx(p->Ptype);
  infobuf->write32(x);        // DW_AT_type
Seems to work most of the time, but breaks when faced with:

void function(void function(void function())) foobar;

And other cases. Simplest solution seems to be to revert the change, but 
it's up to you what you do... As long as it's fixed I don't care how 
it's done :)


More information about the Digitalmars-d-announce mailing list