The MallocChecker does not currently detect freeing of function pointers.
Example code.
void (*fnptr)(int);
void freeIndirectFunctionPtr() {
void *p = (void*)fnptr;
free(p); // expected-warning {{Argument to free() points to a function pointer}}
}
Nope, it doesn't point to a function pointer. It's still the same function pointer.
Also, freeing a pointer to a function pointer is not a bug.