https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93503

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |12.0, 4.4.6
   Target Milestone|---                         |9.5
      Known to work|                            |4.1.2
            Summary|Duplicated warning on pure  |[9/10/11/12 Regression]
                   |virtual implicit template   |Duplicated warning on pure
                   |in C++2a                    |virtual template

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Even without concepts we have a duplicated error message:
struct S {
    template<int>
    virtual int foo(int) = 0;
};

We once warn for the virtual and then again for the = 0 part.

GCC 4.1.2 just to produce just:
<source>:3: error: invalid use of 'virtual' in template declaration of 'virtual
int S::foo(int)'

While GCC 4.4 and above produce:
<source>:3: error: templates may not be 'virtual'
<source>:3: error: templates may not be 'virtual'

So this is a regression even for the C++98 case.

Reply via email to