2013-04-20 04:51:34 +08:00
|
|
|
struct anonymous_nest {
|
2012-03-02 09:03:45 +08:00
|
|
|
struct {
|
|
|
|
struct {
|
|
|
|
int a;
|
|
|
|
int b;
|
2013-04-20 04:51:34 +08:00
|
|
|
}; // anonymous
|
2012-03-02 09:03:45 +08:00
|
|
|
struct {
|
|
|
|
int c;
|
|
|
|
int d;
|
|
|
|
} foo;
|
2013-04-20 04:51:34 +08:00
|
|
|
}; // anonymous
|
2012-03-02 09:03:45 +08:00
|
|
|
};
|
|
|
|
|
2013-04-20 04:51:34 +08:00
|
|
|
struct anonymous_child {
|
|
|
|
struct {
|
|
|
|
struct {
|
|
|
|
int a;
|
|
|
|
int b;
|
|
|
|
} grandchild;
|
|
|
|
struct {
|
|
|
|
int c;
|
|
|
|
int d;
|
|
|
|
} foo;
|
|
|
|
}; // anonymous
|
|
|
|
};
|
|
|
|
|
|
|
|
struct anonymous_grandchild {
|
|
|
|
struct {
|
|
|
|
struct {
|
|
|
|
int a;
|
|
|
|
int b;
|
|
|
|
}; // anonymous
|
|
|
|
struct {
|
|
|
|
int c;
|
|
|
|
int d;
|
|
|
|
} foo;
|
|
|
|
} child;
|
|
|
|
};
|
|
|
|
|
|
|
|
int processor_nest (struct anonymous_nest *n)
|
|
|
|
{
|
|
|
|
return n->foo.d + n->b; // Set breakpoint 0 here.
|
|
|
|
}
|
|
|
|
|
|
|
|
int processor_child (struct anonymous_child *c)
|
|
|
|
{
|
|
|
|
return c->foo.d + c->grandchild.b; // Set breakpoint 1 here.
|
|
|
|
}
|
|
|
|
|
|
|
|
int processor_grandchild (struct anonymous_grandchild *g)
|
2012-03-02 09:03:45 +08:00
|
|
|
{
|
2013-04-20 04:51:34 +08:00
|
|
|
return g->child.foo.d + g->child.b;
|
2012-03-02 09:03:45 +08:00
|
|
|
}
|
|
|
|
|
2013-04-20 04:51:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int dummy;
|
|
|
|
} type_y;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
type_y y;
|
|
|
|
} type_z;
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-02 09:03:45 +08:00
|
|
|
int main()
|
|
|
|
{
|
2013-04-20 04:51:34 +08:00
|
|
|
struct anonymous_nest n = { 0, 2, 0, 4 };
|
|
|
|
struct anonymous_child c = { 0, 2, 0, 4 };
|
|
|
|
struct anonymous_grandchild g = { 0, 2, 0, 4 };
|
|
|
|
type_z *pz = 0;
|
|
|
|
type_z z = {{2}};
|
|
|
|
|
2020-02-19 21:00:25 +08:00
|
|
|
processor_nest(&n);
|
|
|
|
processor_child(&c);
|
|
|
|
processor_grandchild(&g); // Set breakpoint 2 here.
|
2012-03-02 09:03:45 +08:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|