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

            Bug ID: 99318
           Summary: [10/11 Regression] -Wdeprecated-declarations where
                    non-should be?
           Product: gcc
           Version: 10.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gcc-bugs at marehr dot dialup.fu-berlin.de
  Target Milestone: ---

Hello gcc-team,

since gcc 10 the following code throws a deprecation warning, even though it
doesn't use any deprecated code.

```c++
template <typename derived_type>
class alphabet_base
{
    [[deprecated("message")]] unsigned char_to_rank_table(char const chr)
    {
        using index_t = unsigned;
        return derived_type::char_to_rank[static_cast<index_t>(chr)];
    }
};

```

gives the following warning:

```
<source>: In member function 'unsigned int
alphabet_base<derived_type>::char_to_rank_table(char)':
<source>:7:55: warning: 'unsigned int
alphabet_base<derived_type>::char_to_rank_table(char)' is deprecated: message
[-Wdeprecated-declarations]
    7 |         return derived_type::char_to_rank[static_cast<index_t>(chr)];
      |                                                       ^~~~~~~
<source>:4:40: note: declared here
    4 |     [[deprecated("message")]] unsigned char_to_rank_table(char const
chr)
      |                                        ^~~~~~~~~~~~~~~~~~
Compiler returned: 0
```

See https://godbolt.org/z/4cWzMr

Thank you!

Reply via email to