re PR libstdc++/64658 (std::atomic_init() undefined)

PR libstdc++/64658
	* include/std/atomic (atomic_init): Define.
	* testsuite/29_atomics/atomic/64658.cc: New.

From-SVN: r219886
This commit is contained in:
Jonathan Wakely 2015-01-20 11:50:43 +00:00 committed by Jonathan Wakely
parent f1691f6c78
commit 0e4974d62e
3 changed files with 39 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2015-01-20 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/64658
* include/std/atomic (atomic_init): Define.
* testsuite/29_atomics/atomic/64658.cc: New.
2015-01-19 Tim Shen <timshen@google.com>
PR libstdc++/64649

View File

@ -921,11 +921,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _ITp>
inline void
atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept;
atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept
{ __a->store(__i, memory_order_relaxed); }
template<typename _ITp>
inline void
atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept;
atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept
{ __a->store(__i, memory_order_relaxed); }
template<typename _ITp>
inline void

View File

@ -0,0 +1,29 @@
// Copyright (C) 2015 Free Software Foundation, Inc.
//
// 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 3, 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 COPYING3. If not see
// <http://www.gnu.org/licenses/>.
// { dg-require-atomic-builtins "" }
// { dg-options "-std=gnu++11" }
// { dg-do link }
#include <atomic>
int
main()
{
std::atomic<int> i;
atomic_init(&i, 0);
}