× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: ILE bug or "feature"?
  • From: "M. Lazarus" <mlazarus@xxxxxxxx>
  • Date: Tue, 06 Feb 2001 14:21:10 -0500

Barbara, Jon, et al,

  This code (equivalent) was shown to me and the program's behavior 
surprised me.

  I'm not sure if I'm missing something or if this is an ILE bug.

CLLE
----
xtest: pgm

        dcl  &p1   *char   10 'ABCDEFGHIJ'
        dcl  &p2   *char    5 'klmno'
        dcl  &p3   *char    8 'PQRSTUVW'
        dcl  &p4   *char    3 'xyz'
        dcl  &p5   *char    6 '123456'

        callprc  xtest1  parm( &p1 &p2 &p3 &p4 &p5 )

        callprc  xtest2

endpgm
-----
RPGLE - XTEST1
-----
  *  Testing ILE call/parm bug
D P1              S             10
D P2              S              5
D P3              S              8
D P4              S              3
D P5              S              6

C     *Entry        PLIST
C                   PARM                    P1
C                   PARM                    P2
C                   PARM                    P3
C                   PARM                    P4
C                   PARM                    P5

C                   SETON                                        LR
C                   RETURN
-----
RPGLE - XTEST2
-----
D P1x             S             10
D P2x             S              5
D P3x             S              8
D P4x             S              3
D P5x             S              6

C     *Entry        PLIST
C                   PARM                    P1x
C                   PARM                    P2x
C                   PARM                    P3x
C                   PARM                    P4x
C                   PARM                    P5x

C                   SETON                                        LR
C                   RETURN
--------------------------------
  OK, pop quiz:  What are the values (under debug) of P1x through P5x?

  Sources were compiled:

CRTCLMOD  MODULE(XTEST)  SRCFILE(QCLSRC) SRCMBR(XTEST) TGTRLS(V4R5M0) 
DBGVIEW(*ALL)
CRTRPGMOD MODULE(XTEST1) SRCFILE(QRPGLESRC) SRCMBR(XTEST1) DBGVIEW(*ALL) 
TGTRLS(V4R5M0)
CRTRPGMOD MODULE(XTEST2) SRCFILE(QRPGLESRC) SRCMBR(XTEST2) DBGVIEW(*ALL) 
TGTRLS(V4R5M0)
CRTPGM    PGM(XTEST)     MODULE(XTEST XTEST1 XTEST2) ACTGRP('ABC') 
TGTRLS(V4R5M0)
--------------------------------

  Surprise (to me) answer:  The variables remained with the same values 
throughout.

P1x = 'ABCDEFGHIJ'
P2x = 'klmno'
P3x = 'PQRSTUVW'
P4x = 'xyz'
P5x = '123456'

  Why the surprise?  I expected the program to either bomb (no parms were 
passed to XTEST2) or the variables should have been cleared.  The pointers 
from the first call seem to have been retained between calls.

  Is this a bug, design flaw, feature, other?

  To field the obvious question: Why are you calling a module that is 
supposed to receive parms w/o any?
1)  It was discovered accidentally.
2)  In an ILE environment, where a module is supposed to be designed for 
reuse, this is an entirely possible scenario.

  -mark

+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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

This mailing list archive is Copyright 1997-2024 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.