MISRA.CAST.PTR_TO_INTCast converts pointer to integral type. MISRA-C Rule 11.3 (advisory): A cast should not be performed between a pointer type and an integral type.[Implementation 24] The size of integer that is required when a pointer is converted to an integer is implementation defined. Casting between a pointer and an integer type should be avoided where possible, but may be unavoidable when addressing memory mapped registers or other hardware specific features. MISRA-C++ Rule 5-2-9 (advisory): A cast should not convert a pointer type to an integral type.[Implementation 5.2.10(4, 5)] RationaleThe size of integer that is required when a pointer is converted to an integer is implementation-defined. Casting between a pointer and an integer type should be avoided where possible, but may be unavoidable when addressing memory mapped registers or other hardware specific features. Note that C++ does not permit a pointer to be converted to any floating type. Examplestruct S { int32_t i; int32_t j; }; void f ( S * s ) { int32_t p = reinterpret_cast< int32_t >( s ); // Non-compliant } |