int main(void) {
int flag = 0, array[30], b = 3;
if (!flag) {
int (*M)[b] = (int (*)[b]) array;
// note that dereferencing M here is undefined behaviour
(void)M;
}
return 0;
}
ICAgIGludCBtYWluKHZvaWQpIHsKICAgICAgICBpbnQgZmxhZyA9IDAsIGFycmF5WzMwXSwgYiA9IDM7CgogICAgICAgIGlmICghZmxhZykgewogICAgICAgICAgICBpbnQgKCpNKVtiXSA9IChpbnQgKCopW2JdKSBhcnJheTsKICAgICAgICAgICAgLy8gbm90ZSB0aGF0IGRlcmVmZXJlbmNpbmcgTSBoZXJlIGlzIHVuZGVmaW5lZCBiZWhhdmlvdXIKICAgICAgICAgICAgKHZvaWQpTTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDA7CiAgICB9Cg==