public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "malat at debian dot org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/109175] error: 'void* __builtin_memset(void*, int, long unsigned int)' writing 4 or more bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=] Date: Fri, 24 Mar 2023 18:20:39 +0000 [thread overview] Message-ID: <bug-109175-4-KST67vl7C8@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-109175-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109175 --- Comment #5 from Mathieu Malaterre <malat at debian dot org> --- c-reduce(d) ugly version: % cat demo3.cc struct d { using b = float &; }; template <typename> using c = d::b; struct e { using b = c<float>; }; template <long, typename> struct j; template <long f, typename g> using h = typename j<f, g>::b; template <long, typename...> struct p; template <typename k, typename... l> struct p<0, k, l...> { using b = k; }; template <typename...> class m; template <typename n> struct aa { aa(n t) : o(t) {} static n ab(aa t) { return t.o; } n o; }; template <long, typename...> struct q; template <long r, typename n, typename... s> struct q<r, n, s...> : q<1, s...>, aa<n> { q(n t, s... ac) : q<1, s...>(ac...), aa<n>(t) {} }; template <long r, typename n> struct q<r, n> : aa<n> { q(n t) : aa<n>(t) {} }; template <typename ad, typename ae> class m<ad, ae> : public q<0, ad, ae> { public: m(ad t, ae ac) : q<0, ad, ae>(t, ac) {} }; template <long f, typename... af> struct j<f, m<af...>> { using b = typename p<f, af...>::b; }; template <long f, typename n, typename... s> n ag(q<f, n, s...> t) { return q<f, n>::ab(t); } template <int f, typename... ah> h<f, m<ah...>> ai(m<ah...> t) { return ag(t); } class u { struct aj { using b = float *; }; public: using ak = aj::b; u(ak t, int) : al(t, long()) {} ak w() { return ai<0>(al); } m<ak, int> al; }; struct x : u { using u::u; }; class y { x al; public: using ak = u::ak; using am = int; template <typename an> y(an t, am ac) : al(t, ac) {} e::b operator[](long t) { return z()[t]; } ak z() { return al.w(); } }; void *ao(); template <typename ap> ap *aq(long t) { if (t) return nullptr; return static_cast<ap *>(ao()); } template <typename> using ar = y; template <typename ap> ar<ap> as(long t, void *) { return ar<ap>(aq<ap>(t), int()); } template <typename ap> ar<ap> as(long t) { return as<ap>(t, nullptr); } float v; void at(long t) { long a = sizeof(0), i = 0; auto b = as<float>(t); for (; i < a; ++i) b[i] = v; for (; i < t; ++i) b[i] = 0.0f; } % /usr/lib/gcc-snapshot/bin/g++ -Wall -O2 -o t.o -c demo3.cc demo3.cc: In function 'void at(long int)': demo3.cc:79:10: warning: 'void* __builtin_memset(void*, int, long unsigned int)' writing 4 or more bytes into a region of size 0 overflows the destination [-Wstringop-overflow=] 79 | b[i] = 0.0f; cc1plus: note: destination object is likely at address zero
next prev parent reply other threads:[~2023-03-24 18:20 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-03-17 14:52 [Bug c++/109175] New: " malat at debian dot org 2023-03-17 14:54 ` [Bug c++/109175] " malat at debian dot org 2023-03-17 14:55 ` malat at debian dot org 2023-03-17 15:04 ` malat at debian dot org 2023-03-20 19:50 ` [Bug tree-optimization/109175] " pinskia at gcc dot gnu.org 2023-03-24 18:20 ` malat at debian dot org [this message] 2023-03-24 18:46 ` pinskia at gcc dot gnu.org 2023-03-24 19:44 ` jan.wassenberg at gmail dot com 2023-09-26 11:59 ` malat at debian dot 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-109175-4-KST67vl7C8@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).