private ICPPASTFunctionDeclarator findFunctionDeclarator() {
    if (declarations != null) {
      for (IASTDeclarator dtor : declarations) {
        if (dtor == null) break;

        dtor = ASTQueries.findOutermostDeclarator(dtor);
        IASTDeclaration decl = (IASTDeclaration) dtor.getParent();
        if (decl.getParent() instanceof ICPPASTCompositeTypeSpecifier) {
          dtor = ASTQueries.findTypeRelevantDeclarator(dtor);
          if (dtor instanceof ICPPASTFunctionDeclarator) {
            return (ICPPASTFunctionDeclarator) dtor;
          }
        }
      }
    }
    return definition;
  }