Home | History | Annotate | Download | only in anonymous
      1 #include <stdio.h>
      2 
      3 struct anonymous_nest {
      4   struct {
      5     struct {
      6       int a;
      7       int b;
      8     }; // anonymous
      9     struct {
     10       int c;
     11       int d;
     12     } foo;
     13   }; // anonymous
     14 };
     15 
     16 struct anonymous_child {
     17   struct {
     18     struct {
     19       int a;
     20       int b;
     21     } grandchild;
     22     struct {
     23       int c;
     24       int d;
     25     } foo;
     26   }; // anonymous
     27 };
     28 
     29 struct anonymous_grandchild {
     30   struct {
     31     struct {
     32       int a;
     33       int b;
     34     }; // anonymous
     35     struct {
     36       int c;
     37       int d;
     38     } foo;
     39   } child;
     40 };
     41 
     42 int processor_nest (struct anonymous_nest *n)
     43 {
     44   return n->foo.d + n->b; // Set breakpoint 0 here.
     45 }
     46 
     47 int processor_child (struct anonymous_child *c)
     48 {
     49   return c->foo.d + c->grandchild.b; // Set breakpoint 1 here.
     50 }
     51 
     52 int processor_grandchild (struct anonymous_grandchild *g)
     53 {
     54   return g->child.foo.d + g->child.b;
     55 }
     56 
     57 
     58 
     59 typedef struct {
     60     int dummy;
     61 } type_y;
     62 
     63 typedef struct {
     64     type_y y;
     65 } type_z;
     66 
     67 
     68 
     69 int main()
     70 {
     71   struct anonymous_nest n = { 0, 2, 0, 4 };
     72   struct anonymous_child c = { 0, 2, 0, 4 };
     73   struct anonymous_grandchild g = { 0, 2, 0, 4 };
     74   type_z *pz = 0;
     75   type_z z = {{2}};
     76 
     77   printf("%d\n", processor_nest(&n));
     78   printf("%d\n", processor_child(&c));
     79   printf("%d\n", processor_grandchild(&g)); // Set breakpoint 2 here.
     80 
     81   return 0;
     82 }
     83