// reproducing qpmouse failure

// this typedef should disambiguate casts and fn calls
typedef unsigned short __u16;
int ___arch__swab16(int f);
int __builtin_constant_p(int x);

// this is needed for a similar purpose
extern __inline__ __const__ __u16 __fswab16(__u16 x)
{
 return ___arch__swab16( x ) ;
}

extern __inline__ __u16 __swab16p(__u16 *x)
{
  (__u16)( *( x ) );

  // this line causes the problem
  return (
    __builtin_constant_p
      ((__u16)( *( x ) )) ?
      ((__u16)( (((__u16)( ( *( x ) ) ) & (__u16)0x00ffU) << 8) | (((__u16)( ( *( x ) ) ) & (__u16)0xff00U) >> 8) ))  :
      __fswab16(( *( x ) ))
  )  ;
}
