[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