struct bar {
int x;
};
struct foo {
struct bar *bar;
};
int main(void) {
struct bar bar1 = {0};
struct bar bar2 = {0};
struct foo x = {&bar1};
const struct foo *const_x = &x;
// const_x->bar = &bar2; // ILLEGAL
const_x->bar->x = 42; // LEGAL
return 0;
}
c3RydWN0IGJhciB7CiAgICBpbnQgeDsKfTsKCnN0cnVjdCBmb28gewogICAgc3RydWN0IGJhciAqYmFyOwp9OwoKaW50IG1haW4odm9pZCkgewoJc3RydWN0IGJhciBiYXIxID0gezB9OwoJc3RydWN0IGJhciBiYXIyID0gezB9OwoJc3RydWN0IGZvbyB4ID0geyZiYXIxfTsKCWNvbnN0IHN0cnVjdCBmb28gKmNvbnN0X3ggPSAmeDsKCS8vIGNvbnN0X3gtPmJhciA9ICZiYXIyOyAvLyBJTExFR0FMCgljb25zdF94LT5iYXItPnggPSA0MjsgLy8gTEVHQUwKCXJldHVybiAwOwp9Cg==