X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firprintf.c;h=cffcbb8a1f42b6d76045dabeb1eb5a5cef48f734;hb=eda9d668d0e8c8246015b4c5e743316a6a835a23;hp=bbd968ad9d1210675db671e275d6bd76ba214fe2;hpb=699974f39edc05c411e327959a20b7ded17ec5ba;p=libfirm diff --git a/ir/ir/irprintf.c b/ir/ir/irprintf.c index bbd968ad9..cffcbb8a1 100644 --- a/ir/ir/irprintf.c +++ b/ir/ir/irprintf.c @@ -1,22 +1,29 @@ /* - * Project: libFIRM - * File name: ir/ir/irprintf.c - * Purpose: A little printf helper unterstanding firm types - * Author: Sebastian Hack - * Created: 29.11.2004 - * CVS-ID: $Id$ - * Copyright: (c) 1998-2004 Universität Karlsruhe - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. + * + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. */ /** - * @file irprintf.c - * - * A little printf helper unterstanding firm types. - * @author Sebastian Hack - * @date 29.11.2004 + * @file + * @brief A little printf helper unterstanding firm types + * @author Sebastian Hack + * @date 29.11.2004 + * @version $Id$ */ - #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -255,7 +262,7 @@ static void dump_with_settings(const appender_t *app, void *object, size_t limit /** * Beware: do not set the entity ld_name */ -static const char *get_entity_ld_name_ex(entity *ent) { +static const char *get_entity_ld_name_ex(ir_entity *ent) { if (ent->ld_name) return get_entity_ld_name(ent); return get_entity_name(ent); @@ -274,7 +281,7 @@ static void firm_emit(char *buf, int buflen, char conversion, ir_node *block; char add[64]; char tv_buf[256]; - entity *ent; + ir_entity *ent; buf[0] = '\0'; add[0] = '\0'; @@ -340,6 +347,9 @@ static void firm_emit(char *buf, int buflen, char conversion, case symconst_addr_ent: /* entity name */ snprintf(tv_buf, sizeof(tv_buf), "<%s>", get_entity_name(get_SymConst_entity(X))); break; + case symconst_enum_const: /* enumeration constant */ + snprintf(tv_buf, sizeof(tv_buf), "", get_enumeration_name(get_SymConst_enum(X))); + break; default: tv_buf[0] = '\0'; } @@ -478,18 +488,27 @@ static void ir_common_vprintf(const appender_t *app, void *object, case 'h': len_str = "h"; len = len_short; - if((ch = fmt[++i]) == 'h') { + ++i; + if((ch = fmt[i]) == 'h') { len_str = "hh"; len = len_char; + ++i; } break; case 'l': len_str = "l"; len = len_long; - if((ch = fmt[++i]) == 'l') { + ++i; + if ((ch = fmt[i]) == 'l') { len_str = "ll"; len = len_long_long; + ++i; + } + else if ((ch = fmt[i]) == 'u') { + len_str = "lu"; + len = len_long_long; + ++i; } break;