2005-11-17  Jan Beulich  <jbeulich@novell.com>


	* symbols.h (S_CLEAR_VOLATILE): Declare.
	* symbols.c (colon): Also accept redefinable symbols for
	redefinition. Clone them before modifying.
	(S_CLEAR_VOLATILE): Define.
	* cond.c (s_ifdef): Also test for equated symbols.
	* read.c (s_comm_internal): Also exclude non-redefinable
	equated symbols. Clone redefinable ones before modifying.
	(s_weakref): Clone redefinable symbols before modifying.
	* doc/internals.texi: Document sy_volatile, sy_forward_ref,
	S_IS_VOLATILE, S_SET_VOLATILE, S_CLEAR_VOLATILE,
	S_IS_FORWARD_REF, and S_SET_FORWARD_REF.

gas/testsuite/
2005-11-17  Jan Beulich  <jbeulich@novell.com>

	* gas/all/cond.s: Also check ifdef works on equates and
	commons.
	* gas/all/cond.l: Adjust.
	* gas/all/redef2.s: Also test redefining equate to label.
	* gas/all/redef2.d: Adjust.
	* gas/all/redef3.[sd]: New.
	* gas/all/redef4.s: New.
	* gas/all/redef5.s: New.
	* gas/elf/redef.s: New, copied from original gas/all/redef2.s.
	* gas/elf/redef.d: Remove #source.
	* gas/all/gas.exp: Remove exclusion of iq2000-*-* from and
	adjust xfails for redefinition tests. Run new tests. Exclude
	alpha*-*-*, mips*-*-*, *c54x*-*-* from weakref tests.
This commit is contained in:
Jan Beulich
2005-11-17 07:29:28 +00:00
parent 2be701a30f
commit 92757bc916
18 changed files with 190 additions and 19 deletions

View File

@ -93,6 +93,12 @@ responsible for setting it when a symbol is used in backend routines.
Whether the symbol is an MRI common symbol created by the @code{COMMON}
pseudo-op when assembling in MRI mode.
@item sy_volatile
Whether the symbol can be re-defined.
@item sy_forward_ref
Whether the symbol's value must only be evaluated upon use.
@item sy_weakrefr
Whether the symbol is a @code{weakref} alias to another symbol.
@ -165,6 +171,16 @@ Return non-zero if the symbol is a @code{weakref} alias.
Return non-zero if the symbol was aliased by a @code{weakref} alias and has not
had any strong references.
@item S_IS_VOLATILE
@cindex S_IS_VOLATILE
Return non-zero if the symbol may be re-defined. Such symbols get created by
the @code{=} operator, @code{equ}, or @code{set}.
@item S_IS_FORWARD_REF
@cindex S_IS_FORWARD_REF
Return non-zero if the symbol is a forward reference, that is its value must
only be determined upon use.
@item S_IS_COMMON
@cindex S_IS_COMMON
Return non-zero if this is a common symbol. Common symbols are sometimes
@ -222,6 +238,19 @@ Clear the @code{weakref} aliased status of a symbol. This is implicitly called
whenever the symbol is looked up, as part of a direct reference or a
definition, but not as part of a @code{weakref} directive.
@item S_SET_VOLATILE
@cindex S_SET_VOLATILE
Indicate that the symbol may be re-defined.
@item S_CLEAR_VOLATILE
@cindex S_CLEAR_VOLATILE
Indicate that the symbol may no longer be re-defined.
@item S_SET_FORWARD_REF
@cindex S_SET_FORWARD_REF
Indicate that the symbol is a forward reference, that is its value must only
be determined upon use.
@item S_GET_TYPE
@item S_GET_DESC
@item S_GET_OTHER