#372 closed defect (fixed)

mbuild_compile_.pl1 mistakenly overrides a DELETE xxx.pl1 operation

Reported by: Gary Dixon Owned by: Gary Dixon
Priority: major Milestone: MR12.9
Component: Tools Version: MR12.8
Keywords: Cc:

Description

In an unusual case, a PL1 source segment was being upgraded to use reductions in doing its work. From a source build perspective, this involves DELETE of the original xxx.pl1 source and an ADD of the upgraded xxx.rd source. However, the attempted delete operation fails because the mbuild compile request for a source containing reductions generates an intermediate xxx.pl1 derived-object segment (which then get compiled by the pl1 compiler).

mbuild_compile_.pl1 tries to take ownership of the Seg(pl1).operation = "DELETE" structure to reuse it as a placeholder for the intermediate derived-object of the reductions translation: Seg(pl1).operation = "ADD".

This mistaken override of ownership can be avoided by changing mbuild_compile_.pl1 to pass the "ADD" operation name when it searches for any Seg structure documenting the derived-object xxx.pl1 segment. That prevents the search from matching the existing Seg.operation = "DELETE" structure; so a new Seg structure gets created to track the derived-object segment produced by the reductions translator.

compare_ascii >ldd>tools>source>bound_mbuild_.s.archive::mbuild_compile_.pl1 ==

Inserted in B:
B32         8) change(2025-06-26,GDixon):
B33             A) Change attach_derived_Seg to pass the source segment's operation
B34                to mbuild_data_$get_Seg so it does not override an attempt to
B35                DELETE an XXX.pl1 segment so an XXX.rd segment may be ADDed in
B36                its place.
Preceding:
A32                                                          END HISTORY COMMENTS */


A569         dSegP = mbuild_data_$get_Seg (addr(bld), dSegt.mbuild_type, dSeg.name,
A570                   unknown_library, unknown_operation, unknown_archive_name);
Changed by B to:
B574         dSegP = mbuild_data_$get_Seg (addr(bld), dSegt.mbuild_type, dSeg.name,
B575                   unknown_library, Asource_operation, unknown_archive_name);

Comparison finished: 2 differences, 9 lines.

Change History (2)

comment:1 by Gary Dixon, 13 months ago

Owner: changed from Eric Swenson to Gary Dixon
Status: newaccepted

comment:2 by Eric Swenson, 12 months ago

Milestone: MR12.9
Resolution: fixed
Status: acceptedclosed

No MCR.

Fixed by MR12.9-1022.

Note: See TracTickets for help on using tickets.