(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
pr97456.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2 -fwhole-program" } */
       3  
       4  
       5  float val2 = 1.710780f;
       6  float val3;
       7  volatile float vf;
       8  
       9  int __attribute__((noipa))
      10  get_bool (void)
      11  {
      12    return 1;
      13  }
      14  
      15  int __attribute__((noinline))
      16  wrong (float *pos)
      17  {
      18    _Complex float a;
      19  
      20    __real__ a = *pos;
      21    __imag__ a = *pos;
      22  
      23    _Complex float b = 0 + 0i;
      24  
      25    b = b + a;
      26  
      27    if (b == 0.0f)
      28      return 1;
      29  
      30    vf = __imag__ b;
      31    return 0;
      32  }
      33  
      34  int main(int argc, char **argv) {
      35    float val = get_bool () == 1 ? val2 : val3;
      36  
      37    if ((wrong(&val), wrong(&val)))
      38      __builtin_abort ();
      39    return 0;
      40  }