case FFECOM_rttypeCHARACTER_: ttype = void_type_node; kt = FFEINFO_kindtypeCHARACTER1; break;
ffecom_make_gfrt_ (ffecomGfrt ix){  tree t;  tree ttype;  ffeinfoKindtype kt;  push_obstacks_nochange ();  end_temporary_allocation ();  switch (ffecom_gfrt_type_[ix])    {    case FFECOM_rttypeVOID_:      ttype = void_type_node;      kt = FFEINFO_kindtypeNONE;      break;    case FFECOM_rttypeINT_:      ttype = integer_type_node;      kt = FFEINFO_kindtypeINTEGER1;      break;    case FFECOM_rttypeINTEGER_:      ttype = ffecom_f2c_integer_type_node;      kt = FFEINFO_kindtypeINTEGER1;      break;    case FFECOM_rttypeLONGINT_:      ttype = ffecom_f2c_longint_type_node;      kt = FFEINFO_kindtypeINTEGER4;      break;    case FFECOM_rttypeLOGICAL_:      ttype = ffecom_f2c_logical_type_node;      kt = FFEINFO_kindtypeLOGICAL1;      break;    case FFECOM_rttypeREAL_:      ttype = ffecom_f2c_real_type_node;      kt = FFEINFO_kindtypeREAL1;      break;    case FFECOM_rttypeCOMPLEX_:      ttype = ffecom_f2c_complex_type_node;      kt = FFEINFO_kindtypeREAL1;      break;    case FFECOM_rttypeDOUBLE_:      ttype = double_type_node;      kt = FFEINFO_kindtypeREAL2;      break;    case FFECOM_rttypeDBLCMPLX_:      ttype = ffecom_f2c_doublecomplex_type_node;      kt = FFEINFO_kindtypeREAL2;      break;    default:      ttype = NULL;      kt = FFEINFO_kindtypeANY;      assert ("bad rttype" == NULL);      break;    }  ffecom_gfrt_kt_[ix] = kt;  if (ffecom_gfrt_complex_[ix] && ffe_is_f2c_library ())    ttype = void_type_node;  ttype = build_function_type (ttype, NULL_TREE);  t = build_decl (FUNCTION_DECL,		  get_identifier (ffecom_gfrt_name_[ix]),		  ttype);  DECL_EXTERNAL (t) = 1;  TREE_PUBLIC (t) = 1;  TREE_THIS_VOLATILE (t) = ffecom_gfrt_volatile_[ix] ? 1 : 0;  t = start_decl (t, TRUE);  finish_decl (t, NULL_TREE, TRUE);  resume_temporary_allocation ();  pop_obstacks ();  ffecom_gfrt_[ix] = t;}