[PATCH] D125349: [Sema] Fix crash for C11 atomic in gnu++ mode

Jan Korous via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 18 15:30:14 PDT 2022


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



More information about the cfe-commits mailing list