STATIC void cpp_member_function_type(symbol *s) { assert(tyfunc(s->Stype->Tty)); cpp_this_type(s->Stype,(Classsym *)s->Sscope); if (s->Sfunc->Fflags & (Fctor | Fdtor)) { type *t = s->Stype; cpp_calling_convention(t); CHAR('@'); // return_type for ctors & dtors cpp_argument_types(t); cpp_throw_types(t); } else cpp_static_member_function_type(s); }
STATIC void cpp_function_type(type *t) { tym_t ty; type *tn; //printf("cpp_function_type()\n"); //type_debug(t); assert(tyfunc(t->Tty)); cpp_calling_convention(t); //cpp_return_type(s); tn = t->Tnext; ty = tn->Tty; if (LARGEDATA && (tybasic(ty) == TYstruct || tybasic(ty) == TYenum) && !(ty & mTYLINK)) tn->Tty |= mTYfar; cpp_data_type(tn); tn->Tty = ty; cpp_argument_types(t); cpp_throw_types(t); }