[C++ PATCH] Implement P0595R1 - so far as __builtin_is_constant_evaluated rather than std::is_constant_evaluated magic builtin

Richard Biener richard.guenther@gmail.com
Mon Jul 23 10:50:00 GMT 2018


On Mon, Jul 23, 2018 at 12:28 PM Jakub Jelinek <jakub@redhat.com> wrote:
>
> On Mon, Jul 23, 2018 at 12:17:42PM +0200, Richard Biener wrote:
> > > Bootstrapped/regtested on x86_64-linux.
> >
> > Thanks for working on this.  I wonder if we can completely hide this
> > from the middle-end, without requiring defining of c_dialect_cxx.
> > There is the BUILT_IN_FRONTEND class so you could somewhere
> > manually inject a decl in that class for C++?
>
> But then I couldn't handle folding of the builtin in the middle-end to false,
> which is what I need (because in the FE it needs to be either folded to
> true, or its folding deferred until later).
> Or maybe in the C++ gimplification langhook?

Yes, I was thinking the C++ langhook or its fully_fold routine.

> Seems we have a single BUILT_IN_FRONTEND builtin in the whole compiler,
> __integer_pack, but it doesn't act as a normal builtin, given it is a
> templatish magic.

Yeah, I think at some point we considered removing BUILT_IN_FRONTEND ...

Nowadays internal-use builtins can easily be internal-functions but of couse
this one will eventually be used from libstdc++.

Richard.

>
>         Jakub



More information about the Gcc-patches mailing list