*******************************************************************************
*** GNU17 BUG REPORT **********************************************************
*******************************************************************************
o^No.        :C17_003_compiler
sE   :2008/6/23

--- <c[́EΏۃo[W> ----------------------------------------------
GNU17V1.2.0yсAȑÕo[W

--- <e> --------------------------------------------------------------------
double / long long ^̕ϐLXgăTu[`ɓnꂽꍇAl
nȂB
IɃLXgĂȂAÖق̌^ϊɂLXgꍇłA̕s
͔B

--- <> ----------------------------------------------------------------
ȉASĂ̏𖞂P[Xŕs

ETu[`̈2Ԗڈȍ~ɁALXgꂽ double / long long ^̕ϐ
  nƁB
ELXgϐÖ4[h𒴂ĂׁAX^bNɊi[邱
  ƁB
  X^bNɊi[P[XɂẮARpCpbP[W}jA
  u6.4.3 WX^gp@v́unpWX^(%r0`%r3)vQƂ邱ƁB
  LXgϐÖ\̂̏ꍇ́Aoϐ double 
  / long long ^ł邱ƁB
ELXgϐ double ^̏ꍇ́Aȉ̌^ɃLXg邱ƁB
    char / int / short / long / unsigned char / unsigned short / unsigned int 
    unsigned long / float
  LXgϐ long long ^̏ꍇ́Aȉ̌^ɃLXg邱ƁB
    float

TvR[hF
  void sub( double arg1, int arg2 );

  int main( void )
  {
      double d = 1.0;

      sub( d, d );   // 2d ̒lAsub() ֐ɓnȂB
                     // IɃLXgȂĂAÖق̌^ϊɂ
                     // 2 int ^ɃLXgׁAs
                     // B
                     // sub( d, (int)d ) ƋLqĂlɕsB

--- <@> ---------------------------------------------------------------
LXgϐ̒lAx[NϐɑB
̃[NϐƂăTu[`ɓnƂɂłB

TvR[hF
  void sub( double arg1, int arg2 );

  int main( void )
  {
      double d = 1.0;
      int i_wk;
      
      i_wk = (int)d;
      sub( d, i_wk );   // [NϐoR邱ƂɂA sub() ֐
                        // 2nB

--- <Cłɂ> ----------------------------------------------------------
pb`FȂ
iŁF

