+ }
+ }
+ return new_cast;
+}
+
+
+static void normalize_irn_class_cast(ir_node *n, void *env) {
+ ir_node *res;
+ if (get_irn_op(n) == op_Cast) {
+ ir_node *pred = get_Cast_op(n);
+ ir_type *totype = get_Cast_type(n);
+ res = normalize_values_type(totype, pred);
+ set_Cast_op(n, res);
+ } else if (get_irn_op(n) == op_Call) {
+ int i, n_params = get_Call_n_params(n);
+ ir_type *tp = get_Call_type(n);
+ for (i = 0; i < n_params; ++i) {
+ res = normalize_values_type(get_method_param_type(tp, i), get_Call_param(n, i));
+ set_Call_param(n, i, res);