diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 36e16590b04..019e9000d04 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-05-30 Samuel Thibault + + * reply_mig_hack.awk (Error return): Cast function through + void *, to bypass compiler function call check. + 2020-05-30 Samuel Thibault * config/i386/i386gnu.mn (%_reply_S.c): Add dependency on diff --git a/gdb/reply_mig_hack.awk b/gdb/reply_mig_hack.awk index 52ab90bba39..6ff683a841b 100644 --- a/gdb/reply_mig_hack.awk +++ b/gdb/reply_mig_hack.awk @@ -130,7 +130,8 @@ parse_phase == 5 && /^#if[ \t]TypeCheck/ { # two arguments. # This is possibly bogus, but easier than supplying bogus values for all # the other args (we can't just pass 0 for them, as they might not be scalar). - print "\t OutP->RetCode = (*(kern_return_t (*)(mach_port_t, kern_return_t)) " user_function_name ") (In0P->Head.msgh_request_port, In0P->" arg_name[0] ");"; + print "\t void * __error_call = " user_function_name ";"; + print "\t OutP->RetCode = (*(kern_return_t (*)(mach_port_t, kern_return_t)) __error_call) (In0P->Head.msgh_request_port, In0P->" arg_name[0] ");"; print "\t return;"; print "\t }"; print "";