jfb added a comment. > My point is that this has nothing to do with the ordinary semantics of > `_Atomic`. You're basically just looking at the word "atomic" and saying > that, hey, a minimum access size is sortof related to atomicity. > > If you want this to be able to control the minimum access size, you should > allow that to be passed in as an optional argument instead.
OK so it sounds like you're suggesting *two* versions of the overloaded builtins: 1. `__builtin_memcpy_overloaded` which overloads on `volatile`, `restrict`, `__unaligned`, and address spaces, but **not** on `_Atomic` qualifiers. 2. `__builtin_atomic_memcpy_overloaded` which overloads on `volatile` (but unsupported for now), `restrict`, and address spaces, but **not** on `_Atomic` qualifiers (because it's implicit), and **not** on `__unaligned` because that's a constraint. This takes an extra "element size" parameter, which we hope folks don't confuse with the size parameter (I'd expect a template or macro wrapper to hide that extra parameter when actually using the builtin). Of course, that's two versions for each of `memcpy`, `memmove`, `memset`, and any other `*mem` that we decide to add to this list of overloadable functions. Is that correct? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D79279/new/ https://reviews.llvm.org/D79279 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
