more debug info
[libfirm] / ir / opt / scalar_replace.c
index fbe05ff..1c30f9a 100644 (file)
@@ -230,6 +230,13 @@ int is_address_taken(ir_node *sel)
                         */
                        return 1;
 
+               case iro_Id: {
+                       int res = is_address_taken(succ);
+                       if (res)
+                               return 1;
+                       break;
+               }
+
                case iro_Tuple:
                        /* Non-optimized Tuple, happens in inlining */
                        for (input_nr = get_Tuple_n_preds(succ) - 1; input_nr >= 0; --input_nr) {
@@ -399,8 +406,7 @@ static path_t *find_path(ir_node *sel, unsigned len) {
 
        if (! is_Sel(pred)) {
                /* we found the root */
-
-               res = xmalloc(sizeof(*res) + (len - 1) * sizeof(res->path));
+               res = XMALLOCF(path_t, path, len);
                res->path_len = len;
        } else
                res = find_path(pred, len);