/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ class a { public: double b() const; }; class c { public: int m_fn2() const; }; double a::b() const { return 0 == 0 ? reinterpret_cast(this)->m_fn2() : 0; } bool d; void e() { a f; double g = f.b(); /* { dg-final { scan-tree-dump-not "unord" "optimized" } } */ d = __builtin_isnan(g); }