]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 21_strings / basic_string / pthread18185.cc
CommitLineData
c137586a 1//
83ffe9cd 2// Copyright (C) 2004-2023 Free Software Foundation, Inc.
c137586a
MV
3//
4// This file is part of the GNU ISO C++ Library. This library is free
5// software; you can redistribute it and/or modify it under the
6// terms of the GNU General Public License as published by the
748086b7 7// Free Software Foundation; either version 3, or (at your option)
c137586a
MV
8// any later version.
9//
10// This library is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License along
748086b7
JJ
16// with this library; see the file COPYING3. If not see
17// <http://www.gnu.org/licenses/>.
c137586a 18
d1236680
RO
19// { dg-do run }
20// { dg-options "-pthread" }
21// { dg-require-effective-target pthread }
c137586a
MV
22
23#include <ext/new_allocator.h>
24#include <string>
25#include <pthread.h>
26
e7c59a0e
PC
27static void*
28foo (void*)
c137586a
MV
29{
30 typedef std::char_traits<char> traits_type;
31 typedef __gnu_cxx::new_allocator<char> allocator_type;
32 typedef std::basic_string<char, traits_type, allocator_type> string_type;
33 try
34 {
35 throw string_type("leak");
36 }
37 catch (const string_type&)
38 {
39 pthread_exit (0);
40 }
4f962139 41 return 0; // See libstdc++/83450
c137586a
MV
42}
43
44// c++/18185
45// This used to leak memory.
46int
47main ()
48{
49 pthread_t t;
e7c59a0e
PC
50 pthread_create (&t, 0, foo, 0);
51 pthread_join (t, 0);
c137586a
MV
52 return 0;
53}