emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

New warnings on emacs-26 branch with gcc 8.2.0


From: Andy Moreton
Subject: New warnings on emacs-26 branch with gcc 8.2.0
Date: Sun, 05 Aug 2018 17:33:56 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (windows-nt)

MSYS2 has recently updated to gcc 8.2.0, and this has introduced a
number of new warnings on the emacs-26 branch.

1) 138 warnings about misuse of "-Wabi":

cc1.exe: warning: -Wabi won't warn about anything [-Wabi]
cc1.exe: note: -Wabi warns about differences from the most up-to-date ABI, 
which is also used by default
cc1.exe: note: use e.g. -Wabi=11 to warn about changes from GCC 7

The configury is full of a large amount of code to tune warnings, most
of which seems to be turning off things that should not have been turned
on or checked for in the first place. On Windows, bootstrapping takes an
age due to the checking of every last possible gcc warning.

Can this be simplified to be less over-zealous and less time consuming ?


2) 76 warnings from use of "-Wcast-function-type", e.g.

751:C:/emacs/git/emacs/emacs-26/lib/gettimeofday.c:48:2: warning: cast between 
incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to 'void 
(*)(FILETIME *)' {aka 'void (*)(struct _FILETIME *)'} [-Wcast-function-type]

Most of these seem to be from GetProcAddress calls, where the desired
function pointer type does not match FARPROC. The gcc docs note:

    The function type void (*) (void) is special and matches
    everything, which can be used to suppress this warning.

As a workaround, this seems worse than the original problem. Can this
warning be disabled, or applied more selectively ?

There is one warning that is not related to GetProcAddress:

C:/emacs/git/emacs/emacs-26/src/emacs-module.c: In function 'Fmodule_load':
C:/emacs/git/emacs/emacs-26/src/emacs-module.c:708:17: warning: cast between 
incompatible function types from 'dynlib_function_ptr' {aka 'struct 
dynlib_function_ptr_nonce * (*)(void)'} to 'int (*)(struct emacs_runtime *)' 
[-Wcast-function-type]
   module_init = (emacs_init_function) dynlib_func (handle, 
"emacs_module_init");
                 ^
This last one appears to be showing a real problem.

    AndyM




reply via email to

[Prev in Thread] Current Thread [Next in Thread]