public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/102586] [12 Regression] ICE in clear_padding_type, at gimple-fold.c:4798 since r12-3433-ga25e0b5e6ac8a77a Date: Fri, 11 Feb 2022 17:47:56 +0000 [thread overview] Message-ID: <bug-102586-4-TCj2lKfT57@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-102586-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102586 --- Comment #26 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Though, I must say I don't understand how that works currently at all. For say struct C0 {}; struct C1 {}; struct C2 : C1, virtual C0 {}; struct C3 : virtual C2, C1 {}; struct C6 { char c; }; struct C7 : virtual C6, virtual C3, C1 {}; struct C8 : C7 {}; void bar (C8 *); void foo () { C8 c; bar (&c); } I see in gimple dump: c = .DEFERRED_INIT (32, 1, &"c"[0]); __builtin_clear_padding (&c, 0B, 1); C8::C8 (&c); bar (&c); and it does something only because C8::C8 doesn't get the -flifetime-dse=2 CLOBBER at the start. But if I do: struct C { char a; int b; char c; long d; C () : a (42), b (42), c (42), d (42) {} }; void bar (C *); void foo () { C c; bar (&c); } then *.gimple is: c = .DEFERRED_INIT (24, 1, &"c"[0]); __builtin_clear_padding (&c, 0B, 1); C::C (&c); bar (&c); ... void C::C (struct C * const this) { *this = {CLOBBER}; { this->a = 42; this->b = 42; this->c = 42; this->d = 42; } } After einline this is: c = .DEFERRED_INIT (24, 1, &"c"[0]); MEM <char[3]> [(struct C *)&c + 1B] = {}; MEM <char[7]> [(struct C *)&c + 9B] = {}; c ={v} {CLOBBER}; c.a = 42; c.b = 42; c.c = 42; c.d = 42; bar (&c); and that keeps until dse1 which optimizes that out: c ={v} {CLOBBER}; c.a = 42; c.b = 42; c.c = 42; c.d = 42; bar (&c); so there is no zero padding initialization at all.
next prev parent reply other threads:[~2022-02-11 17:47 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-10-04 7:30 [Bug tree-optimization/102586] New: " marxin at gcc dot gnu.org 2021-10-04 7:30 ` [Bug tree-optimization/102586] " marxin at gcc dot gnu.org 2021-10-04 8:21 ` jakub at gcc dot gnu.org 2021-10-04 8:22 ` marxin at gcc dot gnu.org 2021-10-04 11:43 ` jakub at gcc dot gnu.org 2021-10-04 12:04 ` jakub at gcc dot gnu.org 2021-11-15 13:03 ` jakub at gcc dot gnu.org 2021-11-15 13:05 ` jakub at gcc dot gnu.org 2022-01-17 13:14 ` rguenth at gcc dot gnu.org 2022-02-09 17:21 ` jason at gcc dot gnu.org 2022-02-10 14:08 ` jakub at gcc dot gnu.org 2022-02-10 14:18 ` jakub at gcc dot gnu.org 2022-02-10 15:29 ` jakub at gcc dot gnu.org 2022-02-10 15:35 ` jakub at gcc dot gnu.org 2022-02-10 15:56 ` jason at gcc dot gnu.org 2022-02-10 18:30 ` jakub at gcc dot gnu.org 2022-02-10 18:45 ` jason at gcc dot gnu.org 2022-02-10 19:27 ` jakub at gcc dot gnu.org 2022-02-10 22:07 ` jason at gcc dot gnu.org 2022-02-10 22:27 ` jakub at gcc dot gnu.org 2022-02-10 22:29 ` jakub at gcc dot gnu.org 2022-02-10 22:34 ` jakub at gcc dot gnu.org 2022-02-11 1:47 ` rodgertq at gcc dot gnu.org 2022-02-11 12:31 ` jakub at gcc dot gnu.org 2022-02-11 15:29 ` jason at gcc dot gnu.org 2022-02-11 16:23 ` qing.zhao at oracle dot com 2022-02-11 16:39 ` jakub at gcc dot gnu.org 2022-02-11 17:36 ` qinzhao at gcc dot gnu.org 2022-02-11 17:47 ` jakub at gcc dot gnu.org [this message] 2022-02-11 21:52 ` qing.zhao at oracle dot com 2022-03-12 4:40 ` jason at gcc dot gnu.org 2022-03-14 9:49 ` cvs-commit at gcc dot gnu.org 2022-04-07 7:15 ` cvs-commit at gcc dot gnu.org 2022-04-07 7:19 ` 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-102586-4-TCj2lKfT57@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).