values may die at every use
[libfirm] / ir / be / benode.c
index 0b3cf1d..3cc8b42 100644 (file)
@@ -188,10 +188,9 @@ static int FrameAddr_cmp_attr(ir_node *a, ir_node *b) {
        be_frame_attr_t *a_attr = get_irn_attr(a);
        be_frame_attr_t *b_attr = get_irn_attr(b);
 
-       if (cmp_node_attr(&a_attr->node_attr, &b_attr->node_attr))
-               return 1;
-       return (a_attr->ent    != b_attr->ent ||
-               a_attr->offset != b_attr->offset);
+       if (a_attr->ent == b_attr->ent && a_attr->offset == b_attr->offset)
+               return cmp_node_attr(&a_attr->node_attr, &b_attr->node_attr);
+       return 1;
 }
 
 void be_node_init(void) {
@@ -1318,6 +1317,7 @@ static void dump_node_req(FILE *f, int idx, be_req_t *req)
        const char *prefix = buf;
 
        snprintf(buf, sizeof(buf), "#%d ", idx);
+       buf[sizeof(buf) - 1] = '\0';
 
        if(req->flags != arch_irn_flags_none) {
                fprintf(f, "%sflags: ", prefix);