This attribute, named pass_dynamic_object_size has the same semantics as pass_object_size, except that it calls __builtin_dynamic_object_size at the caller instead of __builtin_object_size. You can read more about __builtin_dynamic_object_size here: https://clang.llvm.org/docs/LanguageExtensions.html#evaluating-object-size-dynamically, it was introduced in D56760.
rdar://48208787
Thanks for taking a look!
Erik
Why use a separate attribute as opposed to a separate spelling and an accessor on PassObjectSizeAttr to ask whether it's dynamic or not? The two attributes seem to have identical semantics aside from which builtin is called, so I think it makes sense to use the same semantic attribute type.