1  /* { dg-do run } */
       2  
       3  #include <stdio.h>
       4  
       5  #include "init3.h"
       6  #include "dump.h"
       7  
       8  int main (void)
       9  {
      10    struct R1 A1 = My_R1;
      11    struct R2 A2 = My_R2;
      12  
      13    struct Nested1 N1;
      14    struct Nested2 N2;
      15  
      16    unsigned C1;
      17    unsigned C2;
      18    unsigned C3;
      19  
      20    put ("A1 :");
      21    dump (&A1, sizeof (struct R1));
      22    new_line ();
      23    /* { dg-output "A1 : c2 7b f3 2a 5e 12 9a 95.*\n" } */
      24  
      25    put ("A2 :");
      26    dump (&A2, sizeof (struct R2));
      27    new_line ();
      28    /* { dg-output "A2 : 09 e2 af 37 bd 24 d2 b4.*\n" } */
      29  
      30    N1 = A1.N;
      31    C1 = N1.C1;
      32    C2 = N1.C2;
      33    C3 = N1.C3;
      34  
      35    printf ("C1 : %d\n", C1);
      36    /* { dg-output "C1 : 18.*\n" } */
      37  
      38    printf ("C2 : %d\n", C2);
      39    /* { dg-output "C2 : 52.*\n" } */
      40  
      41    printf ("C3 : %d\n", C3);
      42    /* { dg-output "C3 : 86.*\n" } */
      43  
      44    N1.C1 = C1;
      45    N1.C2 = C2;
      46    N1.C3 = C3;
      47    A1.N = N1;
      48  
      49    N2 = A2.N;
      50    C1 = N2.C1;
      51    C2 = N2.C2;
      52    C3 = N2.C3;
      53  
      54    printf ("C1 : %d\n", C1);
      55    /* { dg-output "C1 : 18.*\n" } */
      56  
      57    printf ("C2 : %d\n", C2);
      58    /* { dg-output "C2 : 52.*\n" } */
      59  
      60    printf ("C3 : %d\n", C3);
      61    /* { dg-output "C3 : 86.*\n" } */
      62  
      63    N2.C1 = C1;
      64    N2.C2 = C2;
      65    N2.C3 = C3;
      66    A2.N = N2;
      67  
      68    put ("A1 :");
      69    dump (&A1, sizeof (struct R1));
      70    new_line ();
      71    /* { dg-output "A1 : c2 7b f3 2a 5e 12 9a 95.*\n" } */
      72  
      73    put ("A2 :");
      74    dump (&A2, sizeof (struct R2));
      75    new_line ();
      76    /* { dg-output "A2 : 09 e2 af 37 bd 24 d2 b4.*\n" } */
      77  
      78    new_line ();
      79    return 0;
      80  }