]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/30_threads/call_once/dr2442.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 30_threads / call_once / dr2442.cc
CommitLineData
93e79ed3 1// { dg-do run { target c++11 } }
1e42d2f4 2// { dg-additional-options "-pthread" { target pthread } }
164b41eb 3
99dee823 4// Copyright (C) 2016-2021 Free Software Foundation, Inc.
164b41eb
JW
5//
6// This file is part of the GNU ISO C++ Library. This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
9// Free Software Foundation; either version 3, or (at your option)
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License along
18// with this library; see the file COPYING3. If not see
19// <http://www.gnu.org/licenses/>.
20
21#include <mutex>
22#include <testsuite_hooks.h>
23
24void f(int& a, int&& b) { a = 1; b = 2; }
25
26void
27test01()
28{
29 // LWG 2442. call_once() shouldn't DECAY_COPY()
30 std::once_flag once;
31 int i = 0;
32 int j = 0;
33 call_once(once, f, i, std::move(j));
34 VERIFY( i == 1 );
35 VERIFY( j == 2 );
36}
37
38int
39main()
40{
41 test01();
42}