aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1997-01-31 15:47:41 +0000
committerIan Lance Taylor <ian@airs.com>1997-01-31 15:47:41 +0000
commita75abb6f0ad78833199bd16476e6babbd70738be (patch)
tree173093f63e87ff4f026c052ee53a7b39203bf3b4
parent8275482ce0340bf13293a1b7bb6bf3c03ed79873 (diff)
downloadgdb-a75abb6f0ad78833199bd16476e6babbd70738be.zip
gdb-a75abb6f0ad78833199bd16476e6babbd70738be.tar.gz
gdb-a75abb6f0ad78833199bd16476e6babbd70738be.tar.bz2
* write.c (relax_segment): Give an error if a .space symbol is
common or undefined. * read.c (read_a_source_file): Don't handle mri_pending_align if the handler is s_globl or s_ignore.
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/read.c4
-rw-r--r--gas/write.c7
3 files changed, 16 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 86a744a..171ea2d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+Fri Jan 31 10:46:14 1997 Ian Lance Taylor <ian@cygnus.com>
+
+ * write.c (relax_segment): Give an error if a .space symbol is
+ common or undefined.
+
+ * read.c (read_a_source_file): Don't handle mri_pending_align if
+ the handler is s_globl or s_ignore.
+
Thu Jan 30 11:46:59 1997 Fred Fish <fnf@cygnus.com>
* config/tc-d10v.c (find_opcode): Remove unused variable "numops".
diff --git a/gas/read.c b/gas/read.c
index a1b3bdd..5e70429 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -719,7 +719,9 @@ read_a_source_file (name)
|| pop->poc_handler == s_ifc
|| pop->poc_handler == s_ifeqs
|| pop->poc_handler == s_else
- || pop->poc_handler == s_endif)))
+ || pop->poc_handler == s_endif
+ || pop->poc_handler == s_globl
+ || pop->poc_handler == s_ignore)))
{
do_align (1, (char *) NULL, 0);
mri_pending_align = 0;
diff --git a/gas/write.c b/gas/write.c
index 7f2b74d..0cd68c3 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -2202,8 +2202,11 @@ relax_segment (segment_frag_root, segment)
if (symbolP)
{
growth = S_GET_VALUE (symbolP);
- if (symbolP->sy_frag != &zero_address_frag)
- as_bad (".space specifies non-absolute value");
+ if (symbolP->sy_frag != &zero_address_frag
+ || S_IS_COMMON (symbolP)
+ || ! S_IS_DEFINED (symbolP))
+ as_bad_where (fragP->fr_file, fragP->fr_line,
+ ".space specifies non-absolute value");
fragP->fr_symbol = 0;
if (growth < 0)
{