aboutsummaryrefslogtreecommitdiff
path: root/libphobos/src
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2025-01-03 18:25:36 +0100
committerHans-Peter Nilsson <hp@bitrange.com>2025-01-04 02:55:32 +0100
commit8395cf72b49f1418deccc92c50accd2464177a45 (patch)
treea1c2c0cd135fdab403a2e7893652ddc4748d43fc /libphobos/src
parentafb656b09b40008e1ca0bcfc2db3780f30442636 (diff)
downloadgcc-8395cf72b49f1418deccc92c50accd2464177a45.zip
gcc-8395cf72b49f1418deccc92c50accd2464177a45.tar.gz
gcc-8395cf72b49f1418deccc92c50accd2464177a45.tar.bz2
MMIX: Replace format for private symbol output by output-time adjustment
All this started with belated MMIX regression patrol in observance of the holidays, looking at gcc.dg/Wstringop-overflow-27.c as a regression for target mmix. That's because of a single message not matched, where there is "note: destination object 'vla::22'" instead of the expected "note: destination object 'vla'" due to r11-5523-geafe8ee7af13c3 in which the message format and the match changed. That ::22 is because some identifiers that are SSA_NAME-versions and other clones are "privatized" by ASM_FORMAT_PRIVATE_NAME and its companion macro by default, ASM_PN_FORMAT; see the patch. I found that these "private names" were "unprivatized" for the purpose of warnings and error messages *in code that only handles the default format*, "%s.%lu". I went ahead and wrote and tested a patch-set to hookize that unprivatizing code, but found that it would only affect errors and warnings; dumps still had the "target format". While having bad thoughts about being hit by yet another structural testism because of the choice of outputting yet another target-specific format instead of a canonical "versioned" format, I realized it *already was handling a canonical format*: only the default "%s.%lu" is properly handled. To wit, targets are better off with the default "%s.%lu" and adjusting it (if needed, including not allowing "." or "$"), *at time of assembly code output*. IOW, outputs, both references and definitions, pass a single label-output target code point: ASM_OUTPUT_LABELREF, which is that time of output. Some older testsuite adjustments need to be unadjusted, but is another rabbit-hole, so I've kept that change separate. Other tests checking dumps, now started to pass for the first time, some 20+. * config/mmix/mmix.cc (mmix_asm_output_labelref): Replace '.' with '::'. * config/mmix/mmix.h (ASM_PN_FORMAT): Define to actual default.
Diffstat (limited to 'libphobos/src')
0 files changed, 0 insertions, 0 deletions