View previous topic :: View next topic
|
Author |
Message |
csc7660
New User
Joined: 18 Sep 2008 Posts: 2 Location: Denmark
|
|
|
|
Hi
I am getting the below mentioned warning message IBM1214I when I use the bellow piece of code in my program.
IBM1214I W A dummy argument will be created for argument number 1 in entry reference
DCL arg1 CHAR(023) BASED(ADDR(argRecord));
CALL MyProc(arg1,15);
...
MyProc: PROC(SomeString,SomeNumber);
DCL arg11 CHAR(300);
DCL arg22 BIN FIXED(15,0);
I am calling this MyProc say 150 times. When I try to compile, I get 150 warning messages. My compiler has a threshold of handling only first 100 warnings.
How to supress these warnings? I have tried using the below but no use.
DCL arg1 CHAR(023) BASED(ADDR(argRecord));
also tried
DCL MyProc ENTRY(UNALIGNED CHAR, UNALIGNED FIXED BIN);
Can someone please throw some light onto this issue? Thank you so much.
Regards |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
The messages and codes manual says
Quote: |
IBM1214I W A dummy argument will be created for argument number
argument-number in entry reference entry name.
Explanation: An argument passed BYADDR to an entry does not match the corresponding parameter in the entry description. The address of the argument will not be passed to the entry. Instead, the argument will be assigned to a temporary with attributes that do match the parameter in the entry description, and the address of that temporary will be passed to the entry. This means that if the entry alters the value of this parameter, the alteration will not be visible in the calling routine.
dcl e entry( fixed bin(31) );
dcl i fixed bin(15);
call e( i );
|
which implies the fix is to change the argument (or the parameter) to match the parameter (or argument). |
|
Back to top |
|
|
csc7660
New User
Joined: 18 Sep 2008 Posts: 2 Location: Denmark
|
|
|
|
I read these comments from Mainframes help topics... any further help? Thanks. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Unless i misunderstand, you need to fix the code. . . .
I suppose you could conserve effort and only fix 51 of them. . . |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Have you tried changing the (023) to (300) or the (300) to (023)? Code fixes tend to be more your responsibility, of course -- not ours. |
|
Back to top |
|
|
hchinnam
New User
Joined: 18 Oct 2006 Posts: 73
|
|
|
|
csc7660 wrote: |
DCL arg1 CHAR(023) BASED(ADDR(argRecord));
CALL MyProc(arg1,15);
...
MyProc: PROC(SomeString,SomeNumber);
DCL arg11 CHAR(300);
DCL arg22 BIN FIXED(15,0);[/color]
|
Long since I worked in PL/I, But I thought declaration of "somestring" should match that of "arg1".
Can you post your declarations in Myproc.
Also can you post what compiler is saying about declaration of "somestring" |
|
Back to top |
|
|
|