* subsegs.c (subseg_change): allow and handle a change into SEG_BSS.
authorSteve Chamberlain <sac@cygnus>
Tue, 9 Jun 1992 14:57:23 +0000 (14:57 +0000)
committerSteve Chamberlain <sac@cygnus>
Tue, 9 Jun 1992 14:57:23 +0000 (14:57 +0000)
gas/ChangeLog
gas/subsegs.c

index 7f9f0d7939976b6b6fe0f3e509e41afad3db0224..7e5f4fee96b935bd0e3870b96935192ff54a34cd 100644 (file)
@@ -1,3 +1,7 @@
+Tue Jun  9 07:54:54 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
+
+       * subsegs.c (subseg_change): allow and handle a change into SEG_BSS.
+
 Thu Jun  4 11:59:13 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
 
        * expr.c(expr): allow SEG_REGISTER in expressions.
index 2e4c10bbac65b5435af372e6c2bed880ade9514f..e883e29ca0e8c0375f2b139fc0d6ea8aebdbecfb 100644 (file)
@@ -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
 }
 \f
@@ -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 */