Lines Matching refs:omp_udr

170 gfc_free_omp_udr (gfc_omp_udr *omp_udr)  in gfc_free_omp_udr()  argument
172 if (omp_udr) in gfc_free_omp_udr()
174 gfc_free_omp_udr (omp_udr->next); in gfc_free_omp_udr()
175 gfc_free_namespace (omp_udr->combiner_ns); in gfc_free_omp_udr()
176 if (omp_udr->initializer_ns) in gfc_free_omp_udr()
177 gfc_free_namespace (omp_udr->initializer_ns); in gfc_free_omp_udr()
178 free (omp_udr); in gfc_free_omp_udr()
192 gfc_omp_udr *omp_udr; in gfc_find_omp_udr() local
197 for (omp_udr = st->n.omp_udr; omp_udr; omp_udr = omp_udr->next) in gfc_find_omp_udr()
199 return omp_udr; in gfc_find_omp_udr()
200 else if (gfc_compare_types (&omp_udr->ts, ts)) in gfc_find_omp_udr()
204 if (omp_udr->ts.u.cl->length == NULL) in gfc_find_omp_udr()
205 return omp_udr; in gfc_find_omp_udr()
208 if (gfc_compare_expr (omp_udr->ts.u.cl->length, in gfc_find_omp_udr()
213 return omp_udr; in gfc_find_omp_udr()
2926 gfc_omp_udr *omp_udr; in gfc_omp_udr_find() local
2931 for (omp_udr = st->n.omp_udr; omp_udr; omp_udr = omp_udr->next) in gfc_omp_udr_find()
2932 if (omp_udr->ts.type == ts->type in gfc_omp_udr_find()
2933 || ((omp_udr->ts.type == BT_DERIVED || omp_udr->ts.type == BT_CLASS) in gfc_omp_udr_find()
2936 if (omp_udr->ts.type == BT_DERIVED || omp_udr->ts.type == BT_CLASS) in gfc_omp_udr_find()
2938 if (strcmp (omp_udr->ts.u.derived->name, ts->u.derived->name) == 0) in gfc_omp_udr_find()
2939 return omp_udr; in gfc_omp_udr_find()
2941 else if (omp_udr->ts.kind == ts->kind) in gfc_omp_udr_find()
2943 if (omp_udr->ts.type == BT_CHARACTER) in gfc_omp_udr_find()
2945 if (omp_udr->ts.u.cl->length == NULL in gfc_omp_udr_find()
2947 return omp_udr; in gfc_omp_udr_find()
2948 if (omp_udr->ts.u.cl->length->expr_type != EXPR_CONSTANT) in gfc_omp_udr_find()
2949 return omp_udr; in gfc_omp_udr_find()
2951 return omp_udr; in gfc_omp_udr_find()
2952 if (omp_udr->ts.u.cl->length->ts.type != BT_INTEGER) in gfc_omp_udr_find()
2953 return omp_udr; in gfc_omp_udr_find()
2955 return omp_udr; in gfc_omp_udr_find()
2956 if (gfc_compare_expr (omp_udr->ts.u.cl->length, in gfc_omp_udr_find()
2960 return omp_udr; in gfc_omp_udr_find()
3036 gfc_omp_udr *prev_udr, *omp_udr; in gfc_match_omp_declare_reduction() local
3039 omp_udr = gfc_get_omp_udr (); in gfc_match_omp_declare_reduction()
3040 omp_udr->name = gfc_get_string ("%s", name); in gfc_match_omp_declare_reduction()
3041 omp_udr->rop = rop; in gfc_match_omp_declare_reduction()
3042 omp_udr->ts = tss[i]; in gfc_match_omp_declare_reduction()
3043 omp_udr->where = where; in gfc_match_omp_declare_reduction()
3058 omp_udr->combiner_ns = combiner_ns; in gfc_match_omp_declare_reduction()
3059 omp_udr->omp_out = omp_out->n.sym; in gfc_match_omp_declare_reduction()
3060 omp_udr->omp_in = omp_in->n.sym; in gfc_match_omp_declare_reduction()
3070 gfc_free_omp_udr (omp_udr); in gfc_match_omp_declare_reduction()
3091 omp_udr->initializer_ns = initializer_ns; in gfc_match_omp_declare_reduction()
3092 omp_udr->omp_priv = omp_priv->n.sym; in gfc_match_omp_declare_reduction()
3093 omp_udr->omp_orig = omp_orig->n.sym; in gfc_match_omp_declare_reduction()
3132 omp_udr->next = st->n.omp_udr; in gfc_match_omp_declare_reduction()
3133 st->n.omp_udr = omp_udr; in gfc_match_omp_declare_reduction()
3138 st->n.omp_udr = omp_udr; in gfc_match_omp_declare_reduction()
6473 gfc_omp_udr *omp_udr; member
6486 if ((*e)->symtree->n.sym != cd->omp_udr->omp_priv in omp_udr_callback()
6487 && (*e)->symtree->n.sym != cd->omp_udr->omp_orig) in omp_udr_callback()
6494 if ((*e)->symtree->n.sym != cd->omp_udr->omp_out in omp_udr_callback()
6495 && (*e)->symtree->n.sym != cd->omp_udr->omp_in) in omp_udr_callback()
6507 gfc_resolve_omp_udr (gfc_omp_udr *omp_udr) in gfc_resolve_omp_udr() argument
6512 switch (omp_udr->rop) in gfc_resolve_omp_udr()
6526 omp_udr->name, &omp_udr->where); in gfc_resolve_omp_udr()
6530 if (gfc_omp_udr_predef (omp_udr->rop, omp_udr->name, in gfc_resolve_omp_udr()
6531 &omp_udr->ts, &predef_name)) in gfc_resolve_omp_udr()
6536 predef_name, &omp_udr->where); in gfc_resolve_omp_udr()
6539 "!$OMP DECLARE REDUCTION at %L", &omp_udr->where); in gfc_resolve_omp_udr()
6543 if (omp_udr->ts.type == BT_CHARACTER in gfc_resolve_omp_udr()
6544 && omp_udr->ts.u.cl->length in gfc_resolve_omp_udr()
6545 && omp_udr->ts.u.cl->length->expr_type != EXPR_CONSTANT) in gfc_resolve_omp_udr()
6548 "constant at %L", omp_udr->name, &omp_udr->where); in gfc_resolve_omp_udr()
6553 cd.omp_udr = omp_udr; in gfc_resolve_omp_udr()
6555 gfc_code_walker (&omp_udr->combiner_ns->code, gfc_dummy_code_callback, in gfc_resolve_omp_udr()
6557 if (omp_udr->combiner_ns->code->op == EXEC_CALL) in gfc_resolve_omp_udr()
6559 for (a = omp_udr->combiner_ns->code->ext.actual; a; a = a->next) in gfc_resolve_omp_udr()
6565 &omp_udr->combiner_ns->code->loc); in gfc_resolve_omp_udr()
6567 if (omp_udr->initializer_ns) in gfc_resolve_omp_udr()
6570 gfc_code_walker (&omp_udr->initializer_ns->code, gfc_dummy_code_callback, in gfc_resolve_omp_udr()
6572 if (omp_udr->initializer_ns->code->op == EXEC_CALL) in gfc_resolve_omp_udr()
6574 for (a = omp_udr->initializer_ns->code->ext.actual; a; a = a->next) in gfc_resolve_omp_udr()
6580 "at %L", &omp_udr->initializer_ns->code->loc); in gfc_resolve_omp_udr()
6581 for (a = omp_udr->initializer_ns->code->ext.actual; a; a = a->next) in gfc_resolve_omp_udr()
6584 && a->expr->symtree->n.sym == omp_udr->omp_priv in gfc_resolve_omp_udr()
6590 "at %L", &omp_udr->initializer_ns->code->loc); in gfc_resolve_omp_udr()
6593 else if (omp_udr->ts.type == BT_DERIVED in gfc_resolve_omp_udr()
6594 && !gfc_has_default_initializer (omp_udr->ts.u.derived)) in gfc_resolve_omp_udr()
6598 &omp_udr->where); in gfc_resolve_omp_udr()
6606 gfc_omp_udr *omp_udr; in gfc_resolve_omp_udrs() local
6612 for (omp_udr = st->n.omp_udr; omp_udr; omp_udr = omp_udr->next) in gfc_resolve_omp_udrs()
6613 gfc_resolve_omp_udr (omp_udr); in gfc_resolve_omp_udrs()