Support implicit _Atomic struct load / store
authorJF Bastien <jfbastien@apple.com>
Wed, 18 Jul 2018 18:01:41 +0000 (18:01 +0000)
committerJF Bastien <jfbastien@apple.com>
Wed, 18 Jul 2018 18:01:41 +0000 (18:01 +0000)
commit7d60a0f118b4ad23df106c8fcf69bcb1e951c180
treeeed35d20b9d803746995b5c27a4a12a88298a2dc
parenta747d3ca6011db00cb21489d1a4fa8b6cbcd2878
Support implicit _Atomic struct load / store

Summary:
Using _Atomic to do implicit load / store is just a seq_cst atomic_load / atomic_store. Stores currently assert in Sema::ImpCastExprToType with 'can't implicitly cast lvalue to rvalue with this cast kind', but that's erroneous. The codegen is fine as the test shows.

While investigating I found that Richard had found the problem here: https://reviews.llvm.org/D46112#1113557

<rdar://problem/40347123>

Reviewers: dexonsmith

Subscribers: cfe-commits, efriedma, rsmith, aaron.ballman

Differential Revision: https://reviews.llvm.org/D49458

llvm-svn: 337410
clang/lib/Sema/Sema.cpp
clang/test/CodeGen/atomic-ops.c