[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New warnings on emacs-26 branch with gcc 8.2.0
From: |
Eli Zaretskii |
Subject: |
Re: New warnings on emacs-26 branch with gcc 8.2.0 |
Date: |
Sat, 11 Aug 2018 20:15:44 +0300 |
> From: Andy Moreton <address@hidden>
> Date: Sat, 11 Aug 2018 16:02:03 +0100
>
> On Sat 11 Aug 2018, Eli Zaretskii wrote:
>
> >> From: Andy Moreton <address@hidden>
> >> Date: Sat, 11 Aug 2018 11:41:20 +0100
> >>
> >> > OK, I've now done so. Andrew, please see if this fixes the original
> >> > problem with this warning.
> >>
> >> Yes, that ha removed that batch of warnings.
> >
> > Thanks for testing.
> >
> >> There are still other warnings: one from -Wformat-overflow and 78 from
> >> -Wcast-function-type.
> >
> > Can you show the warnings from -Wcast-function-type?
>
> Here are the warnings from commit ec6f588940e5, built with gcc 8.2.0.
> Mostly this seems to be GetProcAddress results, where it complains that
> FARPROC and the desired fuinction type don't match. The gcc manual says
> that casting via "void (*)(void)" can be used to pacify the warning.
>
>
> CC dynlib.o
> C:/emacs/git/emacs/emacs-26/src/dynlib.c: In function 'dynlib_addr':
> C:/emacs/git/emacs/emacs-26/src/dynlib.c:160:6: warning: cast between
> incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to
> 'BOOL (*)(DWORD, const CHAR *, struct HINSTANCE__ **)' {aka 'int (*)(long
> unsigned int, const char *, struct HINSTANCE__ **)'} [-Wcast-function-type]
> (GetModuleHandleExA_Proc) GetProcAddress (hm_kernel32,
> ^
Does it help to take the GetProcAddress call in parentheses, like
this:
s_pfn_Get_Module_HandleExA =
(GetModuleHandleExA_Proc) (GetProcAddress (hm_kernel32,
"GetModuleHandleExA"));
?
If this doesn't help, what about removing the cast entirely?
In any case, I think it's a GCC bug: it thinks we are type-casting the
function being called, which is GetProcAddress, whereas what we really
want to do is cast the _value_ the function returns.
Thanks.
- Re: New warnings on emacs-26 branch with gcc 8.2.0, (continued)
Re: New warnings on emacs-26 branch with gcc 8.2.0, Eli Zaretskii, 2018/08/05
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Paul Eggert, 2018/08/05
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Eli Zaretskii, 2018/08/11
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Andy Moreton, 2018/08/11
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Eli Zaretskii, 2018/08/11
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Andy Moreton, 2018/08/11
- Re: New warnings on emacs-26 branch with gcc 8.2.0,
Eli Zaretskii <=
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Andy Moreton, 2018/08/11
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Eli Zaretskii, 2018/08/11
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Andy Moreton, 2018/08/11
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Andy Moreton, 2018/08/11
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Eli Zaretskii, 2018/08/11
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Andy Moreton, 2018/08/14
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Andy Moreton, 2018/08/14
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Paul Eggert, 2018/08/14
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Eli Zaretskii, 2018/08/17
- Re: New warnings on emacs-26 branch with gcc 8.2.0, Bruno Haible, 2018/08/18