1 extern void abort (void); 2 stab_xcoff_builtin_type(int typenum)3int stab_xcoff_builtin_type (int typenum) 4 { 5 const char *name; 6 if (typenum >= 0 || typenum < -34) 7 { 8 return 0; 9 } 10 switch (-typenum) 11 { 12 case 1: 13 name = "int"; 14 break; 15 case 2: 16 name = "char"; 17 case 3: 18 name = "short"; 19 break; 20 case 4: 21 name = "long"; 22 case 5: 23 name = "unsigned char"; 24 case 6: 25 name = "signed char"; 26 case 7: 27 name = "unsigned short"; 28 case 8: 29 name = "unsigned int"; 30 case 9: 31 name = "unsigned"; 32 case 10: 33 name = "unsigned long"; 34 case 11: 35 name = "void"; 36 case 12: 37 name = "float"; 38 case 13: 39 name = "double"; 40 case 14: 41 name = "long double"; 42 case 15: 43 name = "integer"; 44 case 16: 45 name = "boolean"; 46 case 17: 47 name = "short real"; 48 case 18: 49 name = "real"; 50 case 19: 51 name = "stringptr"; 52 case 20: 53 name = "character"; 54 case 21: 55 name = "logical*1"; 56 case 22: 57 name = "logical*2"; 58 case 23: 59 name = "logical*4"; 60 case 24: 61 name = "logical"; 62 case 25: 63 name = "complex"; 64 case 26: 65 name = "double complex"; 66 case 27: 67 name = "integer*1"; 68 case 28: 69 name = "integer*2"; 70 case 29: 71 name = "integer*4"; 72 case 30: 73 name = "wchar"; 74 case 31: 75 name = "long long"; 76 case 32: 77 name = "unsigned long long"; 78 case 33: 79 name = "logical*8"; 80 case 34: 81 name = "integer*8"; 82 } 83 return name[0]; 84 } 85 main()86int main() 87 { 88 int i; 89 if (stab_xcoff_builtin_type(0) != 0) 90 abort (); 91 if (stab_xcoff_builtin_type(-1) != 'i') 92 abort (); 93 if (stab_xcoff_builtin_type(-2) != 's') 94 abort (); 95 if (stab_xcoff_builtin_type(-3) != 's') 96 abort (); 97 for (i = -4; i >= -34; --i) 98 if (stab_xcoff_builtin_type(i) != 'i') 99 abort (); 100 if (stab_xcoff_builtin_type(-35) != 0) 101 abort (); 102 return 0; 103 } 104