1 // PR c++/44628
2 
3 template <typename T>
4 class Temp
5 {
6   int Val;
7   public:
8   operator T&(void)  { return Val; }
9 
10   virtual T& operator=(T a ) // { dg-message "overridden" }
11   {
12     Val = a;
13     return Val;
14   }
15 };
16 
17 class Int : public Temp<int>
18 {
19   public:
20   Int& operator=(int a) // { dg-error "conflicting return type" }
21   {
22     return (*this);
23   }
24 };
25