BugFix: TLS variables are Sels, not SymConst
[libfirm] / ir / ana / irmemory.c
index 3c76a81..8020bae 100644 (file)
@@ -143,7 +143,7 @@ static int is_arg_Proj(ir_node *node) {
        node = get_Proj_pred(node);
        if (! is_Proj(node))
                return 0;
-       return is_Start(get_Proj_pred(node) && pn_Start_T_args == get_Proj_proj(node));
+       return pn_Start_T_args == get_Proj_proj(node) && is_Start(get_Proj_pred(node));
 }  /* is_arg_Proj */
 
 /**
@@ -597,7 +597,7 @@ static void check_global_address(ir_node *irn, void *env) {
                ent = get_SymConst_entity(irn);
        } else if (is_Sel(irn) && get_Sel_ptr(irn) == tls) {
                /* A TLS variable. */
-               ent = get_SymConst_entity(irn);
+               ent = get_Sel_entity(irn);
        } else
                return;