Lines Matching defs:case_expr
8685 validate_case_label_expr (gfc_expr *e, gfc_expr *case_expr)
8689 if (e->ts.type != case_expr->ts.type)
8692 &e->where, gfc_basic_typename (case_expr->ts.type));
8700 if (case_expr->ts.type == BT_CHARACTER && e->ts.kind != case_expr->ts.kind)
8703 &e->where, case_expr->ts.kind);
8710 if (e->ts.kind != case_expr->ts.kind)
8711 gfc_convert_type_warn (e, &case_expr->ts, 2, 0);
8739 easily work around that here: The case_expr for a "real" SELECT CASE
8741 we have to do is make sure that the case_expr is a scalar integer
8748 gfc_expr *case_expr;
8759 case_expr = code->expr2;
8760 if (case_expr->ts.type != BT_INTEGER|| case_expr->rank != 0)
8763 &case_expr->where);
8767 case_expr from expr2 to expr so that we can handle computed
8774 case_expr = code->expr1;
8775 type = case_expr->ts.type;
8781 &case_expr->where, gfc_typename (case_expr));
8788 if (!select_type && case_expr->rank != 0)
8791 "expression", &case_expr->where);
8807 case_expr->ts.kind) != ARITH_OK)
8810 gfc_typename (case_expr));
8815 case_expr->ts.kind) != ARITH_OK)
8818 gfc_typename (case_expr));
8823 of case values, and if we find a mismatch, promote case_expr to
8844 && case_expr->ts.kind != gfc_kind_max(case_expr, cp->low))
8845 gfc_convert_type_warn (case_expr, &cp->low->ts, 1, 0);
8848 && case_expr->ts.kind != gfc_kind_max(case_expr, cp->high))
8849 gfc_convert_type_warn (case_expr, &cp->high->ts, 1, 0);
8893 if (!validate_case_label_expr (cp->low, case_expr)
8894 || !validate_case_label_expr (cp->high, case_expr))