/* Accesses to complex numbers were sometimes marked as scalar and
   sometimes as struct accesses.  */
/* { dg-do run } */
/* { dg-options "-std=c99" { target c } } */

#ifdef __cplusplus
extern "C" {
#endif
extern void abort (void);
#ifdef __cplusplus
}
#endif
static double _Complex *fp_cxd(double _Complex *cx) {
  return cx;
}

int main( ) {
  double _Complex cx = 4.0 + 3.0*(__extension__ 1.0iF);
  double _Complex cx43 = 4.0 + 3.0*(__extension__ 1.0iF);
  double _Complex cx11 = 1.0 + 1.0*(__extension__ 1.0iF);

  *fp_cxd(&cx) *= cx11;
  *fp_cxd(&cx) /= cx11;

  double r_cx = __real__(cx);
  double i_cx = __imag__(cx);
  double r_cx43 = __real__(cx43);
  double i_cx43 = __imag__(cx43);

  if( (r_cx == r_cx43) && (i_cx == i_cx43) ) { 
    return 0;
  } else {
    abort ();
  }
}
