public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "mpolacek at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/113360] [13/14 Regression] Truncated constexpr error messages with -std=c++23/26 Date: Mon, 15 Jan 2024 23:38:49 +0000 [thread overview] Message-ID: <bug-113360-4-vuNuX21tPU@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-113360-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113360 --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- The "deducing from brace-enclosed initializer" error is emitted during parsing from listify. The body of init_list is not potentially-constant (due to erroneous FOR_COND), so we register_constexpr_fundef it with result == error_mark_node. require_rvalue_constant_expression in finish_static_assert thinks init_list is potentially-constant, so we call cxx_constant_value. new_call.fundef->result is error_mark_node so we don't bother evaluating the body. We call explain_invalid_constexpr_fn but that has nothing to say, so we end up with a missing reason. But we already said what went wrong, so we shouldn't repeat it here anyway. The body is: { int total = 0; <<cleanup_point int total = 0;>>; { int x = <<< error >>>; <<< error >>> __for_range; <<< error >>> __for_begin; <<< error >>> __for_end; <<< Unknown tree: for_stmt <<< error >>> <<< error >>> <<cleanup_point int x = <<< error >>>;>>; <<cleanup_point <<< Unknown tree: expr_stmt (void) (total = total + VIEW_CONVERT_EXPR<int>(x)) >>>>>; >>>; } return <retval> = VIEW_CONVERT_EXPR<int>(total) == 6; } Can be reproduced in C++20 with -Wno-invalid-constexpr.
next prev parent reply other threads:[~2024-01-15 23:38 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-01-12 19:12 [Bug c++/113360] New: " mpolacek at gcc dot gnu.org 2024-01-12 19:13 ` [Bug c++/113360] [13/14 Regression] " mpolacek at gcc dot gnu.org 2024-01-12 19:13 ` mpolacek at gcc dot gnu.org 2024-01-15 23:38 ` mpolacek at gcc dot gnu.org [this message] 2024-01-16 19:25 ` mpolacek at gcc dot gnu.org 2024-02-01 22:44 ` jason at gcc dot gnu.org 2024-03-07 20:51 ` law at gcc dot gnu.org 2024-05-21 9:18 ` [Bug c++/113360] [13/14/15 " jakub 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-113360-4-vuNuX21tPU@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).