blob: 8f1125537e9544d2a6710c833dd1731d6e5e5f27 [file] [log] [blame]
// PR c++/78908
struct A { int a : 1; };
struct F { int foo (A const &); };
template <typename> struct O : F { int foo (A const &); };
struct S {} b;
template <typename L, typename T> int operator<< (L, T) { return (T) 123; }
template <typename T> int O<T>::foo (A const &x) { return b << x.a; }
int
main ()
{
A a = { 0 };
O<int> o;
if (o.foo (a) != 123)
__builtin_abort ();
signed char d = 2;
if ((b << d) != 123)
__builtin_abort ();
}