[Bug libstdc++/57250] New: [C++11] std::shared_ptr misses atomic_* support
daniel.kruegler at googlemail dot com
gcc-bugzilla@gcc.gnu.org
Sat May 11 12:21:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57250
Bug ID: 57250
Summary: [C++11] std::shared_ptr misses atomic_* support
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: daniel.kruegler at googlemail dot com
Consider this as a reminder bug entry to provide the atomic_* overloads for
std::shared_ptr. A minimal test case could be:
#include <memory>
int main() {
const std::shared_ptr<int> p;
bool is_lock_free = std::atomic_is_lock_free(&p);
std::shared_ptr<int> p2 = std::atomic_load(&p);
std::shared_ptr<int> p3 = std::atomic_load_explicit(&p,
std::memory_order_seq_cst);
std::atomic_store(&p2, p);
std::atomic_store_explicit(&p2, p, std::memory_order_seq_cst);
std::shared_ptr<int> p4 = std::atomic_exchange(&p2, p);
p4 = std::atomic_exchange_explicit(&p2, p, std::memory_order_seq_cst);
bool chk = std::atomic_compare_exchange_weak(&p2, &p3, p);
chk = std::atomic_compare_exchange_strong(&p2, &p3, p);
chk = std::atomic_compare_exchange_weak_explicit(&p2, &p3, p,
std::memory_order_seq_cst, std::memory_order_seq_cst);
chk = std::atomic_compare_exchange_strong_explicit(&p2, &p3, p,
std::memory_order_seq_cst, std::memory_order_seq_cst);
}
More information about the Gcc-bugs
mailing list