weird bug with nested functions:
Iain Buclaw
ibuclaw at ubuntu.com
Mon Feb 11 02:40:43 PST 2013
On 10 February 2013 09:05, Johannes Pfau <nospam at example.com> wrote:
> Am Fri, 8 Feb 2013 14:05:24 +0100
> schrieb Johannes Pfau <nospam at example.com>:
>
> > https://gist.github.com/jpf91/4738922
> >
>
> OK, found it and found a fix. As a result functions in nested structs
> can now also have static chains.
>
> With my changes it's possible that a function in a template instance
> has a static chain. So we can have functions which are nested, but
> for which we still need to call make_decl_one_only.
>
> There's a small problem: makeDeclOneOnly has this comment:
>
> /* Weak definitions have to be public. Nested functions may or
> may not be emitted as public even if TREE_PUBLIC is set.
> There is no way to tell if the back end implements
> make_decl_one_only with DECL_WEAK, so this check is
> done first. */
>
> and therefore it doesn't mark nested functions as one-only.
>
> Do you know if that statement is still true for recent gcc versions? I
> removed that check and there were no regressions.
>
This code logic was from gcc-3.4 times, other changes around that may have
made it work by now. Can you pull so I can review?
--
Iain Buclaw
*(p < e ? p++ : p) = (c & 0x0f) + '0';
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/d.gnu/attachments/20130211/5a4d699d/attachment.html>
More information about the D.gnu
mailing list