private Identifier getFakePointerName(Identifier name) {

    String nameStr = name == null ? null : name.toString();
    String trimmed = StringUtils.trimUnderscores(nameStr);
    if (trimmed != null && !nameStr.equals(trimmed)) {
      String nicerName = trimmed;
      Pair<TypeDef, Declarator> pair = typeDefs.get(nicerName);
      if (pair != null) {
        TypeRef targetType = pair.getFirst().getValueType();
        String target = targetType.toString();
        if (target.equals(nameStr + "*") || target.equals(nameStr))
          name = ident(nameStr = nicerName);
      }
    }
    return name;
  }
 protected void collectParamComments(Function f) {
   for (Arg arg : f.getArgs()) {
     arg.moveAllCommentsBefore();
     TypeRef argType = arg.getValueType();
     if (argType != null) {
       if (!result.config.noComments) {
         argType.moveAllCommentsBefore();
         arg.addToCommentBefore(argType.getCommentBefore());
       }
       argType.stripDetails();
     }
     if (arg.getCommentBefore() != null) {
       if (!result.config.noComments)
         f.addToCommentBefore(
             "@param " + arg.getName() + " " + Element.cleanComment(arg.getCommentBefore()));
       arg.stripDetails();
     }
   }
 }