<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 26 March 2013 18:30, Johannes Pfau <span dir="ltr"><<a href="mailto:nospam@example.com" target="_blank">nospam@example.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Am Mon, 25 Mar 2013 19:26:10 +0000<br>
schrieb Iain Buclaw <<a href="mailto:ibuclaw@ubuntu.com">ibuclaw@ubuntu.com</a>>:<br>
<div class="im"><br>
> On 25 March 2013 18:36, Johannes Pfau <<a href="mailto:nospam@example.com">nospam@example.com</a>> wrote:<br>
><br>
</div><div><div class="h5">> > In runnable/test42.d test7290 checks if a scope delegate is really<br>
> > allocated on the stack. To verify this it obtains the EBP pointer<br>
> > and compares that to the delegates .ptr.<br>
> ><br>
> > The problem is that as soon as we enable optimization gcc no<br>
> > longer adjusts the EBP pointer when calling the helper functions and<br>
> > the test fails...<br>
> ><br>
> > This test seems to be very fragile in general so what should we do<br>
> > about this?<br>
> ><br>
> ><br>
> > BTW: I introduced a small typo in test7290 when porting to GCC asm:<br>
> > The test in the main test7290 function should check "assert(dg.ptr<br>
> > <= p);", not "assert(p < dg.ptr);"<br>
> ><br>
><br>
><br>
</div></div><div class="im">> 1.  Revert your typo.<br>
><br>
> 2. Raise with a thread in dmd-internals about it. -O2 in GDC triggers<br>
> -fomit-frame-pointer.  I'm 90% certain that Walter will say that any<br>
> function with assembly inside requires that a frame pointer must<br>
> always be present (except in naked function), but that is absolute<br>
> rubbish.  For x86_64 (at least), the ABI encourages the absence of a<br>
> frame pointer.<br>
><br>
><br>
> Regards<br>
<br>
</div>2 doesn't sound very promising though. We could just move that test to<br>
another file and make sure it's compiled with -fno-inline and<br>
fno-omit-frame-pointer. Even if dmd asm may require the frame pointer<br>
that needn't be true for gcc asm.<br>
<br>
BTW: Do we allow backports of specific frontend fixes into gdc? I'd<br>
like to merge the fix for the final methods in interfaces problem.<br>
</blockquote></div><br></div><div class="gmail_extra">Have no objections.  Have done that for __vector's before ahead of release.<br clear="all"></div><div class="gmail_extra"><br>-- <br>Iain Buclaw<br><br>*(p < e ? p++ : p) = (c & 0x0f) + '0';
</div></div>