aboutsummaryrefslogtreecommitdiff
path: root/gas/subsegs.c
diff options
context:
space:
mode:
authorSteve Chamberlain <sac@cygnus>1992-06-09 14:57:23 +0000
committerSteve Chamberlain <sac@cygnus>1992-06-09 14:57:23 +0000
commit90d49457163cfd1640b02d210e6cb35e4bdebe34 (patch)
tree9e8d4b1236e7c41bef0a85e095d723b4b6a70dee /gas/subsegs.c
parentdd823a49ca142fc7896769ebdb29b38792d5e6f8 (diff)
downloadgdb-90d49457163cfd1640b02d210e6cb35e4bdebe34.zip
gdb-90d49457163cfd1640b02d210e6cb35e4bdebe34.tar.gz
gdb-90d49457163cfd1640b02d210e6cb35e4bdebe34.tar.bz2
* subsegs.c (subseg_change): allow and handle a change into SEG_BSS.
Diffstat (limited to 'gas/subsegs.c')
-rw-r--r--gas/subsegs.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gas/subsegs.c b/gas/subsegs.c
index 2e4c10b..e883e29 100644
--- a/gas/subsegs.c
+++ b/gas/subsegs.c
@@ -138,12 +138,16 @@ register int subseg;
seg_fix_rootP = & data_fix_root;
seg_fix_tailP = & data_fix_tail;
}
- else
+ else if (seg == SEG_TEXT)
{
- know (seg == SEG_TEXT);
seg_fix_rootP = & text_fix_root;
seg_fix_tailP = & text_fix_tail;
}
+ else {
+ know (seg == SEG_BSS);
+ seg_fix_rootP = & bss_fix_root;
+ seg_fix_tailP = & bss_fix_tail;
+ }
#endif
}
@@ -170,7 +174,7 @@ register subsegT subseg;
{
long tmp; /* JF for obstack alignment hacking */
#ifndef MANY_SEGMENTS
- know(seg == SEG_DATA || seg == SEG_TEXT);
+ know(seg == SEG_DATA || seg == SEG_TEXT || seg == SEG_BSS);
#endif
#ifdef OBJ_AOUT
/* If -R specifed, always put stuff into the data section */
@@ -183,7 +187,6 @@ register subsegT subseg;
}
}
#endif
-
if (seg != now_seg || subseg != now_subseg)
{ /* we just changed sub-segments */
register frchainS * frcP; /* crawl frchain chain */