public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "harald at gigawatt dot nl" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c/115566] Arrays of character type initialized with parenthesized string literals shouldn't be diagnosed with -pedantic (at least in C23) Date: Sat, 22 Jun 2024 23:49:45 +0000 [thread overview] Message-ID: <bug-115566-4-VzK7Bcvp4c@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-115566-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115566 Harald van Dijk <harald at gigawatt dot nl> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |harald at gigawatt dot nl --- Comment #8 from Harald van Dijk <harald at gigawatt dot nl> --- I believe this bug is valid; the change from > A parenthesized expression is a primary expression. Its type and value are > identical to those of the unparenthesized expression. It is an lvalue, a > function designator, or a void expression if the unparenthesized expression > is, respectively, an lvalue, a function designator, or a void expression. to the already quoted > A parenthesized expression is a primary expression. Its type, value, and > semantics are identical to those of the unparenthesized expression. only makes sense if the intent was to to also make parenthesized expressions equivalent to unparenthesized expressions in other ways than those previously enumerated. But at any rate, GCC is inconsistent. The exact same argument applies to null pointer constants. Null pointer constants are defined as > An integer constant expression with the value 0, or such an expression cast > to type void *, is called a null pointer constant. Note that such an expression cast to type void *, and then wrapped in parentheses, is not explicitly included. Yet GCC accepts #define NULL ((void*)0) int main(void) { void(*fp)(void) = NULL; } when the same overly pedantic reading should result in "ISO C forbids initialization between function pointer and 'void *'" here. Either parenthesized expressions are just generally equivalent to non-parenthesized expressions, and both the OP's code and this program are valid, or parenthesized expressions are only like the non-parenthesized expressions in the specifically enumerated ways, in which case both the OP's code and this program violate a constraint and require a diagnostic. You can choose which of those interpretations you prefer, but they both indicate a bug in GCC.
prev parent reply other threads:[~2024-06-22 23:49 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-06-20 20:50 [Bug c/115566] New: " luigighiron at gmail dot com 2024-06-20 20:57 ` [Bug c/115566] " pinskia at gcc dot gnu.org 2024-06-20 21:51 ` pinskia at gcc dot gnu.org 2024-06-20 22:06 ` pinskia at gcc dot gnu.org 2024-06-20 22:17 ` pinskia at gcc dot gnu.org 2024-06-20 22:21 ` pinskia at gcc dot gnu.org 2024-06-20 22:36 ` luigighiron at gmail dot com 2024-06-22 20:20 ` jsm28 at gcc dot gnu.org 2024-06-22 23:49 ` harald at gigawatt dot nl [this message]
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-115566-4-VzK7Bcvp4c@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).