Conversion of a function pointer to a different type of pointer results in undefined behaviour. This means, for example, that a pointer to a
function cannot be converted to a pointer to a different type of function.
Noncompliant code example
int f(int a)
{
float (*p)(float) = (float (*)(float)) & f; // Noncompliant
}