(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
wtr-union-init-2.c
       1  /* Test for -Wtraditional warnings on union initialization.
       2     Note, gcc should omit these warnings in system header files.
       3     By Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9/11/2000.  */
       4  /* { dg-do compile } */
       5  /* { dg-options "-Wtraditional" } */
       6  
       7  union foo1
       8  {
       9    float f;
      10    int i;
      11    long l;
      12  };
      13  
      14  union foo2
      15  {
      16    int i;
      17    float f;
      18    long l;
      19  };
      20  
      21  void
      22  testfunc ()
      23  {
      24    /* Note we only warn for nonzero initializers.  */
      25    static union foo1 f1 = {0};
      26    static union foo2 f2 = {0};
      27    static union foo1 f3 = {1}; /* { dg-warning "traditional C rejects initialization of unions" "initialization of unions" } */
      28    static union foo2 f4 = {1}; /* { dg-warning "traditional C rejects initialization of unions" "initialization of unions" } */
      29    static union foo1 f5 = {0.0};
      30    static union foo2 f6 = {0.0};
      31    static union foo1 f7 = {1.0}; /* { dg-warning "traditional C rejects initialization of unions" "initialization of unions" } */
      32    static union foo2 f8 = {1.0}; /* { dg-warning "traditional C rejects initialization of unions" "initialization of unions" } */
      33  
      34  # 35 "sys-header.h" 3
      35  /* We are in system headers now, no -Wtraditional warnings should issue.  */
      36  
      37    static union foo1 b1 = {0};
      38    static union foo2 b2 = {0};
      39    static union foo1 b3 = {1};
      40    static union foo2 b4 = {1};
      41    static union foo1 b5 = {0.0};
      42    static union foo2 b6 = {0.0};
      43    static union foo1 b7 = {1.0};
      44    static union foo2 b8 = {1.0};
      45  }