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 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.
Is it important to repeat the .section directive?