×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Hi Cyndi,

Over the years, I've coded different routines named 'die'. In my IFS E-book and my Expat service program examples, I provided a return value. in my socket tutorial, amongst other things, I did not use a return value.

It would appear that you have both on your system? And you are perhaps including them both in the same program. The prototype (D-specs) are picking up one definition, whereas the procedure body is picking up a different definition.

This has nothing to do with whether you are at release V6 or V7. It's simply two different definitions for the same procedure name.

-SK



On 8/27/2012 10:58 AM, Cyndi Bradberry wrote:
Everyone, Please be kind, I really am blonde and I don't understand what the system wants. This all worked fine on a V6 system. We have moved to a V7 box and now this does not compile. I have tried compiling to V6 release level, but it still doesn't work. This is called in the program as a callP

callp die('socket(): ' + %str(strerror(errno)))

This is the code as shown in the compile listing with the errors.

*RNF3763 20 1 A return value is expected for the procedure-interface
specification.
*RNF5413 30 2 An operand must be specified for a procedure that returns a
value.
*RNF5415 30 1 The procedure returns a value, but no RETURN operation was
found.
* * * * * E N D O F M E S S A G E S U M M A R Y * * * * *

339500 P die B
339600 D die PI
======> aaa aaaaaaa
*RNF3763 20 a 339600 A return value is expected for the procedure-interface
specification.
339700 D peMsg 256A const
339800
339900 D SndPgmMsg PR ExtPgm('QMHSNDPM')
340000 D MessageID 7A Const
340100 D QualMsgF 20A Const
340200 D MsgData 256A Const
340300 D MsgDtaLen 10I 0 Const
340400 D MsgType 10A Const
340500 D CallStkEnt 10A Const
340600 D CallStkCnt 10I 0 Const
340700 D MessageKey 4A
340800 D ErrorCode 32766A options(*varsize)
340900
341000 D dsEC DS
341100 D dsECBytesP 1 4I 0 INZ(256)
341200 D dsECBytesA 5 8I 0 INZ(0)
341300 D dsECMsgID 9 15
341400 D dsECReserv 16 16
341500 D dsECMsgDta 17 256
341600
341700 D wwMsgLen S 10I 0
341800 D wwTheKey S 4A
341900
342000 c eval wwMsgLen = %len(%trimr(peMsg))
342100 c if wwMsgLen<1
342200 c | return
======> a
*RNF5413 30 a 342200 An operand must be specified for a procedure that returns a
value.
342300 c endif
342400
342500 c callp SndPgmMsg('CPF9897': 'QCPFMSG *LIBL':
342600 c peMsg: wwMsgLen: '*ESCAPE':
342700 c '*PGMBDY': 1: wwTheKey: dsEC)
342800
342900 c return
======> a
*RNF5413 30 a 342900 An operand must be specified for a procedure that returns a
value.
*RNF5415 30 339500 The procedure returns a value, but no RETURN operation was
found.
343000 P E


I have tried to create a return variable, as is used in other subprocedures, with no joy. Please tell me specifically what to put in.
The program needs to be changed today and I have not been able to make it work in a month of trying.

Thanks,

Cyndi B.
Boise, ID


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.