1#include <stdio.h> 2 3#ifdef DEBUG 4#define abort() printf ("error, line %d\n", __LINE__) 5#endif 6 7int count; 8 9void a1() { ++count; } 10 11void 12b (unsigned short data) 13{ 14 if (data & 0x8000) a1(); 15 data <<= 1; 16 17 if (data & 0x8000) a1(); 18 data <<= 1; 19 20 if (data & 0x8000) a1(); 21} 22 23main () 24{ 25 count = 0; 26 b (0); 27 if (count != 0) 28 abort (); 29 30 count = 0; 31 b (0x8000); 32 if (count != 1) 33 abort (); 34 35 count = 0; 36 b (0x4000); 37 if (count != 1) 38 abort (); 39 40 count = 0; 41 b (0x2000); 42 if (count != 1) 43 abort (); 44 45 count = 0; 46 b (0xc000); 47 if (count != 2) 48 abort (); 49 50 count = 0; 51 b (0xa000); 52 if (count != 2) 53 abort (); 54 55 count = 0; 56 b (0x6000); 57 if (count != 2) 58 abort (); 59 60 count = 0; 61 b (0xe000); 62 if (count != 3) 63 abort (); 64 65#ifdef DEBUG 66 printf ("Done.\n"); 67#endif 68 exit (0); 69} 70