[Bug c++/81408] Lots of new -Wunsafe-loop-optimizations warnings with 7 compared to 6
amker at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jul 12 10:46:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81408
amker at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |amker at gcc dot gnu.org
--- Comment #7 from amker at gcc dot gnu.org ---
(In reply to Martin Liška from comment #6)
> And there's sample which started to be reported with Bin's revision r238641:
>
> namespace a {
> void b () __attribute__ ((__noreturn__));
> template <typename> struct d;
> template <typename e> struct d<e *>
> {
> typedef e f;
> };
> struct g
> {
> template <typename h> using i = h *;
> };
> }
> using a::d;
> template <typename j, typename> class k
> {
> j l;
>
> public:
> typename d<j>::f operator* () {}
> void operator++ () { ++l; }
> j
> aa ()
> {
> return l;
> }
> };
> template <typename m, typename n, typename ab>
> bool
> operator!= (k<m, ab> o, k<n, ab> p2)
> {
> return o.aa () != p2.aa ();
> }
> struct p;
> namespace a {
> struct F
> {
> struct q
> {
> using ai = g::i<p>;
> };
> using r = q::ai;
> };
> class H
> {
> public:
> k<F::r, int> begin ();
> k<F::r, int> end ();
> };
> int s;
> class I
> {
> public:
> void
> aq (char)
> {
> if (s)
> b ();
> }
> };
> class u : public I
> {
> public:
> void
> operator<< (u o (u))
> {
> o (*this);
> }
> u operator<< (void *);
> };
> template <typename at, typename au>
> at
> av (au o)
> {
> o.aq ('\n');
> }
> u ax;
> }
> struct p
> {
> char *ay;
> };
> a::H t;
> void
> ShowHelpListCommands ()
> {
> for (auto c : t)
> a::ax << c.ay << a::av;
> }
Yes, it's very likely my fault. Thanks for reducing the test case. I will
investigate it.
More information about the Gcc-bugs
mailing list