コード例 #1
0
ファイル: cdump.c プロジェクト: ABratovic/open-watcom-v2
char *DiagGetTypeName( TYPEPTR typ )
{
    STRCHUNK    chunk;

    ChunkInit( &chunk );
    do_message_output = 1;
    DoDumpType( typ, NULL, &chunk );
    do_message_output = 0;
    return( ChunkToStr( &chunk ) );
}
コード例 #2
0
ファイル: cdump.c プロジェクト: jossk/open-watcom-v2
static void DumpParmList( TYPEPTR *parm, SYMPTR funcsym, STRCHUNK *pch )
{
    TYPEPTR            typ;
    int                parm_num;
    SYM_HANDLE         sym_handle;
    SYM_ENTRY          sym;
    char               *sym_name;
    char               temp_name[20];

    if( parm == NULL ) {
        ChunkSaveStr( pch, "void" );
    } else {
        parm_num = 1;
        if( funcsym != NULL ) {
            sym_handle = funcsym->u.func.parms;
        } else {
            sym_handle = 0;
        }
        for( ;; ) {
            typ = *parm;
            if( typ == NULL ) break;
            typ = TrueType( typ );
            if( funcsym != NULL ) {
                if( funcsym->flags & SYM_OLD_STYLE_FUNC ) {
                    typ = DefArgPromotion( typ );
                }
            }
            sym_name = NULL;
            if( sym_handle != 0 ) {
                SymGet( &sym, sym_handle );
                sym_handle = sym.handle;
                sym_name   = sym.name;
            } else {
                if( typ->decl_type != TYPE_VOID  &&
                    typ->decl_type != TYPE_DOT_DOT_DOT ) {
                        sym_name = temp_name;
                        sprintf( temp_name, "__p%d", parm_num );
                }
            }
            DoDumpType( typ, sym_name, pch );
            ++parm;
            if( *parm != NULL ) {
                ChunkSaveChar( pch, ',' );
            }
            ++parm_num;
        }
    }
}