gas/ChangeLog:

* read.c (s_weakref): Do not permit redefinitions.
* symbols.c (colon): Do not permit redefinitions of equated
symbols.
gas/testsuite/ChangeLog:
* gas/all/gas.exp: Remove weakref xfail.  Run weakref4.s.
* gas/all/weakref1.s: Move redefinition bits to...
* gas/all/weakref4.s: ... new file.
* gas/all/weakref1.d: Remove command moved to weakref1u.  Adjust
remaining command for leading tabs.  Regenerate.
* gas/all/weakref1l.d: Regenerate.
* gas/all/weakref1u.d: Likewise.
* gas/all/wealref1w.d: Likewise.
This commit is contained in:
Alexandre Oliva
2005-11-04 19:45:25 +00:00
parent 384a9dda99
commit b54788f893
11 changed files with 74 additions and 88 deletions

View File

@ -1,3 +1,9 @@
2005-11-04 Alexandre Oliva <aoliva@redhat.com>
* read.c (s_weakref): Do not permit redefinitions.
* symbols.c (colon): Do not permit redefinitions of equated
symbols.
2005-11-01 Thiemo Seufer <ths@networkno.de> 2005-11-01 Thiemo Seufer <ths@networkno.de>
PR gas/1299 PR gas/1299

View File

@ -3178,6 +3178,14 @@ s_weakref (int ignore ATTRIBUTE_UNUSED)
symbolP = symbol_find_or_make (name); symbolP = symbol_find_or_make (name);
if (S_IS_DEFINED (symbolP) || symbol_equated_p (symbolP))
{
as_bad (_("symbol `%s' is already defined"), name);
*end_name = delim;
ignore_rest_of_line ();
return;
}
*end_name = delim; *end_name = delim;
SKIP_WHITESPACE (); SKIP_WHITESPACE ();

View File

@ -332,7 +332,8 @@ colon (/* Just seen "x:" - rattle symbols & frags. */
local_symbol_set_frag (locsym, frag_now); local_symbol_set_frag (locsym, frag_now);
locsym->lsy_value = frag_now_fix (); locsym->lsy_value = frag_now_fix ();
} }
else if (!S_IS_DEFINED (symbolP) || S_IS_COMMON (symbolP)) else if (!(S_IS_DEFINED (symbolP) || symbol_equated_p (symbolP))
|| S_IS_COMMON (symbolP))
{ {
if (S_GET_VALUE (symbolP) == 0) if (S_GET_VALUE (symbolP) == 0)
{ {

View File

@ -1,3 +1,14 @@
2005-11-04 Alexandre Oliva <aoliva@redhat.com>
* gas/all/gas.exp: Remove weakref xfail. Run weakref4.s.
* gas/all/weakref1.s: Move redefinition bits to...
* gas/all/weakref4.s: ... new file.
* gas/all/weakref1.d: Remove command moved to weakref1u. Adjust
remaining command for leading tabs. Regenerate.
* gas/all/weakref1l.d: Regenerate.
* gas/all/weakref1u.d: Likewise.
* gas/all/wealref1w.d: Likewise.
2005-11-04 Jan Beulich <jbeulich@novell.com> 2005-11-04 Jan Beulich <jbeulich@novell.com>
* gas/all/gas.exp: xfail weakref dump tests for all targets. * gas/all/gas.exp: xfail weakref dump tests for all targets.

View File

@ -256,20 +256,16 @@ if { ![istarget "i960-*-*"] } {
case $target_triplet in { case $target_triplet in {
{ z80-*-* } { } { z80-*-* } { }
default { default {
setup_xfail *-*-*
run_dump_test weakref1 run_dump_test weakref1
setup_xfail *-*-*
run_dump_test weakref1g run_dump_test weakref1g
setup_xfail *-*-*
run_dump_test weakref1l run_dump_test weakref1l
setup_xfail *-*-*
run_dump_test weakref1u run_dump_test weakref1u
setup_xfail *-*-*
run_dump_test weakref1w run_dump_test weakref1w
} }
} }
gas_test_error "weakref2.s" "" "e: would close weakref loop: e => a => b => c => d => e" gas_test_error "weakref2.s" "" "e: would close weakref loop: e => a => b => c => d => e"
gas_test_error "weakref3.s" "" "a: would close weakref loop: a => b => c => d => e => a" gas_test_error "weakref3.s" "" "a: would close weakref loop: a => b => c => d => e => a"
gas_test_error "weakref4.s" "" "is already defined"
load_lib gas-dg.exp load_lib gas-dg.exp
dg-init dg-init

View File

@ -11,9 +11,7 @@ OFFSET +TYPE +VALUE *
# the rest of this file is generated with the following script: # the rest of this file is generated with the following script:
# # script begin # # script begin
# echo \#... # echo \#...
# sed -n 's:^\.weakref .*, \(\(u\|\(w\)\).*\)$:.*( \3 |\(sec 0\)).* \1:p' weakref1.s | uniq | while read line; do echo "$line"; echo "#..."; done # sed -n 's:^[ ]*\.long \(W\|\)\(.*[^a-z]\)[a-z]*\(\| - .*\)$:\2:p' weakref1.s | sed -e 's,^[lg].*,(&|\\.text)(\\+0x[0-9a-f]+)?,' | sed 's,^,[0-9a-f]+ [^ ]* +,'
# sed -n 's:^\.long \(W\|\)\(.*[^a-z]\)[a-z]*\(\| - .*\)$:\2:p' weakref1.s | sed -e 's,^[lg].*,(&|\\.text)(\\+0x[0-9a-f]+)?,' | sed 's,^,[0-9a-f]+ [^ ]* +,'
# # script output: # # script output:
#... #...
[0-9a-f]+ [^ ]* +wa1 [0-9a-f]+ [^ ]* +wa1
@ -71,8 +69,6 @@ OFFSET +TYPE +VALUE *
[0-9a-f]+ [^ ]* +ww9 [0-9a-f]+ [^ ]* +ww9
[0-9a-f]+ [^ ]* +ww10 [0-9a-f]+ [^ ]* +ww10
[0-9a-f]+ [^ ]* +ww10 [0-9a-f]+ [^ ]* +ww10
[0-9a-f]+ [^ ]* +um2
[0-9a-f]+ [^ ]* +wm3
[0-9a-f]+ [^ ]* +um5 [0-9a-f]+ [^ ]* +um5
[0-9a-f]+ [^ ]* +wm6 [0-9a-f]+ [^ ]* +wm6
[0-9a-f]+ [^ ]* +wm7 [0-9a-f]+ [^ ]* +wm7
@ -87,18 +83,6 @@ OFFSET +TYPE +VALUE *
[0-9a-f]+ [^ ]* +uh8 [0-9a-f]+ [^ ]* +uh8
[0-9a-f]+ [^ ]* +uh9 [0-9a-f]+ [^ ]* +uh9
[0-9a-f]+ [^ ]* +uh9 [0-9a-f]+ [^ ]* +uh9
[0-9a-f]+ [^ ]* +(lr1|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(lr1|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(lr2|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(lr2|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +wr3
[0-9a-f]+ [^ ]* +wr3
[0-9a-f]+ [^ ]* +wr4
[0-9a-f]+ [^ ]* +wr5
[0-9a-f]+ [^ ]* +(lr6|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +ur6
[0-9a-f]+ [^ ]* +(lr7|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(lr7|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld1|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld1|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld2|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld2|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld3|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld3|\.text)(\+0x[0-9a-f]+)?

View File

@ -126,17 +126,6 @@ l:
.weak ww10 .weak ww10
/* m# test multiple weakrefs */ /* m# test multiple weakrefs */
.weakref Wnm1, nm1
.weakref Wnm1, nm1
.weakref Wum2, um2
.weakref Wum2, um2
.long um2
.weakref Wwm3, wm3
.weakref Wwm3, wm3
.long Wwm3
.weakref Wnm4a, nm4 .weakref Wnm4a, nm4
.weakref Wnm4b, nm4 .weakref Wnm4b, nm4
@ -197,40 +186,6 @@ l:
.weakref Wuh9a, uh9 .weakref Wuh9a, uh9
.long uh9 .long uh9
/* r# weakref redefinitions, to and from */
.weakref lr1, nr1
.long lr1
.set lr1, l
.long lr1
.long lr2
.weakref lr2, nr2
.set lr2, l
.long lr2
.set Wwr3, l
.long Wwr3
.weakref Wwr3, wr3
.long Wwr3
.set Wwr4, l
.weakref Wwr4, wr4
.long Wwr4
.set Wwr5, l
.long Wwr5
.weakref Wwr5, wr5
.weakref lr6, ur6
.long lr6
.set lr6, l
.long ur6
.weakref lr7, nr7
.long lr7
lr7:
.long lr7
/* d# target symbol definitions */ /* d# target symbol definitions */
.weakref Wld1, ld1 .weakref Wld1, ld1
.long Wld1 .long Wld1

View File

@ -13,14 +13,6 @@
#... #...
.* t l .* t l
#... #...
.* t lr1
#...
.* t lr2
#...
.* t lr6
#...
.* t lr7
#...
.* t ld1 .* t ld1
#... #...
.* t ld2 .* t ld2

View File

@ -39,15 +39,11 @@
#... #...
.* U uc9 .* U uc9
#... #...
.* U um2
#...
.* U um5 .* U um5
#... #...
.* U uh8 .* U uh8
#... #...
.* U uh9 .* U uh9
#... #...
.* U ur6
#...
.* U ud5 .* U ud5
#pass #pass

View File

@ -36,8 +36,6 @@
#... #...
.* w ww10 .* w ww10
#... #...
.* w wm3
#...
.* w wm6 .* w wm6
#... #...
.* w wm7 .* w wm7
@ -55,10 +53,4 @@
.* w wh6 .* w wh6
#... #...
.* w wh7 .* w wh7
#...
.* w wr3
#...
.* w wr4
#...
.* w wr5
#pass #pass

View File

@ -0,0 +1,45 @@
/* m# test multiple weakrefs */
.weakref Wnm1, nm1
.weakref Wnm1, nm1
.weakref Wum2, um2
.weakref Wum2, um2
.long um2
.weakref Wwm3, wm3
.weakref Wwm3, wm3
.long Wwm3
/* r# weakref redefinitions, to and from */
.weakref lr1, nr1
.long lr1
.set lr1, l
.long lr1
.long lr2
.weakref lr2, nr2
.set lr2, l
.long lr2
.set Wwr3, l
.long Wwr3
.weakref Wwr3, wr3
.long Wwr3
.set Wwr4, l
.weakref Wwr4, wr4
.long Wwr4
.set Wwr5, l
.long Wwr5
.weakref Wwr5, wr5
.weakref lr6, ur6
.long lr6
.set lr6, l
.long ur6
.weakref lr7, nr7
.long lr7
lr7:
.long lr7