mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
docs/misra: add R11.1 R11.2 R11.3 R11.6
Add MISRA C Rules 11.1, 11.2, 11.3, 11.6 as discussed. Explicitly add in the notes that conversions to integer types are permitted if the destination type has enough bits to hold the entire value. GCC gives enough guarantees in terms of preserving the bit content in such situations. Also allow for bool conversions (e.g. to check if a function point is valid). Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
7ad0c774e4
commit
06e484767b
1 file changed
+30
@@ -383,6 +383,36 @@ maintainers if you want to suggest a change.
|
|||||||
|
|
||||||
CFLAGS="-Warith-conversion -Wno-error=arith-conversion" make -C xen
|
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.
|
||||||
|
|
||||||
|
* - `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
|
||||||
|
-
|
||||||
|
|
||||||
|
* - `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 are permitted.
|
||||||
|
|
||||||
* - `Rule 11.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_07.c>`_
|
* - `Rule 11.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_07.c>`_
|
||||||
- Required
|
- Required
|
||||||
- A cast shall not be performed between pointer to object and a noninteger arithmetic type
|
- A cast shall not be performed between pointer to object and a noninteger arithmetic type
|
||||||
|
|||||||