This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


On Mon, Jul 23, 2018 at 8:50 PM, Richard Biener
<richard.guenther@gmail.com> wrote:
> 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.

fully_fold is too soon (until constexpr evaluation uses the
pre-genericize form), but the gimplification hook should work.

>> 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++.

Immediately, I'd think.

Jason


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]