// PR c++/45267 // { dg-options "-O" } template struct Vector { Vector(long long x); inline Vector operator<<(int x) const __attribute__((always_inline)); }; long long bar (long long); template<> inline Vector Vector::operator<<(int x) const { return bar(x); } bool b; int main() { Vector a(1); if ((a << 2), b) { a << 2; throw 1; } }