+
+ * config/tc-arm.c (make_mapping_symbol): Hanle the case
+ that two mapping symbols have the same value.
+
* doc/c-arm.texi (.setfp): Correct example.
frag->tc_frag_data.first_map = symbolP;
}
if (frag->tc_frag_data.last_map != NULL)
- know (S_GET_VALUE (frag->tc_frag_data.last_map) < S_GET_VALUE (symbolP));
+ {
+ know (S_GET_VALUE (frag->tc_frag_data.last_map) <= S_GET_VALUE (symbolP));
+ /* If .fill or other data filling directive generates zero sized data,
+ the mapping symbol for the following code will have the same value
+ as the one generated for the data filling directive. In this case,
+ we replace the old symbol with the new one at the same address. */
+ if (S_GET_VALUE (frag->tc_frag_data.last_map) == S_GET_VALUE (symbolP))
+ symbol_remove (frag->tc_frag_data.last_map, &symbol_rootP, &symbol_lastP);
+ }
frag->tc_frag_data.last_map = symbolP;
}
0+9c l .text 00000000 \$a
0+a0 l .text 00000000 \$d
0+a4 l .text 00000000 \$a
+0+a8 l .text 00000000 \$a
0+00 l d .ARM.attributes 00000000 .ARM.attributes
9c: e1a00000 nop ; \(mov r0, r0\)
a0: 7778797a .word 0x7778797a
a4: e1a00000 nop ; \(mov r0, r0\)
+ a8: e1a00000 nop ; \(mov r0, r0\)