On 29.07.2025 15:02, Nicola Vetrini wrote: > On 2025-07-29 14:39, Jan Beulich wrote: >> On 29.07.2025 14:21, Dmytro Prokopchuk1 wrote: >>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl >>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl >>> @@ -367,6 +367,13 @@ constant expressions are required.\"" >>> } >>> -doc_end >>> >>> +-doc_begin="The conversion from 'void noreturn (*)(void *)' to 'void >>> (*)(void *)' is safe >>> +because the semantics of the 'noreturn' attribute do not alter the >>> calling convention or behavior of the resulting code." >>> +-config=MC3A2.R11.1,casts+={safe, >>> + >>> "kind(bitcast)&&to(type(pointer(inner(return(builtin(void))&&all_param(1, >>> pointer(builtin(void)))))))&&from(expr(skip(!syntactic(), >>> + ref(property(noreturn)))))"} >>> +-doc_end >> >> As I understand it, this is about any function, not just void (void *) >> ones. >> Hence throughout anything textual in this patch, may I ask that this be >> made >> explicit by inserting e.g. "e.g." everywhere? > > Technically yes, in practice other implicit function pointer conversions > would be caught by -Wincompatible-pointer-types and similar flags so > they don't even come into play. However I agree that adding that is > clearer.
Perhaps a misunderstanding: With "any" I meant any which has a noreturn attribute, when converted to one with otherwise the same signature. But irrespective of the particular return type or parameter types (i.e. specifically not just void (void *) ones). Jan