* 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:
Jie Zhang 2010-04-07 10:39:06 +00:00
parent 397841b5ae
commit 2de7820f27
4 changed files with 23 additions and 6 deletions

View File

@ -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.

View File

@ -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);
}

View File

@ -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.

View File

@ -1,6 +1,8 @@
.text
.type foo, %function
foo:
.align 2
.fill 0, 0, 0
nop
.ascii "abcd"
nop