X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_new_nodes.c;h=1c1aaea4c0775198c301f12f23058122cfa33c6f;hb=61f4d246e707173f272e6ead6f42360a4674f951;hp=ba1e3a6d380b122e79dff037d4b74198f79473fe;hpb=c3735f007fcf15206ca564ba00a57e25b7632d20;p=libfirm diff --git a/ir/be/ia32/ia32_new_nodes.c b/ir/be/ia32/ia32_new_nodes.c index ba1e3a6d3..1c1aaea4c 100644 --- a/ir/be/ia32/ia32_new_nodes.c +++ b/ir/be/ia32/ia32_new_nodes.c @@ -542,14 +542,13 @@ void set_ia32_am_flavour(ir_node *node, ia32_am_flavour_t am_flavour) { */ char *get_ia32_am_offs(const ir_node *node) { ia32_attr_t *attr = get_ia32_attr(node); - char *res = NULL; + static char res[64]; if (! attr->am_offs) { return NULL; } - res = obstack_alloc(get_irg_obstack(get_irn_irg(node)), 64); - snprintf(res, 64, "%+ld", attr->am_offs); + snprintf(res, sizeof(res), "%+ld", attr->am_offs); return res; } @@ -572,12 +571,12 @@ static void extend_ia32_am_offs(ir_node *node, char *offset, char op) { if (! offset || strlen(offset) < 1) return; - sscanf(offset, "%d", &o); + assert(sscanf(offset, "%d", &o) == 1); if (op == '-') attr->am_offs -= o; else if (op == '+') - attr->am_offs -= o; + attr->am_offs += o; else assert(0); }