@@ -899,13 +899,13 @@ static void emit_func_post(struct symbol *sym)
/* emit object (a.k.a. variable, a.k.a. data) prologue */
static void emit_object_pre(const char *name, unsigned long modifiers,
- unsigned long alignment, unsigned int byte_size)
+ unsigned int alignment, unsigned int byte_size)
{
if ((modifiers & MOD_STATIC) == 0)
printf(".globl %s\n", name);
emit_section(".data");
if (alignment)
- printf("\t.align %lu\n", alignment);
+ printf("\t.align %u\n", alignment);
printf("\t.type\t%s, @object\n", name);
printf("\t.size\t%s, %d\n", name, byte_size);
printf("%s:\n", name);
@@ -940,7 +940,7 @@ static void emit_scalar(struct expression *expr, unsigned int bit_size)
}
static void emit_global_noinit(const char *name, unsigned long modifiers,
- unsigned long alignment, unsigned int byte_size)
+ unsigned int alignment, unsigned int byte_size)
{
char s[64];
@@ -949,7 +949,7 @@ static void emit_global_noinit(const char *name, unsigned long modifiers,
textbuf_push(&unit_post_text, s);
}
if (alignment)
- sprintf(s, "\t.comm\t%s,%d,%lu\n", name, byte_size, alignment);
+ sprintf(s, "\t.comm\t%s,%d,%u\n", name, byte_size, alignment);
else
sprintf(s, "\t.comm\t%s,%d\n", name, byte_size);
textbuf_push(&unit_post_text, s);
@@ -1796,7 +1796,7 @@ static void emit_switch_statement(struct statement *stmt)
static void x86_struct_member(struct symbol *sym)
{
- printf("\t%s:%d:%ld at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset, sym->bit_offset);
+ printf("\t%s:%d:%u at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset, sym->bit_offset);
printf("\n");
}
@@ -72,7 +72,7 @@ static void do_debug_symbol(struct symbol *sym, int indent)
if (!sym)
return;
- fprintf(stderr, "%.*s%s%3d:%lu %s %s (as: %d) %p (%s:%d:%d) %s\n",
+ fprintf(stderr, "%.*s%s%3d:%u %s %s (as: %d) %p (%s:%d:%d) %s\n",
indent, indent_string, typestr[sym->type],
sym->bit_size, sym->ctype.alignment,
modifier_string(sym->ctype.modifiers), show_ident(sym->ident), sym->ctype.as,
@@ -166,7 +166,7 @@ const char *modifier_string(unsigned long mod)
static void show_struct_member(struct symbol *sym)
{
- printf("\t%s:%d:%ld at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset, sym->bit_offset);
+ printf("\t%s:%d:%u at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset, sym->bit_offset);
printf("\n");
}
@@ -432,7 +432,7 @@ void show_symbol(struct symbol *sym)
return;
if (sym->ctype.alignment)
- printf(".align %ld\n", sym->ctype.alignment);
+ printf(".align %u\n", sym->ctype.alignment);
show_type(sym);
type = sym->ctype.base_type;
@@ -99,9 +99,9 @@ DECLARE_PTR_LIST(context_list, struct context);
struct ctype {
unsigned long modifiers;
- unsigned long alignment;
- struct context_list *contexts;
+ unsigned int alignment;
unsigned int as;
+ struct context_list *contexts;
struct symbol *base_type;
};
Using 'int' instead of 'long' for alignment and shuffling struct ctype's member around avoid any hole in the structure (on a 64bit machine), making it and struct symbol smaller. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com> --- compile-i386.c | 10 +++++----- show-parse.c | 6 +++--- symbol.h | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-)