Am Mon, 25 Mar 2013 19:26:10 +0000
schrieb Iain Buclaw <ibuclaw@ubuntu.com>:
> > In runnable/test42.d test7290 checks if a scope delegate is really
> > allocated on the stack. To verify this it obtains the EBP pointer
> > and compares that to the delegates .ptr.
> >
> > The problem is that as soon as we enable optimization gcc no
> > longer adjusts the EBP pointer when calling the helper functions and
> > the test fails...
> >
> > This test seems to be very fragile in general so what should we do
> > about this?
> >
> >
> > BTW: I introduced a small typo in test7290 when porting to GCC asm:
> > The test in the main test7290 function should check "assert(dg.ptr
> > <= p);", not "assert(p < dg.ptr);"
> >
>
>
> 1. Revert your typo.2 doesn't sound very promising though. We could just move that test to
>
> 2. Raise with a thread in dmd-internals about it. -O2 in GDC triggers
> -fomit-frame-pointer. I'm 90% certain that Walter will say that any
> function with assembly inside requires that a frame pointer must
> always be present (except in naked function), but that is absolute
> rubbish. For x86_64 (at least), the ABI encourages the absence of a
> frame pointer.
>
>
> Regards
another file and make sure it's compiled with -fno-inline and
fno-omit-frame-pointer. Even if dmd asm may require the frame pointer
that needn't be true for gcc asm.
BTW: Do we allow backports of specific frontend fixes into gdc? I'd
like to merge the fix for the final methods in interfaces problem.