Eli Zaretskii wrote:
> Building the latest pretest of wget2 on MinGW produces the following
> warning:
> 
>        CC       glob.lo
>      glob.c: In function 'glob_in_dir':
>      glob.c:1331:32: warning: case label value exceeds maximum value for type
>                       case DT_DIR: case DT_LNK: case DT_UNKNOWN: break;
>                                    ^~~~
> 
> This is because glob.c unconditionally defines dirent_type data
> type as follows:
> 
>   typedef uint_fast8_t dirent_type;
> 
> But if system header dirent.h is found to define the d_type member of
> struct dirent, the type should be the same as for d_type, or at least
> as wide as that of d_type, otherwise the DT_* constants, which come
> from dirent.h, might be outside the valid range of values for unsigned
> char.

The comments in 
https://sourceforge.net/p/mingw/mingw-org-wsl/ci/5.1-trunk/tree/mingwrt/include/dirent.h#l137
say that these d_type values >= 0x100 "will never" be assigned by
the opendir()/readdir() implementation. So, since these values actually
never occur, the warning is harmless.

Bruno


Reply via email to