static __always_inline size_t
__alloc_buffer_assert_size (size_t size)
{
+ /* clang does not presently support the __error__ attribute, and for
+ some reason the fallback case for __errordecl results in error()
+ being called unconditionally. So skip over this for now. */
+#ifndef __clang__
if (!__builtin_constant_p (size))
{
__errordecl (error, "type size is not constant");
__errordecl (error, "type size is zero");
error ();
}
+#endif
return size;
}
static __always_inline size_t
__alloc_buffer_assert_align (size_t align)
{
+ /* As above - skip until we have a better idea for clang here. */
+#ifndef __clang__
if (!__builtin_constant_p (align))
{
__errordecl (error, "type alignment is not constant");
__errordecl (error, "type alignment is not a power of two");
error ();
}
+#endif
return align;
}