From: Jason Merrill Date: Thu, 31 Mar 2022 22:15:24 +0000 (-0400) Subject: c++: dump alias-declaration scope X-Git-Tag: basepoints/gcc-14~7166 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ac5b356d0567992d8863816e203c7d98b25036dc;p=thirdparty%2Fgcc.git c++: dump alias-declaration scope An alias can't be declared with a qualified-id in actual code, but in diagnostics we want to know which scope it belongs to, and I think a nested-name-specifier is the best way to provide that. gcc/cp/ChangeLog: * error.cc (dump_decl): Check TFF_UNQUALIFIED_NAME. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/alias-decl-1.C: Expect qualified name. --- diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc index 1e944ca3f750..2b07136b5ca7 100644 --- a/gcc/cp/error.cc +++ b/gcc/cp/error.cc @@ -1246,6 +1246,8 @@ dump_decl (cxx_pretty_printer *pp, tree t, int flags) || flags & TFF_CLASS_KEY_OR_ENUM)) { pp_cxx_ws_string (pp, "using"); + if (! (flags & TFF_UNQUALIFIED_NAME)) + dump_scope (pp, CP_DECL_CONTEXT (t), flags); dump_decl (pp, DECL_NAME (t), flags); pp_cxx_whitespace (pp); pp_cxx_ws_string (pp, "="); diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-1.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-1.C index 24b052092237..6dcb780e8955 100644 --- a/gcc/testsuite/g++.dg/cpp0x/alias-decl-1.C +++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-1.C @@ -12,5 +12,5 @@ template struct Ptr {}; // { dg-error "specialization" } struct A { using A = int; // { dg-error "11:ISO C\\+\\+ forbids nested type .A." } -// { dg-error "11:.using A = int. has the same name as" "" { target c++11 } .-1 } +// { dg-error "11:.using A::A = int. has the same name as" "" { target c++11 } .-1 } };