Lines Matching defs:specific
244 do_ts29113_check (gfc_intrinsic_sym *specific, gfc_actual_arglist *arg)
257 && specific->id != GFC_ISYM_C_LOC
258 && specific->id != GFC_ISYM_PRESENT)
266 && specific->id != GFC_ISYM_LBOUND
267 && specific->id != GFC_ISYM_PRESENT
268 && specific->id != GFC_ISYM_RANK
269 && specific->id != GFC_ISYM_SHAPE
270 && specific->id != GFC_ISYM_SIZE
271 && specific->id != GFC_ISYM_SIZEOF
272 && specific->id != GFC_ISYM_UBOUND
273 && specific->id != GFC_ISYM_IS_CONTIGUOUS
274 && specific->id != GFC_ISYM_C_LOC)
288 else if (a->expr->rank == -1 && !specific->inquiry)
313 do_check (gfc_intrinsic_sym *specific, gfc_actual_arglist *arg)
318 return (*specific->check.f0) ();
323 return (*specific->check.f1) (a1);
328 return (*specific->check.f2) (a1, a2);
333 return (*specific->check.f3) (a1, a2, a3);
338 return (*specific->check.f4) (a1, a2, a3, a4);
343 return (*specific->check.f5) (a1, a2, a3, a4, a5);
418 next_sym->specific = 0;
1119 /* Given a string, figure out if it is the name of a specific
1128 return (!sym || sym->from_module) ? 0 : sym->specific;
1201 also the name of a specific function. The rest of the specifics
1202 currently in the table are placed into the list of specific
1226 g->specific = 1;
1234 g->specific = 1;
1733 /* Making dcmplx a specific of cmplx causes cmplx to return a double
4523 resolve_intrinsic (gfc_intrinsic_sym *specific, gfc_expr *e)
4528 if (specific->resolve.f1 == NULL)
4531 e->value.function.name = specific->lib_name;
4534 e->ts = specific->ts;
4541 if (specific->resolve.f1m == gfc_resolve_max
4542 || specific->resolve.f1m == gfc_resolve_min)
4544 (*specific->resolve.f1m) (e, arg);
4550 (*specific->resolve.f0) (e);
4559 (*specific->resolve.f1) (e, a1);
4568 (*specific->resolve.f2) (e, a1, a2);
4577 (*specific->resolve.f3) (e, a1, a2, a3);
4586 (*specific->resolve.f4) (e, a1, a2, a3, a4);
4595 (*specific->resolve.f5) (e, a1, a2, a3, a4, a5);
4604 (*specific->resolve.f6) (e, a1, a2, a3, a4, a5, a6);
4619 do_simplify (gfc_intrinsic_sym *specific, gfc_expr *e)
4626 if (specific->simplify.f1 == gfc_simplify_min)
4632 if (specific->simplify.f1 == gfc_simplify_max)
4638 if (specific->simplify.f1 == NULL)
4648 result = (*specific->simplify.f0) ();
4655 if (specific->simplify.cc == gfc_convert_constant
4656 || specific->simplify.cc == gfc_convert_char_constant)
4658 result = specific->simplify.cc (a1, specific->ts.type, specific->ts.kind);
4663 result = (*specific->simplify.f1) (a1);
4670 result = (*specific->simplify.f2) (a1, a2);
4677 result = (*specific->simplify.f3) (a1, a2, a3);
4684 result = (*specific->simplify.f4) (a1, a2, a3, a4);
4691 result = (*specific
4698 result = (*specific->simplify.f6)
4714 resolve_intrinsic (specific, e); /* Must call at run-time */
4754 check_specific (gfc_intrinsic_sym *specific, gfc_expr *expr, int error_flag)
4761 init_arglist (specific);
4764 if (specific->check.f1m == gfc_check_min_max
4765 || specific->check.f1m == gfc_check_min_max_integer
4766 || specific->check.f1m == gfc_check_min_max_real
4767 || specific->check.f1m == gfc_check_min_max_double)
4769 if (!do_ts29113_check (specific, *ap))
4771 return (*specific->check.f1m) (*ap);
4774 if (!sort_actual (specific->name, ap, specific->formal, &expr->where))
4777 if (!do_ts29113_check (specific, *ap))
4780 if (specific->check.f5ml == gfc_check_minloc_maxloc)
4783 else if (specific->check.f6fl == gfc_check_findloc)
4785 else if (specific->check.f3red == gfc_check_minval_maxval)
4789 else if (specific->check.f3red == gfc_check_product_sum)
4793 else if (specific->check.f3red == gfc_check_transf_bit_intrins)
4798 if (specific->check.f1 == NULL)
4800 t = check_arglist (ap, specific, error_flag);
4802 expr->ts = specific->ts;
4805 t = do_check (specific, *ap);
4809 if (t && specific->elemental)
4937 gfc_intrinsic_sym *isym, *specific;
4959 isym = specific = gfc_intrinsic_function_by_id (id);
4962 isym = specific = gfc_find_function (sym->name);
5019 /* If the function is generic, check all of its specific
5020 incarnations. If the generic name is also a specific, we check
5022 specific. */
5027 for (specific = isym->specific_head; specific;
5028 specific = specific->next)
5030 if (specific == isym)
5032 if (check_specific (specific, expr, 0))
5049 specific = isym;
5052 expr->value.function.isym = specific;
5056 if (!do_simplify (specific, expr))