------- Comment #6 from pinskia at gcc dot gnu dot org  2008-12-25 15:30 -------
(In reply to comment #5)
> Let's start from the beginning.
> 
> class   A{public:int    x;A():x(0){};};
> class   B:public        A{public:int    y;B():A(),y(0){};};
> class   C:public        A{public:int    z;C():A(),z(0){};};
> 
> B       xb;
> C       xc;
> 
> A&      debug1(){
>         return  (false?xb:xc);} // an error

> It is desirable to remove an error message.

Not really because it is invalid code.

Since there is no xb cannot be converted into C or xc cannot be converted into
B, the code is invalid.  The reason why it works when using xa and ab is
because xb can be converted into A& anyways.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|                            |INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38622

Reply via email to