modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20140212-2.c (about)

     1  /* This used to fail as we would convert f into just return (unsigned int)usVlanID
     2     which is wrong. */
     3  
     4  int f(unsigned short usVlanID) __attribute__((noinline,noclone));
     5  int f(unsigned short usVlanID)
     6  {
     7    unsigned int uiVlanID = 0xffffffff;
     8    int i;
     9    if ((unsigned short)0xffff != usVlanID)
    10      uiVlanID = (unsigned int)usVlanID;
    11    return uiVlanID;
    12  }
    13  
    14  int main(void)
    15  {
    16    if (f(1) != 1)
    17      __builtin_abort ();
    18    if (f(0xffff) != -1)
    19      __builtin_abort ();
    20    return 0;
    21  }