Patch to get GDC up to 1.028

shinichiro.h dng at shinh.skr.jp
Fri Mar 7 20:03:19 PST 2008


Nice work!

I've also tried to make GDC use newer 2.*, but I've not done yet. By
the way I found a bug in your patch. You are so careful that you are
warning this can be a bug though.

http://d.puremagic.com/issues/show_bug.cgi?id=1575

breaks compiler like:

% gdc1 bug1575.d
TupleExp::toElem() tuple(_s_field_0 = _param_0,_s_field_1 = _param_1)
bug1575.d: In function 'foo':
bug1575.d:11: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
EXPER: Uneducated guesswork ensues. Beware.

I think removing TupleExp::toElem from expression.c and adding

elem *
TupleExp::toElem(IRState * irs)
{
    tree result = NULL_TREE;
    for (unsigned i = 0; i < exps->dim; i++) {
	Expression * e = (Expression *) exps->data[i];
	tree elem_e = e->toElem( irs );
	result = irs->maybeCompound(result, elem_e);
    }
    return result;
}

into d-glue.c will work.

Thanks,

At Sat, 08 Mar 2008 00:21:48 +0100,
downs wrote:
> 
> This is a hastily cobbled together patch to bring GDC up to speed with DMD 1.028.
> 
> It was created by making a diff between .022 and .028 and applying it to the GDC .022 source.
> 
> In places where it failed, the respective files were more or less randomly prodded and pushed around until some semblance of working code emerged.
> 
> Luckily, I only had to completely blindly guess at *one* bit in the frontend glue code, so the amount of actual _compiler_ breakage should be small.
> 
> Phobos unittests _almost_ pass, except for some GC things which I can't figure out entirely. The GC seems to work okay though.
> 
> scrapple.tools and yawr managed to build without errors and run correctly, so I'm actually quite hopeful :)
> 
> Patch is attached^W^Wwould be attached, were it not for the server's size limit.
> 
> Instead, get it on http://demented.no-ip.org/~root/dgcc_1_022_to_1_028.patch
> 
>  --downs



More information about the D.gnu mailing list