On 26 March 2013 18:30, Johannes Pfau <nos...@example.com> wrote: > Am Mon, 25 Mar 2013 19:26:10 +0000 > schrieb Iain Buclaw <ibuc...@ubuntu.com>: > > > On 25 March 2013 18:36, Johannes Pfau <nos...@example.com> wrote: > > > > > 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. 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 > > 2 doesn't sound very promising though. We could just move that test to > 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. >
Have no objections. Have done that for __vector's before ahead of release. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';