daniel-petrovic wrote:

The statement expression should always provide r-value: 
https://clang.llvm.org/doxygen/classclang_1_1StmtExpr.html#details

According https://en.cppreference.com/w/c/language/atomic:

> Atomic properties are only meaningful for [lvalue 
> expressions](https://en.cppreference.com/w/c/language/value_category). 
> Lvalue-to-rvalue conversion (which models a memory read from an atomic 
> location to a CPU register) strips atomicity along with other qualifiers.

To me it looks like that atomicity in StmExpr is not stripped away, but it 
should. 

E.g. : https://godbolt.org/z/WPdh9Yx5h

` `-RecoveryExpr <col:12, col:23> 'char' contains-errors
        `-StmtExpr <col:12, col:23> 'atomic_char':'_Atomic(char)'`



https://github.com/llvm/llvm-project/pull/106751
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to