(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr48335-3.c
       1  /* PR middle-end/48335 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -fno-tree-sra" } */
       4  
       5  typedef short U __attribute__((may_alias, aligned (1)));
       6  
       7  struct S
       8  {
       9    double d;
      10  };
      11  
      12  void bar (struct S);
      13  
      14  void
      15  f1 (int x)
      16  {
      17    struct S s = { .d = 0.0 };
      18    ((U *)((char *) &s.d + 1))[0] = x;
      19    __real__ s.d *= 7.0;
      20    bar (s);
      21  }
      22  
      23  void
      24  f2 (int x)
      25  {
      26    struct S s = { .d = 0.0 };
      27    ((U *)((char *) &s.d + 1))[1] = x;
      28    __real__ s.d *= 7.0;
      29    bar (s);
      30  }
      31  
      32  void
      33  f3 (int x)
      34  {
      35    struct S s = { .d = 0.0 };
      36    ((U *)((char *) &s.d + 1))[2] = x;
      37    __real__ s.d *= 7.0;
      38    bar (s);
      39  }
      40  
      41  void
      42  f4 (int x)
      43  {
      44    struct S s = { .d = 0.0 };
      45    ((U *)((char *) &s.d + 1))[3] = x;
      46    __real__ s.d *= 7.0;
      47    bar (s);
      48  }