* frags.c (frag_more): Warn if in absolute_section.
authorIan Lance Taylor <ian@airs.com>
Wed, 9 Aug 1995 19:33:17 +0000 (19:33 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 9 Aug 1995 19:33:17 +0000 (19:33 +0000)
(frag_now_fix): In absolute_section, return abs_section_offset.
* subsegs.c (subseg_change): If switching to absolute_section,
just set now_seg and now_subseg.
(subseg_set_rest): Special handling when switching to or from
absolute_section.

gas/frags.c

index f52692e271d5e0556d9d4216c6eef127ab632989..eef042eda414e31bcfcdfe0463d39457fdb200df 100644 (file)
@@ -153,6 +153,12 @@ frag_more (nchars)
 {
   register char *retval;
 
+  if (now_seg == absolute_section)
+    {
+      as_bad ("attempt to allocate data in absolute section");
+      subseg_set (text_section, 0);
+    }
+
   if (mri_common_symbol != NULL)
     {
       as_bad ("attempt to allocate data in common section");
@@ -288,6 +294,8 @@ frag_align_pattern (alignment, fill_pattern, n_fill)
 int
 frag_now_fix ()
 {
+  if (now_seg == absolute_section)
+    return abs_section_offset;
   return (char*)obstack_next_free (&frags) - frag_now->fr_literal;
 }