Why not just put the FUNC_ATTR_PRINTF(1, 2) in the definition and skip this declaration ?