#include <stdio.h>
#include <setjmp.h>
#include <stdlib.h>
#include <signal.h>
jmp_buf env;
void handler(int s) {
signal(SIGSEGV, handler);
}
int main() {
int a[2][2] = {{0, 1}, {2, 3}};
int retval;
signal(SIGSEGV, handler);
retval = **a;
puts("a[2][2] is a[2][2]"); } else puts("a[2][2] is not a[2][2]"); retval = **((int **) a);
puts("a[2][2] is *a[2]"); } else puts("a[2][2] is not *a[2]"); return retval;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzZXRqbXAuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c2lnbmFsLmg+CgpqbXBfYnVmIGVudjsKCnZvaWQgaGFuZGxlcihpbnQgcykgewogICAgc2lnbmFsKFNJR1NFR1YsIGhhbmRsZXIpOwogICAgbG9uZ2ptcChlbnYsIDEpOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBhWzJdWzJdID0ge3swLCAxfSwgezIsIDN9fTsKICAgIGludCByZXR2YWw7CiAgICBzaWduYWwoU0lHU0VHViwgaGFuZGxlcik7CiAgICBpZiAoc2V0am1wKGVudikgPT0gMCkgewogICAgICAgIHJldHZhbCA9ICoqYTsKICAgICAgICBwdXRzKCJhWzJdWzJdIGlzIGFbMl1bMl0iKTsKICAgIH0gZWxzZSBwdXRzKCJhWzJdWzJdIGlzIG5vdCBhWzJdWzJdIik7CiAgICBpZiAoc2V0am1wKGVudikgPT0gMCkgewogICAgICAgIHJldHZhbCA9ICoqKChpbnQgKiopIGEpOwogICAgICAgIHB1dHMoImFbMl1bMl0gaXMgKmFbMl0iKTsKICAgIH0gZWxzZSBwdXRzKCJhWzJdWzJdIGlzIG5vdCAqYVsyXSIpOwogICAgcmV0dXJuIHJldHZhbDsKfQo=