Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Invalid DEFINED - string overlay

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> PL/I & Assembler
View previous topic :: :: View next topic  
Author Message
Ajay Baghel

Active User


Joined: 25 Apr 2007
Posts: 205
Location: Bangalore

PostPosted: Sun Mar 11, 2012 5:13 pm    Post subject: Invalid DEFINED - string overlay
Reply with quote

Hi Friends,

While compiling a program (from PL/I for MVS & VM to Enterprise PL/I for z/OS Conversion) , I am getting the below error:


Code:

- Compiler Messages                                                             
0 Message     Statement  Message Description                                   
0 IBM1385I E          9  Invalid DEFINED - string overlay defining attempted. 
 


Below is extract of statement (line no 9 ) having error
Code:

2  1         DCL B FIXED(1);               
3  1         DCL A PTR;                                 
4  1         DCL (ADDR, VERIFY, DATETIME) BUILTIN;         
5  1         A = ADDR(B);                         
6  1         DCL WRKAREA CHAR(48) BASED(A);             
7  1         DCL ABC CHAR(48);                         
8  1         ABC = WRKAREA;                           
9  1          DCL 1 DATRET DEF ABC,                   
                   2 DANUM FIXED BIN(31,0) UNALIGNED,   
                   2 WKDANUM PIC '9',             
                   2 DANAME CHAR(9),               
                   2 MONAME CHAR(9),             
                                                 
                   2 MO PIC '99',                 
                   2 DA PIC '99',                 
                   2 YR PIC '9999',               
                   2 DAYR PIC '999',             
                                                   
                   2 HOURS PIC '99',             
                    .   
                         .
                    .



Is the below fix appropriate correction for the line no 9 ?

Code:
DCL 1 DATRET BASED(ADDR(ABC)),


Thanks,
Ajay
Back to top
View user's profile Send private message

prino

Senior Member


Joined: 07 Feb 2009
Posts: 1027
Location: Oostende, Belgium

PostPosted: Sun Mar 11, 2012 5:55 pm    Post subject:
Reply with quote

1) Why do you base a big workarea on a "fixed (1)"???
2) RTFM, especially about new features of Enterprise PL/I, such as "UNION"s, which almost completely remove the need for "DEFINED" and "BASED" and allow the compiler to

a) generate (much) better code and
b) do far more error-checking at compile-time
Back to top
View user's profile Send private message
Ajay Baghel

Active User


Joined: 25 Apr 2007
Posts: 205
Location: Bangalore

PostPosted: Sun Mar 11, 2012 7:06 pm    Post subject:
Reply with quote

Thanks Prino!!

Well! this time I used "Union" instead of "DEF" and replaced below code with later code:

Code:

2  1         DCL B FIXED(1);               
3  1         DCL A PTR;                                 
4  1         DCL (ADDR, VERIFY, DATETIME) BUILTIN;         
5  1         A = ADDR(B);                         
6  1         DCL WRKAREA CHAR(48) BASED(A);             
7  1         DCL ABC CHAR(48);                         
8  1         ABC = WRKAREA;                           
9  1          DCL 1 DATRET DEF ABC,                   
                   2 DANUM FIXED BIN(31,0) UNALIGNED,   
                   2 WKDANUM PIC '9',             
                   2 DANAME CHAR(9),               
                   2 MONAME CHAR(9),             
                                                 
                   2 MO PIC '99',                 
                   2 DA PIC '99',                 
                   2 YR PIC '9999',               
                   2 DAYR PIC '999',             
                                                   
                   2 HOURS PIC '99',             
                    .   
                    .
                    .
                   2 REQUEST CHAR(1);
 



The below uses Union:

Code:

         DCL B FIXED(1);               
         DCL A PTR;                                 
         DCL (ADDR, VERIFY, DATETIME) BUILTIN;         
         A = ADDR(B);                         
         DCL WRKAREA CHAR(48) BASED(A);             
         DCL  1 * UNION,                       
                    2 ABC CHAR(48),     
                    2 DATRET,
                     3 DANUM FIXED BIN(31,0) UNALIGNED,   
                     3 WKDANUM PIC '9',             
                     3 DANAME CHAR(9),               
                     3 MONAME CHAR(9),             
                                                 
                     3 MO PIC '99',                 
                     3 DA PIC '99',                 
                     3 YR PIC '9999',               
                     3 DAYR PIC '999',             
                                                   
                     3 HOURS PIC '99',             
              .   
              .
                   .
                    3 REQUEST CHAR(1);
 

        ABC = WRKAREA; 



I hope now there should not be any problem.

Thanks
Ajay
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> PL/I & Assembler All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Fileaid Update Replace with null string descann Compuware & Other Tools 4 Mon May 15, 2017 3:00 pm
No new posts Overlay the system date Danielle.Filteau SYNCSORT 4 Fri Mar 03, 2017 1:16 am
No new posts Replacing same string with different ... vickey_dw DFSORT/ICETOOL 6 Wed Feb 22, 2017 10:44 pm
No new posts Count Trailing Spaces in variable str... Virendra Shambharkar SYNCSORT 10 Thu Feb 02, 2017 12:23 pm
No new posts INVALID FIELD OR CONSTANT IN SORTOF ?? Ron Klop DFSORT/ICETOOL 8 Wed Jan 11, 2017 3:44 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us