#include <stdio.h>
#include <stdint.h>
void func(void) {
}
int main(void) {
uint32_t* interim = (uint32_t*) &func;
void(*ptr1)(void);
ptr1 = (void*) interim;
ptr1();
void(*ptr2)(void);
ptr2 = (void(*)(void)) interim;
ptr2();
printf("The function pointers store "); printf(((ptr1
== ptr2
) && (ptr1
== &func
) && (ptr2
== &func
)) ? "identical" : "distinct"); }
I2luY2x1ZGUgIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkaW50Lmg+Cgp2b2lkIGZ1bmModm9pZCkgewogICAgcHJpbnRmKCJIZWxsbyFcbiIpOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgICB1aW50MzJfdCogaW50ZXJpbSA9ICh1aW50MzJfdCopICZmdW5jOwoKICAgIHZvaWQoKnB0cjEpKHZvaWQpOwogICAgcHRyMSA9ICh2b2lkKikgaW50ZXJpbTsKICAgIHB0cjEoKTsKCiAgICB2b2lkKCpwdHIyKSh2b2lkKTsKICAgIHB0cjIgPSAodm9pZCgqKSh2b2lkKSkgaW50ZXJpbTsKICAgIHB0cjIoKTsKICAgIAogICAgcHJpbnRmKCJUaGUgZnVuY3Rpb24gcG9pbnRlcnMgc3RvcmUgIik7CiAgICBwcmludGYoKChwdHIxID09IHB0cjIpICYmIChwdHIxID09ICZmdW5jKSAmJiAocHRyMiA9PSAmZnVuYykpID8gImlkZW50aWNhbCIgOiAiZGlzdGluY3QiKTsKICAgIHByaW50ZigiIGFkZHJlc3Nlcy5cbiIpOwp9