[PATCH] D153382: [lld-macho][test] Make reloc-subtractor.s robust
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 20 15:24:40 PDT 2023
MaskRay created this revision.
MaskRay added reviewers: lld-macho, int3, smeenai, nickdesaulniers.
Herald added projects: lld-macho, All.
MaskRay requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
The test requires that LLVM integreated assembler generates
SUBTRACTOR/UNSIGNED relocations for `.long _minuend_1 - _subtrahend_1`.
This currently works by luck because:
- `_minuend_1` and `_subtrahend_1` are in different fragments (separated by a MCFillFragment)
- and the result is known to be negative at parsing time.
D153096 <https://reviews.llvm.org/D153096> will change the assembler to fold `.long _minuend_1 - _subtrahend_1` to
a constant, giving ld -order_file no chance to change the result.
To fix the test, move the referenced labels after the label differences to block
constant folding.
Note: you may think the model is somewhat broken and it is. The
.subsections_via_symbols mechanism does not block such constant folding. In
reality SUBTRACTOR/UNSIGNED is for references to another section, which does not
have the problem.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D153382
Files:
lld/test/MachO/reloc-subtractor.s
Index: lld/test/MachO/reloc-subtractor.s
===================================================================
--- lld/test/MachO/reloc-subtractor.s
+++ lld/test/MachO/reloc-subtractor.s
@@ -33,15 +33,6 @@
.space 16
.section __DATA,bar
-_minuend_1:
- .space 16
-_minuend_2:
- .space 16
-_subtrahend_1:
- .space 16
-_subtrahend_2:
- .space 16
-
_sub1:
.long _minuend_1 - _subtrahend_1
.space 12
@@ -58,6 +49,16 @@
.quad L_.minuend - _subtrahend_1 + 1
.space 8
+.section __DATA,bar
+_minuend_1:
+ .space 16
+_minuend_2:
+ .space 16
+_subtrahend_1:
+ .space 16
+_subtrahend_2:
+ .space 16
+
.text
.p2align 2
_main:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D153382.533063.patch
Type: text/x-patch
Size: 642 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230620/2e98ecf4/attachment.bin>
More information about the llvm-commits
mailing list