On Mon, Jul 23, 2018 at 8:50 PM, Richard Biener <richard.guent...@gmail.com> wrote: > On Mon, Jul 23, 2018 at 12:28 PM Jakub Jelinek <ja...@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