1  extern void abort (void);
       2  
       3  int 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  
      86  int 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  }