Opened 13 months ago
Closed 12 months ago
#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 , 13 months ago
| Owner: | changed from to |
|---|---|
| Status: | new → accepted |
comment:2 by , 12 months ago
| Milestone: | → MR12.9 |
|---|---|
| Resolution: | → fixed |
| Status: | accepted → closed |

No MCR.
Fixed by MR12.9-1022.