On 14.11.2023 00:44, Stefano Stabellini wrote:
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -383,6 +383,38 @@ maintainers if you want to suggest a change.
>  
>         CFLAGS="-Warith-conversion -Wno-error=arith-conversion" make -C xen
>  
> +   * - `Rule 11.1 
> <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_01.c>`_
> +     - Required
> +     - Conversions shall not be performed between a pointer to a
> +       function and any other type
> +     - All conversions to integer types are permitted if the destination
> +       type has enough bits to hold the entire value. Conversions to
> +       bool and void* are permitted.
> +
> +   * - `Rule 11.2 
> <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_02.c>`_
> +     - Required
> +     - Conversions shall not be performed between a pointer to an
> +       incomplete type and any other type
> +     - All conversions to integer types are permitted if the destination
> +       type has enough bits to hold the entire value. Conversions to
> +       bool and void* are permitted.

Assuming the rule's exception 2 really means void, not void*, the mentioning
of void* here is still fine.

> +   * - `Rule 11.3 
> <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_03.c>`_
> +     - Required
> +     - A cast shall not be performed between a pointer to object type
> +       and a pointer to a different object type
> +     - All conversions to integer types are permitted if the destination
> +       type has enough bits to hold the entire value. Conversions to
> +       bool and void* are permitted.

Here and ...

> +   * - `Rule 11.6 
> <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_06.c>`_
> +     - Required
> +     - A cast shall not be performed between pointer to void and an
> +       arithmetic type
> +     - All conversions to integer types are permitted if the destination
> +       type has enough bits to hold the entire value. Conversions to
> +       bool and void* are permitted.

... here, however I consider its mentioning misleading: "void" is neither
an object type nor an arithmetic one.

Jan

Reply via email to