re PR libstdc++/39405 (std::shared_ptr barfs on incomplete template class that boost::shared_ptr accepts)

2009-03-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/39405
	* testsuite/20_util/shared_ptr/cons/39405.cc: New.
	* testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc: Likewise.

From-SVN: r144839
This commit is contained in:
Paolo Carlini 2009-03-13 15:01:50 +00:00 committed by Paolo Carlini
parent ba4905b4c3
commit ab4c19d241
3 changed files with 67 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2009-03-13 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/39405
* testsuite/20_util/shared_ptr/cons/39405.cc: New.
* testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc: Likewise.
2009-03-12 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/30_threads/condition_variable_any/native_handle/

View File

@ -0,0 +1,31 @@
// { dg-options "-std=gnu++0x" }
// { dg-do compile }
// Copyright (C) 2009 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
#include <memory>
// libstdc++/39405
template<typename T>
struct foo
{
std::shared_ptr<foo<T> > m_foo;
};
std::shared_ptr<foo<int> > t;

View File

@ -0,0 +1,30 @@
// { dg-do compile }
// Copyright (C) 2009 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
#include <tr1/memory>
// libstdc++/39405
template<typename T>
struct foo
{
std::tr1::shared_ptr<foo<T> > m_foo;
};
std::tr1::shared_ptr<foo<int> > t;