re PR c++/36655 (unjustified warning for "extern template" when using -pedantic -std=c++0x)
/cp 2008-06-29 Paolo Carlini <paolo.carlini@oracle.com> PR c++/36655 * pt.c (do_type_instantiation): In c++0x mode do not warn for extern template. /testsuite 2008-06-29 Paolo Carlini <paolo.carlini@oracle.com> PR c++/36655 * g++.dg/cpp0x/extern_template-2.C: New. * g++.dg/cpp0x/extern_template.C: Rename to... * g++.dg/cpp0x/extern_template-1.C: ... this. From-SVN: r137261
This commit is contained in:
parent
323ff90332
commit
1ffe7b6ed2
5 changed files with 28 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2008-06-29 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/36655
|
||||
* pt.c (do_type_instantiation): In c++0x mode do not warn for
|
||||
extern template.
|
||||
|
||||
2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* Make-lang.in (cp-warn): Delete $(CXX_COMPAT_WARN).
|
||||
|
|
13
gcc/cp/pt.c
13
gcc/cp/pt.c
|
@ -14676,8 +14676,17 @@ do_type_instantiation (tree t, tree storage, tsubst_flags_t complain)
|
|||
if (storage != NULL_TREE)
|
||||
{
|
||||
if (pedantic && !in_system_header)
|
||||
pedwarn("ISO C++ forbids the use of %qE on explicit instantiations",
|
||||
storage);
|
||||
{
|
||||
if (storage == ridpointers[(int) RID_EXTERN])
|
||||
{
|
||||
if (cxx_dialect == cxx98)
|
||||
pedwarn("ISO C++ 1998 forbids the use of %<extern%> on "
|
||||
"explicit instantiations");
|
||||
}
|
||||
else
|
||||
pedwarn("ISO C++ forbids the use of %qE on explicit "
|
||||
"instantiations", storage);
|
||||
}
|
||||
|
||||
if (storage == ridpointers[(int) RID_INLINE])
|
||||
nomem_p = 1;
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2008-06-29 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/36655
|
||||
* g++.dg/cpp0x/extern_template-2.C: New.
|
||||
* g++.dg/cpp0x/extern_template.C: Rename to...
|
||||
* g++.dg/cpp0x/extern_template-1.C: ... this.
|
||||
|
||||
2008-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/36341
|
||||
|
|
4
gcc/testsuite/g++.dg/cpp0x/extern_template-2.C
Normal file
4
gcc/testsuite/g++.dg/cpp0x/extern_template-2.C
Normal file
|
@ -0,0 +1,4 @@
|
|||
// { dg-options "-std=c++0x -pedantic" }
|
||||
|
||||
template <typename> class S {};
|
||||
extern template class S<int>;
|
Loading…
Add table
Reference in a new issue