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>
PR gas/1299

View File

@ -3178,6 +3178,14 @@ s_weakref (int ignore ATTRIBUTE_UNUSED)
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;
SKIP_WHITESPACE ();

View File

@ -332,7 +332,8 @@ colon (/* Just seen "x:" - rattle symbols & frags. */
local_symbol_set_frag (locsym, frag_now);
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)
{

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>
* gas/all/gas.exp: xfail weakref dump tests for all targets.

View File

@ -256,20 +256,16 @@ if { ![istarget "i960-*-*"] } {
case $target_triplet in {
{ z80-*-* } { }
default {
setup_xfail *-*-*
run_dump_test weakref1
setup_xfail *-*-*
run_dump_test weakref1g
setup_xfail *-*-*
run_dump_test weakref1l
setup_xfail *-*-*
run_dump_test weakref1u
setup_xfail *-*-*
run_dump_test weakref1w
}
}
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 "weakref4.s" "" "is already defined"
load_lib gas-dg.exp
dg-init

View File

@ -11,9 +11,7 @@ OFFSET +TYPE +VALUE *
# the rest of this file is generated with the following script:
# # script begin
# 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:
#...
[0-9a-f]+ [^ ]* +wa1
@ -71,8 +69,6 @@ OFFSET +TYPE +VALUE *
[0-9a-f]+ [^ ]* +ww9
[0-9a-f]+ [^ ]* +ww10
[0-9a-f]+ [^ ]* +ww10
[0-9a-f]+ [^ ]* +um2
[0-9a-f]+ [^ ]* +wm3
[0-9a-f]+ [^ ]* +um5
[0-9a-f]+ [^ ]* +wm6
[0-9a-f]+ [^ ]* +wm7
@ -87,18 +83,6 @@ OFFSET +TYPE +VALUE *
[0-9a-f]+ [^ ]* +uh8
[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]+ [^ ]* +(ld2|\.text)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld3|\.text)(\+0x[0-9a-f]+)?

View File

@ -126,17 +126,6 @@ l:
.weak ww10
/* 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 Wnm4b, nm4
@ -197,40 +186,6 @@ l:
.weakref Wuh9a, 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 */
.weakref Wld1, ld1
.long Wld1

View File

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

View File

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

View File

@ -36,8 +36,6 @@
#...
.* w ww10
#...
.* w wm3
#...
.* w wm6
#...
.* w wm7
@ -55,10 +53,4 @@
.* w wh6
#...
.* w wh7
#...
.* w wr3
#...
.* w wr4
#...
.* w wr5
#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