gzFile is already a pointer, so code like
gzFile *handle = gzopen(...)
is wrong.
This used to pass silently because gzFile used to be defined as void*,
and you can assign a void* to a void**.  But somewhere between zlib
versions 1.2.3.4 and 1.2.6, the definition of gzFile was changed to
struct gzFile_s *, and with that new definition this usage causes
compiler warnings.
So remove all those extra pointer decorations.
There is a related issue in pg_backup_archiver.h, where
FILE       *FH;             /* General purpose file handle */
is used throughout pg_dump as sometimes a real FILE* and sometimes a
gzFile handle, which also causes warnings now.  This is not yet fixed
here, because it might need more code restructuring.
 
 #ifdef HAVE_LIBZ
 static const char *
-get_gz_error(gzFile *gzf)
+get_gz_error(gzFile gzf)
 {
        int                     errnum;
        const char *errmsg;
        FILE       *tarfile = NULL;
 
 #ifdef HAVE_LIBZ
-       gzFile     *ztarfile = NULL;
+       gzFile          ztarfile = NULL;
 #endif
 
        if (PQgetisnull(res, rownum, 0))
 
 typedef struct
 {
 #ifdef HAVE_LIBZ
-       gzFile     *FH;
+       gzFile          FH;
 #else
        FILE       *FH;
 #endif
 
 #define K_STD_BUF_SIZE 1024
 
 
+typedef struct
+{
 #ifdef HAVE_LIBZ
- /* typedef gzFile      ThingFile; */
-typedef FILE ThingFile;
+       gzFile          zFH;
 #else
-typedef FILE ThingFile;
+       FILE       *zFH;
 #endif
-
-typedef struct
-{
-       ThingFile  *zFH;
        FILE       *nFH;
        FILE       *tarFH;
        FILE       *tmpFH;