@@ -3013,14 +3013,14 @@ exp_call(ILM_OP opc, ILM *ilmp, int curilm)
30133013 case IM_CDFUNCA :
30143014 i = 4 ;
30153015 share_cfunc :
3016+ ilm1 = ILM_OPND (ilmp , i );
3017+ dtype = IILM_OPND (ilm1 , 2 );
3018+ if (IILM_OPC (ilm1 ) == IM_FARG || IILM_OPC (ilm1 ) == IM_FARGF )
3019+ ilm1 = IILM_OPND (ilm1 , 1 );
3020+ cfunc = ILM_RESULT (ilm1 );
3021+ cfunc_nme = NME_OF (ilm1 );
30163022 if (CFUNCG (exp_call_sym ) || (funcptr_flags & FUNCPTR_BINDC ) ||
30173023 CMPLXFUNC_C ) {
3018- ilm1 = ILM_OPND (ilmp , i );
3019- dtype = IILM_OPND (ilm1 , 2 );
3020- if (IILM_OPC (ilm1 ) == IM_FARG || IILM_OPC (ilm1 ) == IM_FARGF )
3021- ilm1 = IILM_OPND (ilm1 , 1 );
3022- cfunc = ILM_RESULT (ilm1 );
3023- cfunc_nme = NME_OF (ilm1 );
30243024 ADDRTKNP (IILM_OPND (ilm1 , 1 ), 1 );
30253025 nargs -- ;
30263026 if (opc == IM_CFUNCA || opc == IM_CDFUNCA ) {
@@ -3035,29 +3035,6 @@ exp_call(ILM_OP opc, ILM *ilmp, int curilm)
30353035 garg_ili [0 ].dtype = dtype ;
30363036 garg_ili [0 ].nme = cfunc_nme ;
30373037 }
3038- break ;
3039- }
3040- if ((funcptr_flags & FUNCPTR_BINDC )) {
3041- ilm1 = ILM_OPND (ilmp , 4 );
3042- } else {
3043- ilm1 = ILM_OPND (ilmp , 3 );
3044- }
3045- dtype = IILM_OPND (ilm1 , 2 );
3046- if (IILM_OPC (ilm1 ) == IM_FARG )
3047- ilm1 = IILM_OPND (ilm1 , 1 );
3048- else if (IILM_OPC (ilm1 ) == IM_FARGF )
3049- ilm1 = IILM_OPND (ilm1 , 1 );
3050- cfunc = ILM_RESULT (ilm1 );
3051- cfunc_nme = NME_OF (ilm1 );
3052- if ((funcptr_flags & FUNCPTR_BINDC )) {
3053- i = 4 ; /* ilm pointer to first arg */
3054- if (XBIT (121 , 0x800 )) {
3055- garg_ili [0 ].ilix = cfunc ;
3056- garg_ili [0 ].dtype = dtype ;
3057- garg_ili [0 ].nme = cfunc_nme ;
3058- }
3059- } else {
3060- i = 3 ; /* ilm pointer to first arg */
30613038 }
30623039 break ;
30633040 case IM_CHVFUNCA :
0 commit comments