Agreed, it is truly a strange construct, but unless the algorithm that uses the construct is available it is unreasonable to speculate.
For my part, I cannot think of a suitable reason to use that construct. Peter From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> On Behalf Of John Ganci Sent: Wednesday, September 3, 2025 12:34 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Question about HLASM complex relocatable expressions Why would anyone use the definition of ADDR2 shown below? Why the question arose follows. A recent problem reported to the z390 project (Don Higgins' z390 assembler project) about an invalid displacement generated in the "L 3,ADDR3" instruction shown below. The problem boiled down to a z390 error processing the statement "ADDR2 DC A(DWD+DWD)", which does contain a complex relocatable expression. Sample source provided by the user reporting the problem follows. CPXRELEX CSECT USING CPXRELEX,15 L 1,ADDR1 L 2,ADDR2 L 3,ADDR3 BR 14 ORG CPXRELEX+X'100' DWD DS D ADDR1 DC A(DWD) ADDR2 DC A(DWD+DWD) Complex relocatable expression ADDR3 DC A(DWD+1) END HLASM correctly assembles the sample source. Running the program on z/OS, with the "BR 14" replaced by "DC H'0'", shows (in the summary dump) registers 1, 2, and 3 set correctly (R1 contains the address of DWD, R2 = 2 * R1, and R3 = R1 + 1). The problem has been fixed in z390. Thanks for any insight. -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system.