AaronBallman wrote:

> I think the conversion is dropped in `Sema::CheckAssignmentConstraints`. It 
> isn't assigning `CK_NonAtomicToAtomic` to `Kind` because `result` is 
> `AssignConvertType::CompatibleVoidPtrToNonVoidPtr`, not 
> `AssignConvertType::Compatible`.
> 
> ```
>   // If we have an atomic type, try a non-atomic assignment, then just add an
>   // atomic qualification step.
>   if (const AtomicType *AtomicTy = dyn_cast<AtomicType>(LHSType)) {
>     AssignConvertType result =
>         CheckAssignmentConstraints(AtomicTy->getValueType(), RHS, Kind);
>     if (result != AssignConvertType::Compatible)
>       return result;
> ```

Thank you for the investigation, that's definitely it!

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

Reply via email to