* config/tc-arm.c (make_mapping_symbol): Handle the case
that multiple mapping symbols have the same value 0. testsuite/ * gas/arm/mapmisc.s: Test multiple mapping symbols have the same value 0.
This commit is contained in:
parent
397841b5ae
commit
2de7820f27
|
@ -1,3 +1,8 @@
|
|||
2010-04-07 Jie Zhang <jie@codesourcery.com>
|
||||
|
||||
* config/tc-arm.c (make_mapping_symbol): Handle the case
|
||||
that multiple mapping symbols have the same value 0.
|
||||
|
||||
2010-04-07 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* configure: Regenerate.
|
||||
|
|
|
@ -2493,19 +2493,24 @@ make_mapping_symbol (enum mstate state, valueT value, fragS *frag)
|
|||
/* Save the mapping symbols for future reference. Also check that
|
||||
we do not place two mapping symbols at the same offset within a
|
||||
frag. We'll handle overlap between frags in
|
||||
check_mapping_symbols. */
|
||||
check_mapping_symbols.
|
||||
|
||||
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 (value == 0)
|
||||
{
|
||||
know (frag->tc_frag_data.first_map == NULL);
|
||||
if (frag->tc_frag_data.first_map != NULL)
|
||||
{
|
||||
know (S_GET_VALUE (frag->tc_frag_data.first_map) == 0);
|
||||
symbol_remove (frag->tc_frag_data.first_map, &symbol_rootP, &symbol_lastP);
|
||||
}
|
||||
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));
|
||||
/* 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);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2010-04-07 Jie Zhang <jie@codesourcery.com>
|
||||
|
||||
* gas/arm/mapmisc.s: Test multiple mapping symbols have
|
||||
the same value 0.
|
||||
|
||||
2010-04-06 Peter Bergner <bergner@vnet.ibm.com>
|
||||
|
||||
* gas/ppc/476.d ("dccci", "dci", "iccci"): Add tests.
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
.text
|
||||
.type foo, %function
|
||||
foo:
|
||||
.align 2
|
||||
.fill 0, 0, 0
|
||||
nop
|
||||
.ascii "abcd"
|
||||
nop
|
||||
|
|
Loading…
Reference in New Issue