1  /* { dg-do run } */
       2  
       3  #include <stdio.h>
       4  
       5  #include "init8.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    int C1;
      17    int C2;
      18    int C3;
      19  
      20    put ("A1 :");
      21    dump (&A1, sizeof (struct R1));
      22    new_line ();
      23    /* { dg-output "A1 : 78 56 34 12 00 ab 00 12 00 cd 00 34 00 ef 00 56.*\n" } */
      24  
      25    put ("A2 :");
      26    dump (&A2, sizeof (struct R2));
      27    new_line ();
      28    /* { dg-output "A2 : 12 34 56 78 12 00 ab 00 34 00 cd 00 56 00 ef 00.*\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 : 11206674.*\n" } */
      37  
      38    printf ("C2 : %d\n", C2);
      39    /* { dg-output "C2 : 13434932.*\n" } */
      40  
      41    printf ("C3 : %d\n", C3);
      42    /* { dg-output "C3 : 15663190.*\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 : 11206674.*\n" } */
      56  
      57    printf ("C2 : %d\n", C2);
      58    /* { dg-output "C2 : 13434932.*\n" } */
      59  
      60    printf ("C3 : %d\n", C3);
      61    /* { dg-output "C3 : 15663190.*\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 : 78 56 34 12 00 ab 00 12 00 cd 00 34 00 ef 00 56.*\n" } */
      72  
      73    put ("A2 :");
      74    dump (&A2, sizeof (struct R2));
      75    new_line ();
      76    /* { dg-output "A2 : 12 34 56 78 12 00 ab 00 34 00 cd 00 56 00 ef 00.*\n" } */
      77  
      78    new_line ();
      79    return 0;
      80  }