jkorous added a comment.

In D125349#3509073 <https://reviews.llvm.org/D125349#3509073>, @aaron.ballman 
wrote:

> It's interesting to note that `an_atomic_uint = an_atomic_uint + 
> an_enum_value` works correctly: https://godbolt.org/z/cvP9e6nh7. I was trying 
> to figure out whether the atomic qualifier is properly stripped for the 
> compound operator. When I run under a debugger and dump the AST for 
> `Args[0]`, I get: `DeclRefExpr 0x26efcf87f88 '_Atomic(unsigned int)' lvalue 
> Var 0x26efcf44cb8 'an_atomic_uint' '_Atomic(unsigned int)'` which seems like 
> it may be the root cause of the problem here (tough to say given that this is 
> a C extension in C++ though). The lvalue conversion that takes place for 
> `an_atomic_uint` should drop the atomic qualifier per C2x 6.3.2.1p2.

Thank you for the suggestion! I'm looking into this.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D125349/new/

https://reviews.llvm.org/D125349

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to