------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-04 
19:30 -------
(In reply to comment #2)
> So I did :-)  So where does the `der2::der2(const void**)' come from?

It is a bug and a regression.
Reduced testcase for that bug:
struct  virt { virt(){} virt(int i){}  };
struct der: public virtual virt { der(int i):virt(i) {} };
struct top : public der {
    top () {} };

3.2.3 gave:
t.cc: In constructor `top::top()':
t.cc:4: no matching function for call to `der::der()'
t.cc:2: candidates are: der::der(const der&)
t.cc:2:                 der::der(int)

which is the correct diagnostic.

3.3.3 gave something just as weird as 3.4.0 (and above):
t.cc: In constructor `top::top()':
t.cc:4: error: no matching function for call to `der::der(const <anonymous>**)'
t.cc:2: error: candidates are: der::der(const der&)
t.cc:2: error:                 der::der(int)

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |diagnostic
      Known to fail|                            |3.3.3 3.4.0 4.0.0 4.1.0
      Known to work|                            |3.2.3
   Last reconfirmed|0000-00-00 00:00:00         |2005-06-04 19:30:11
               date|                            |
            Summary|Even poorer diagnostic      |[3.4/4.0/4.1 Regression]
                   |                            |poor diagnostic with vitrual
                   |                            |base classes
   Target Milestone|---                         |3.4.5


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

Reply via email to