This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Bug c++/19199] [3.3/3.4/4.0/4.1 Regression] Wrong warning about returning a reference to a temporary
Steven Bosscher <stevenb@suse.de> wrote:
>> The way I think about this is that G++ has long supported the GNU
>> min/max expression extension -- and it's long been broken. Over the
>> years, I've fielded several bug reports about that extension, and we've
>> gradually cleaned it up, but mostly it's just been neglected.
>
> Indeed, not so very long a go I helped pinning down a bug in the RTL
> expanders for MIN_EXPR and MAX_EXPR (I think that Roger fixed it) that
> made it impossible for that extension to work relyably. The reason we
> found it is that the tree optimizers produces a few (and hopefully it
> will produce more of them soon), but the bug in the expanders had been
> there since the dawn of time. And nobody noticed it before.
Well, that sounds largely impossible. Can you point exactly which bug are
you talking of? I know for a fact that the extension itself has always
worked for basic rvalue usage, with basic types. Instead, I would not be
surprised if some more complex usage of it used to be (or still is) broken,
like weird lvalue contexts, usage in templates, operator overloading or
similar.
--
Giovanni Bajo