Lines Matching defs:arguments

42 // Dummy arguments to generic intrinsic procedures are each specified by
54 // These typeless arguments are represented in the tables as if they were
58 // Assumed-type (TYPE(*)) dummy arguments can be forwarded along to some
201 // For DOT_PRODUCT and MATMUL, the result type depends on the arguments
219 // The default rank pattern for dummy arguments and function results is
222 elemental, // scalar, or array that conforms with other array arguments
267 // constexpr abbreviations for popular arguments:
326 // the dummy arguments and for the result of the function.
1098 // in Table 16.2 can be used as actual arguments, PROCEDURE() interfaces,
1112 // result and not the arguments.
1115 // is to convert the actual arguments to the required dummy types and this is
1246 // in F'77 and F'90 has only two arguments; later standards omit the
1664 // Ensure that the keywords of arguments to MAX/MIN and their variants
1693 // are not optional. The rest of the arguments are not sorted, there are no
1714 // Note that for arguments other than a1 and a2, this error will be caught
1763 // Intrinsic interface matching against the arguments of a particular
1768 ActualArguments &arguments, FoldingContext &context,
1771 // Attempt to construct a 1-1 correspondence between the dummy arguments in
1773 // arguments in a procedure reference.
1790 for (std::optional<ActualArgument> &arg : arguments) {
1852 "too many actual arguments for intrinsic '%s'"_err_en_US, name);
1861 // Check types and kinds of the actual arguments against the intrinsic's
1862 // interface. Ensure that two or more arguments that have to have the same
1864 // arguments now, too.
1881 messages.Say("missing mandatory 'a1=' and 'a2=' arguments"_err_en_US);
1947 "Typeless (BOZ) not allowed for both '%s=' & '%s=' arguments"_err_en_US, // C7109
2119 // Check the ranks of the arguments against the intrinsic's interface.
2548 // Rearrange the actual arguments into dummy argument order.
2786 bool CheckAndRearrangeArguments(ActualArguments &arguments,
2794 if (arguments.size() > numDummies) {
2795 messages.Say("Too many actual arguments (%zd > %zd)"_err_en_US,
2796 arguments.size(), numDummies);
2802 for (std::optional<ActualArgument> &arg : arguments) {
2818 "A positional actual argument may not appear after any keyword arguments"_err_en_US);
2840 arguments = std::move(rearranged);
2846 ActualArguments &arguments, FoldingContext &context) const {
2848 if (CheckAndRearrangeArguments(arguments, context.messages(), keywords, 1) &&
2849 arguments[0]) {
2850 Expr<SomeType> *mold{arguments[0]->UnwrapExpr()};
2857 if (IsAssumedRank(*arguments[0])) {
2858 context.messages().Say(arguments[0]->sourceLocation(),
2892 context.messages().Say(arguments[0]->sourceLocation(),
2902 std::move(arguments)};
2907 context.messages().Say(arguments[0]->sourceLocation(),
2914 arguments.clear();
2918 std::move(arguments)};
2925 ActualArguments &arguments, FoldingContext &context) const {
2930 if (CheckAndRearrangeArguments(arguments, context.messages(), keywords, 1)) {
2931 CHECK(arguments.size() == 3);
2932 if (const auto *expr{arguments[0].value().UnwrapExpr()}) {
2942 context.messages().Say(arguments[0]->sourceLocation(),
2951 if (const auto *expr{arguments[1].value().UnwrapExpr()}) {
2953 auto at{arguments[1]->sourceLocation()};
3003 if (arguments[2] && fptrRank == 0) {
3004 context.messages().Say(arguments[2]->sourceLocation(),
3006 } else if (!arguments[2] && fptrRank > 0) {
3009 } else if (arguments[2]) {
3010 if (const auto *argExpr{arguments[2].value().UnwrapExpr()}) {
3012 context.messages().Say(arguments[2]->sourceLocation(),
3017 context.messages().Say(arguments[2]->sourceLocation(),
3028 if (arguments[2]) {
3029 if (auto type{arguments[2]->GetType()}) {
3043 std::move(arguments)};
3051 ActualArguments &arguments, FoldingContext &context) const {
3053 if (CheckAndRearrangeArguments(arguments, context.messages(), keywords)) {
3054 CHECK(arguments.size() == 1);
3055 CheckForCoindexedObject(context.messages(), arguments[0], "c_loc", "x");
3056 const auto *expr{arguments[0].value().UnwrapExpr()};
3060 context.messages().Say(arguments[0]->sourceLocation(),
3064 arguments[0], context)}) {
3066 context.messages().Say(arguments[0]->sourceLocation(),
3071 context.messages().Say(arguments[0]->sourceLocation(),
3079 context.messages().Say(arguments[0]->sourceLocation(),
3082 context.messages().Say(arguments[0]->sourceLocation(),
3093 arguments[0]->sourceLocation(),
3099 arguments[0]->sourceLocation(),
3116 std::move(arguments)};
3124 ActualArguments &arguments, FoldingContext &context) const {
3127 if (CheckAndRearrangeArguments(arguments, context.messages(), keywords)) {
3128 CHECK(arguments.size() == 1);
3129 const auto *expr{arguments[0].value().UnwrapExpr()};
3131 arguments[0], context)}) {
3133 context.messages().Say(arguments[0]->sourceLocation(),
3138 context.messages().Say(arguments[0]->sourceLocation(),
3146 context.messages().Say(arguments[0]->sourceLocation(),
3149 context.messages().Say(arguments[0]->sourceLocation(),
3160 arguments[0]->sourceLocation(),
3166 arguments[0]->sourceLocation(),
3183 std::move(arguments)};
3254 const auto &arg{call.arguments[0]};
3268 context.messages(), call.arguments[2], name, "stat");
3271 context.messages(), call.arguments[4], name, "stat");
3274 context, call.arguments[0], call.arguments[1], call.arguments[2], name);
3278 context.messages(), call.arguments[3], name, "stat");
3281 context, call.arguments[1], call.arguments[0], call.arguments[2], name);
3285 context.messages(), call.arguments[0], name, "a")};
3287 context.messages(), call.arguments[2], name, "stat")};
3289 context.messages(), call.arguments[3], name, "errmsg")};
3292 if (const auto &arg{call.arguments[0]}) {
3296 const auto &arg{call.arguments[0]};
3330 const CallCharacteristics &call, ActualArguments &arguments,
3337 return HandleC_F_Pointer(arguments, context);
3340 for (const auto &arg : arguments) {
3346 if (arguments.size() - optionalCount > 1) {
3348 "RANDOM_SEED must have either 1 or no arguments"_err_en_US);
3353 return HandleC_Loc(arguments, context);
3355 return HandleC_Devloc(arguments, context);
3357 return HandleNull(arguments, context);
3366 call, defaults_, arguments, context, builtinsScope_)}) {
3389 call, defaults_, arguments, localContext, builtinsScope_)}) {
3405 for (const auto &a : arguments) {
3452 // specifics with DoublePrecisionComplex arguments.
3564 // All character arguments to specific intrinsic functions are
3607 const CallCharacteristics &call, ActualArguments &arguments,
3609 return DEREF(impl_.get()).Probe(call, arguments, context);
3684 // dummy arguments. This rule does not apply to intrinsics in general.