1  /* { dg-require-effective-target untyped_assembly } */
       2  
       3  #define ID_1 2400000000.0
       4  #define ID_2 1.7
       5  #define ID_3 -1.7
       6  
       7  unsigned ui;
       8  int si;
       9  
      10  conv_i1 ()
      11  {
      12  /*
      13    ui = (unsigned) ID_1;
      14    si = (int) ID_1;
      15  */
      16  }
      17  
      18  conv_i2 ()
      19  {
      20    ui = (unsigned) ID_2;
      21    si = (int) ID_2;
      22  }
      23  
      24  conv_i3 ()
      25  {
      26  /*  ui = (unsigned) ID_3;*/
      27    si = (int) ID_3;
      28  }
      29  
      30  conv_1 (d)
      31       double d;
      32  {
      33    ui = (unsigned) d;
      34  /*
      35    si = (int) d;
      36  */
      37  }
      38  
      39  double
      40  foo (u)
      41       unsigned u;
      42  {
      43    return u;
      44  }
      45  
      46  main ()
      47  {
      48    printf ("%lf\n", foo (2400000000));
      49  
      50    conv_i1 ();
      51    printf ("%lf, %u, %d\n", ID_1, ui, si);
      52  
      53    conv_i2 ();
      54    printf ("%lf, %u, %d\n", ID_2, ui, si);
      55  
      56    conv_i3 ();
      57    printf ("%lf, %u, %d\n", ID_3, ui, si);
      58  
      59    conv_1 (ID_1);
      60    printf ("%lf, %u, %d\n", ID_1, ui, si);
      61  
      62    conv_1 (ID_2);
      63    printf ("%lf, %u, %d\n", ID_2, ui, si);
      64  
      65    conv_1 (ID_3);
      66    printf ("%lf, %u, %d\n", ID_3, ui, si);
      67  
      68  }