https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125797
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- build_invoke already correctly sets: /* INVOKE is an unevaluated context. */ cp_unevaluated cp_uneval_guard; but that is reset to 0 in instantiate_body: bool push_to_top = maybe_push_to_top_level (d); so when folding we do promote.
