public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "rl.alt.accnt at gmail dot com" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/109692] New: ICE on concept as default template parameter to iife lambda in fold expression in static member template function Date: Tue, 02 May 2023 06:17:25 +0000 [thread overview] Message-ID: <bug-109692-4@http.gcc.gnu.org/bugzilla/> (raw) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109692 Bug ID: 109692 Summary: ICE on concept as default template parameter to iife lambda in fold expression in static member template function Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: rl.alt.accnt at gmail dot com Target Milestone: --- The following code raises an ICE on GCC (trunk) and all versions later than and including GCC 11.3. Earlier versions simply fail to instantiate the template. Both Clang and MSVC accept the code (see also this godbolt link: https://godbolt.org/z/x5Ys9sPzx): ```c++ template <typename opt> concept always_true = true; template <typename ...params> struct variadic { template <typename opt> static void callee() { } static void bug() { ([]<bool x = always_true<params>>() { if constexpr (x) callee<params>(); }(), ...); } }; int main() { variadic<int>::bug(); } ``` GCC (trunk) on godbolt gives me this stack trace: <source>: In instantiation of 'variadic<int>::bug()::<lambda()> [with bool x = true]': <source>:9:10: required from 'static void variadic<params>::bug() [with params = {int}]' <source>:13:32: required from here <source>:8:44: error: template argument 1 is invalid 8 | if constexpr (x) callee<params>(); | ~~~~~~~~~~~~~~^~ <source>:8:44: error: template argument 1 is invalid <source>:8:44: internal compiler error: in constructor_name_p, at cp/name-lookup.cc:4721 0x23605ae internal_error(char const*, ...) ???:0 0xa6dd64 fancy_abort(char const*, int, char const*) ???:0 0xc81ee5 instantiate_decl(tree_node*, bool, bool) ???:0 0xb5c9e1 maybe_instantiate_decl(tree_node*) ???:0 0xb5e45e mark_used(tree_node*, int) ???:0 0xa9da44 build_op_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int) ???:0 0xcc7264 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, bool, int) ???:0 0xc79864 tsubst_pack_expansion(tree_node*, tree_node*, int, tree_node*) ???:0 0xc81ee5 instantiate_decl(tree_node*, bool, bool) ???:0 0xcad44b instantiate_pending_templates(int) ???:0 0xb61635 c_parse_final_cleanups() ???:0 0xd91568 c_common_parse_file() ???:0
next reply other threads:[~2023-05-02 6:17 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-05-02 6:17 rl.alt.accnt at gmail dot com [this message] 2023-05-02 14:26 ` [Bug c++/109692] [12/13/14 Regression] ICE on concept as default template parameter to iife lambda in fold expression in static member template function since r12-8110-ge2c7070ac77405 marxin at gcc dot gnu.org 2023-05-03 3:49 ` pinskia at gcc dot gnu.org 2024-01-12 10:43 ` rguenth at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-109692-4@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).