std::atomic 负载中的段错误?

Segfault in std::atomic load?

在 linux 上,使用 gcc 4.8.4,使用 -std=c++11 -mcx16:

编译
#include <atomic>

struct node_t;

struct pointer_t {
        node_t* ptr;
        unsigned int count;
        pointer_t() noexcept : ptr{nullptr}, count{0} {}
};

struct empty {};

struct node_t {
        empty value;
        std::atomic<pointer_t> next;
        node_t() : next{pointer_t{}} {}
};

int main() {
        node_t{}.next.load();
        return 0;
}

在调用 load 时给出段错误。我要如何初始化一个原子值?

原来这是 gcc 中的一个 bug,此后已在 GCC 5.1 中得到修复。指定对齐方式为两个单词修复它。