1  #include <stdio.h>
       2  
       3  long long proc1(){return 1LL;}
       4  long long proc2(){return 0x12345678LL;}
       5  long long proc3(){return 0xaabbccdd12345678LL;}
       6  long long proc4(){return -1LL;}
       7  long long proc5(){return 0xaabbccddLL;}
       8  
       9  print_longlong(x,buf)
      10       long long x;
      11       char *buf;
      12  {
      13    unsigned long l;
      14    l= (x >> 32) & 0xffffffff;
      15    if (l != 0)
      16      sprintf(buf,"%lx%08.lx",l,((unsigned long)x & 0xffffffff));
      17    else
      18      sprintf(buf,"%lx",((unsigned long)x & 0xffffffff));
      19  }
      20  
      21  main(){char buf[100];
      22  print_longlong(proc1(),buf);if(strcmp("1",buf))abort();
      23  print_longlong(proc2(),buf);if(strcmp("12345678",buf))abort();
      24  print_longlong(proc3(),buf);if(strcmp("aabbccdd12345678",buf))abort();
      25  print_longlong(proc4(),buf);if(strcmp("ffffffffffffffff",buf))abort();
      26  print_longlong(proc5(),buf);if(strcmp("aabbccdd",buf))abort();
      27  exit(0);}