[PATCH] D47229: Make atomic non-member functions as nonnull

JF Bastien via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu May 24 16:51:26 PDT 2018

jfb added inline comments.

Comment at: lib/Sema/SemaChecking.cpp:3497
+        else if (Form == Copy || Form == Xchg) {
+          if (!IsC11 && !IsN)
+            // The value pointer is always dereferenced, a nullptr is undefined.
rsmith wrote:
> arphaman wrote:
> > Nit: might make more sense to check if `ByValType` is a pointer here instead of duplicating the `if` condition from above.
> I think the suggestion was to check `ByValType->isPointerType()` here. But... that doesn't work, because we could have a pointer value being passed by value (where a null is allowed), rather than a value being passed by address (where a null is disallowed). I think this comparison is actually less clear than the `!IsC11 && !IsN` check; factoring out a `bool IsPassedByAddress` or similar instead would aid readability here.
I went with the `bool` as you suggested.

  rC Clang


More information about the cfe-commits mailing list