// Clause: 6.5.2.2 — Calling a function through a pointer to an incompatible type is UB;
// additionally, converting an object pointer to a function pointer and calling through it is not defined by C.
#include <stdio.h>
int main(void){
    int x = 0;
    // Bad cast from object pointer to function pointer
    int (*fp)(void) = (int (*)(void))&x;
    int r = fp(); // UB
    printf("%d\n", r);
    return 0;
}
