[PATCHv2 3/7] hurd: make function cast stronger

Samuel Thibault samuel.thibault@gnu.org
Sat May 30 15:32:13 GMT 2020


Simon Marchi, le sam. 30 mai 2020 10:47:50 -0400, a ecrit:
> On 2020-05-29 6:01 p.m., Samuel Thibault wrote:
> > process_reply_S.c:104:23: error: function called through a non-compatible type [-Werror]
> >   104 |      OutP->RetCode = (*(kern_return_t (*)(mach_port_t, kern_return_t)) S_proc_setmsgport_reply) (In0P->Head.msgh_request_port, In0P-
> > 
> > gdb/ChangeLog:
> > 
> > 2020-05-29  Samuel Thibault  <samuel.thibault@ens-lyon.org>
> > 
> > 	* reply_mig_hack.awk (Error return): Cast function through
> > 	void *, to bypass compiler function call check.
> 
> If you are silencing a compiler warning, please explain why it is safe to do so.

It is not actually safe, as explained by the comment above the changed
lines, but as explained by the comment above really fixing it is very
far from trivial.

In my repo I have added

“
As the existing comment says, it is in general not safe to drop some parameters
like this, but this is the error handling case, where the called function does
not actually read them, and mig is currently planned to be used on i386 and
x86_64 only, where this is not a problem. As the existing comment says, fixing
it properly would be far from trivial: we can't just pass 0 for them, as they
might not be scalar.
”

Is that enough of an explanation for the changelog?

Samuel


More information about the Gdb-patches mailing list