/* Test for diagnostics for Wconversion for floating-point.  */

/* { dg-do compile } */
/* { dg-skip-if "doubles are floats" { "avr-*-*" } } */
/* { dg-options "-std=c99 -Wconversion" { target c } } */
/* { dg-options "-Wconversion" { target c++ } } */
/* { dg-require-effective-target large_double } */

float  vfloat;
double vdouble;
long double vlongdouble;

void ffloat (float f);
void fdouble (double d);
void flongdouble (long double ld);

void h (void)
{
  float f = 0;
  double d = 0;
  long double ld = 0;

  ffloat (3.1); /* { dg-warning "conversion" } */
  vfloat = 3.1; /* { dg-warning "conversion" } */
  ffloat (3.1L); /* { dg-warning "conversion" } */
  vfloat = 3.1L;  /* { dg-warning "conversion" } */
  fdouble (3.1L); /* { dg-warning "conversion" "" { target large_long_double } } */
  vdouble = 3.1L; /* { dg-warning "conversion" "" { target large_long_double } } */
  ffloat (vdouble); /* { dg-warning "conversion" } */
  vfloat = vdouble; /* { dg-warning "conversion" } */
  ffloat (vlongdouble); /* { dg-warning "conversion" } */
  vfloat = vlongdouble; /* { dg-warning "conversion" } */
  fdouble (vlongdouble); /* { dg-warning "conversion" "" { target large_long_double } } */
  vdouble = vlongdouble; /* { dg-warning "conversion" "" { target large_long_double } } */


  ffloat ((float) 3.1); 
  vfloat = (float) 3.1;
  ffloat ((float) 3.1L);
  vfloat = (float) 3.1L; 
  fdouble ((double) 3.1L); 
  vdouble = (double) 3.1L; 
  ffloat ((float) vdouble); 
  vfloat = (float) vdouble; 
  ffloat ((float) vlongdouble); 
  vfloat = (float) vlongdouble;
  fdouble ((double) vlongdouble);
  vdouble = (double) vlongdouble;


  ffloat (3.0);
  vfloat = 3.0;
  ffloat (3.1f);
  vfloat = 3.1f;
  ffloat (0.25L);
  vfloat = 0.25L;


  fdouble (3.0);
  vdouble = 3.0;
  fdouble (3.1f);
  vdouble = 3.1f;
  fdouble (0.25L);
  vdouble = 0.25L;

  flongdouble (3.0);
  vlongdouble = 3.0;
  flongdouble (3.1f);
  vlongdouble = 3.1f;
  flongdouble (0.25L);
  vlongdouble = 0.25L;

  ffloat (f);
  vfloat = f;
  fdouble (f);
  vdouble = f;
  fdouble (d);
  vdouble = d;
  flongdouble (f);
  vlongdouble = f;
  flongdouble (d);
  vlongdouble = d;
  flongdouble (ld);
  vlongdouble = ld;
}
