@@ -2188,7 +2188,7 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
2188
2188
}
2189
2189
2190
2190
ASR::symbol_t *s = current_scope->resolve_symbol (call_name), *s_generic = nullptr ;
2191
- if (s->type == ASR::symbolType::GenericProcedure){
2191
+ if (s!= nullptr && s ->type == ASR::symbolType::GenericProcedure) {
2192
2192
ASR::GenericProcedure_t *p = ASR::down_cast<ASR::GenericProcedure_t>(s);
2193
2193
int idx = select_generic_procedure (args, *p, x.base .base .loc );
2194
2194
// Create ExternalSymbol for procedures in different modules.
@@ -2331,10 +2331,10 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
2331
2331
value = intrinsic_procedures.comptime_eval (call_name, al, x.base .base .loc , args);
2332
2332
}
2333
2333
tmp = ASR::make_FunctionCall_t (al, x.base .base .loc , stemp,
2334
- nullptr , args.p , args.size (), nullptr , 0 , a_type, value, nullptr );
2334
+ s_generic , args.p , args.size (), nullptr , 0 , a_type, value, nullptr );
2335
2335
} else if (ASR::is_a<ASR::Subroutine_t>(*s)) {
2336
2336
tmp = ASR::make_SubroutineCall_t (al, x.base .base .loc , stemp,
2337
- nullptr , args.p , args.size (), nullptr );
2337
+ s_generic , args.p , args.size (), nullptr );
2338
2338
} else {
2339
2339
throw SemanticError (" Unsupported call type for " + call_name,
2340
2340
x.base .base .loc );
0 commit comments