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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=84360

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
namespace v2
{
  template<typename T> struct blargle { };
}

namespace v1
{
  template<typename _Tp>
    using blargle [[deprecated("use v2::blargle instead of v1::blargle")]]
      = v2::blargle<_Tp>;
}

v1::blargle<int> a;


da.C:13:18: warning: 'using blargle = struct v2::blargle<int>' is deprecated:
use v2::blargle instead of v1::blargle [-Wdeprecated-declarations]
   13 | v1::blargle<int> a;
      |                  ^
da.C:9:11: note: declared here
    9 |     using blargle [[deprecated("use v2::blargle instead of
v1::blargle")]]
      |           ^~~~~~~


The expanded using-declaration is especially unhelpful when it re-uses the same
name in a different namespace. It would be better to print the type including
its namespace qualification:

warning: 'v1::blargle' is deprecated: ...

Maybe related to PR 84360

Reply via email to