[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] misra/eclair: set 'noreturn' attribute as safe during cast
On 7/29/25 11:04, Jan Beulich wrote: > On 29.07.2025 00:15, Dmytro Prokopchuk1 wrote: >> ECLAIR reports a non-compliant cast due to the presence >> of the 'noreturn' attribute in the callee function. > > Which callee function? Which cast? Please be concrete. You don't need > to enumerate all case, but one specific example wants pointing at. > >> The issue occurs when casting a function pointer with >> the 'noreturn' attribute (void noreturn (*)(void *)) >> to a general function pointer type (void (*)(void *)). > > And again - why "casting"? As per ... > >> Configure ECLAIR to treat 'noreturn' attributes as safe >> in this conversion. >> >> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@xxxxxxxx> >> --- >> Previous discussion thread: >> https://patchew.org/Xen/181a03d5c7625d42c06cf9fa0cf48a9bc6825361.1753647875.git.dmytro._5Fprokopchuk1@xxxxxxxx/ > > ... there was no cast involved, iirc. We specifically rejected your > attempt to add a cast there. It's a conversion the compiler does, aiui. > > Jan Yes, you are right. Word "cast" is not appropriate there. Below is updated text: misra: allow 'noreturn' as safe for function pointer conversions The conversion from a function pointer with the 'noreturn' attribute ('void noreturn (*)(void *)') to a function pointer type ('void (*)(void *)' causes type incompatibility according to MISRA C Rule 11.1, which forbids conversions between incompatible function pointer types. The violation occurs at the call site smp_call_function(halt_this_cpu, NULL, 0); where 'halt_this_cpu' with type 'void noreturn (*)(void *)' is passed to 'smp_call_function' expecting a function pointer of type 'void (*)(void *)'. The 'noreturn' attribute does not change the function calling convention or parameter handling at runtime, making the conversion safe. Configure ECLAIR to treat 'noreturn' attributes as safe. Dmytro.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |