I don't think clang should emit an "unused function" warning when the function is declared as a constructor or a destructor (using Constructor/Destructor Attr).
Here is a patch that prevent warning and (used add two cases in the warn-unused-function.c test).
unused.patch (1.1 KB)