public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/60786] New: In C++11 an explicit instantiation with an unqualified name must be in the right namespace
@ 2014-04-08 12:20 redi at gcc dot gnu.org
2014-04-15 19:06 ` [Bug c++/60786] " redi at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: redi at gcc dot gnu.org @ 2014-04-08 12:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60786
Bug ID: 60786
Summary: In C++11 an explicit instantiation with an unqualified
name must be in the right namespace
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Keywords: accepts-invalid
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: redi at gcc dot gnu.org
This should not be accepted in C++11 mode:
namespace A {
template<typename T> struct B { };
}
using A::B;
template class B<int>;
[temp.explicit] p3:
"An explicit instantiation shall appear in an enclosing namespace of its
template. If the name declared in the explicit instantiation is an unqualified
name, the explicit instantiation shall appear in the namespace where its
template is declared or, if that namespace is inline (7.3.1), any namespace
from its enclosing namespace set."
This is a change from C++03:
"A definition of a class template or class member template shall be in scope at
the point of the explicit instantiation of the class template or class member
template."
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/60786] In C++11 an explicit instantiation with an unqualified name must be in the right namespace
2014-04-08 12:20 [Bug c++/60786] New: In C++11 an explicit instantiation with an unqualified name must be in the right namespace redi at gcc dot gnu.org
@ 2014-04-15 19:06 ` redi at gcc dot gnu.org
2014-04-15 19:08 ` redi at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: redi at gcc dot gnu.org @ 2014-04-15 19:06 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60786
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Tue Apr 15 19:05:45 2014
New Revision: 209431
URL: http://gcc.gnu.org/viewcvs?rev=209431&root=gcc&view=rev
Log:
PR c++/60786
* testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
1.cc: Fix invalid explicit instantiations with unqualified names.
* testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
2.cc: Likweise.
* testsuite/20_util/tuple/53648.cc: Likweise.
* testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
Likewise.
* testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
Likewise.
* testsuite/23_containers/unordered_map/requirements/
debug_container.cc: Likewise.
* testsuite/23_containers/unordered_map/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/debug.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_multiset/requirements/debug.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/
debug_container.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/
explicit_instantiation/3.cc: Likewise.
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc
trunk/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc
trunk/libstdc++-v3/testsuite/20_util/tuple/53648.cc
trunk/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc
trunk/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc
trunk/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc
trunk/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc
trunk/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc
trunk/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc
trunk/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc
trunk/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc
trunk/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc
trunk/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/60786] In C++11 an explicit instantiation with an unqualified name must be in the right namespace
2014-04-08 12:20 [Bug c++/60786] New: In C++11 an explicit instantiation with an unqualified name must be in the right namespace redi at gcc dot gnu.org
2014-04-15 19:06 ` [Bug c++/60786] " redi at gcc dot gnu.org
@ 2014-04-15 19:08 ` redi at gcc dot gnu.org
2014-12-14 15:37 ` ville.voutilainen at gmail dot com
2021-08-04 20:42 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: redi at gcc dot gnu.org @ 2014-04-15 19:08 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60786
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I've fixed the libstdc++ tests so they don't rely on this bug
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/60786] In C++11 an explicit instantiation with an unqualified name must be in the right namespace
2014-04-08 12:20 [Bug c++/60786] New: In C++11 an explicit instantiation with an unqualified name must be in the right namespace redi at gcc dot gnu.org
2014-04-15 19:06 ` [Bug c++/60786] " redi at gcc dot gnu.org
2014-04-15 19:08 ` redi at gcc dot gnu.org
@ 2014-12-14 15:37 ` ville.voutilainen at gmail dot com
2021-08-04 20:42 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: ville.voutilainen at gmail dot com @ 2014-12-14 15:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60786
Ville Voutilainen <ville.voutilainen at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-12-14
CC| |ville.voutilainen at gmail dot com
Ever confirmed|0 |1
Known to fail| |4.8.2, 4.9.1, 5.0
--- Comment #3 from Ville Voutilainen <ville.voutilainen at gmail dot com> ---
Clang rejects the code.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/60786] In C++11 an explicit instantiation with an unqualified name must be in the right namespace
2014-04-08 12:20 [Bug c++/60786] New: In C++11 an explicit instantiation with an unqualified name must be in the right namespace redi at gcc dot gnu.org
` (2 preceding siblings ...)
2014-12-14 15:37 ` ville.voutilainen at gmail dot com
@ 2021-08-04 20:42 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-08-04 20:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60786
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Target Milestone|--- |7.0
Resolution|--- |DUPLICATE
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
In GCC7+, we started having a pedantic warning (only with -pedantic or
-Wpedantic):
<source>:6:16: warning: explicit instantiation of 'template<class T> struct
A::B' outside its namespace must use a nested-name-specifier [-Wpedantic]
template class B<int>;
^~~~~~
This is a dup of bug 56480.
*** This bug has been marked as a duplicate of bug 56480 ***
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-08-04 20:42 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-08 12:20 [Bug c++/60786] New: In C++11 an explicit instantiation with an unqualified name must be in the right namespace redi at gcc dot gnu.org
2014-04-15 19:06 ` [Bug c++/60786] " redi at gcc dot gnu.org
2014-04-15 19:08 ` redi at gcc dot gnu.org
2014-12-14 15:37 ` ville.voutilainen at gmail dot com
2021-08-04 20:42 ` pinskia at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).