https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109335
--- Comment #2 from Alejandro Colomar <alx at kernel dot org> --- This is probably because there's no way to mark a function as being a valid deallocator (i.e., the converse of [[gnu::malloc()]]). As a workaround, such deallocators could be defined (C99) inline, so that the analyzer can see that they are internally calling the actual deallocator, but that's hard when the deallocator is in a library, which might support C89, as is probably the case in libbsd.