================ @@ -839,6 +839,12 @@ def BuiltinAssumeAligned : Builtin { let Prototype = "void*(void const*, size_t, ...)"; } +def BuiltinAssumeDereferenceable : Builtin { + let Spellings = ["__builtin_assume_dereferenceable"]; + let Attributes = [NoThrow, Const, Constexpr]; ---------------- philnik777 wrote:
I think we should make sure that the claimed range is actually dereferenceable, just like we check in `__builtin_assume_aligned` that that pointer is actually guaranteed to be aligned properly. I don't know how complicated that would be. https://github.com/llvm/llvm-project/pull/121789 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits