2004-03-05 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 5 Mar 2004 17:07:12 +0000 (17:07 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 5 Mar 2004 17:07:12 +0000 (17:07 +0000)
* config/tc-ia64.c (md_assemble): Properly handle NULL
align_frag.
(ia64_handle_align): Don't abort if failed to add a stop bit.

gas/ChangeLog
gas/config/tc-ia64.c

index 9c283b5f4a83f1d0523c75689992c08d75ebdf09..6eaeed2cf5816cc1bce645010f77ffc5090f41b9 100644 (file)
@@ -1,3 +1,9 @@
+2004-03-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-ia64.c (md_assemble): Properly handle NULL
+       align_frag.
+       (ia64_handle_align): Don't abort if failed to add a stop bit.
+
 2004-03-04  H.J. Lu  <hongjiu.lu@intel.com>
 
        * Makefile.in: Regenerated.
index 57ed9b3a7ca9ad2b4edf3255b2599698cd80e719..6c4519e30016d884912054fada5d27d701ae795f 100644 (file)
@@ -10010,9 +10010,12 @@ md_assemble (str)
          while (align_frag->fr_type != rs_align_code)
            {
              align_frag = align_frag->fr_next;
-             assert (align_frag);
+             if (!align_frag)
+               break;
            }
-         if (align_frag->fr_next == frag_now)
+         /* align_frag can be NULL if there are directives in
+            between.  */
+         if (align_frag && align_frag->fr_next == frag_now)
            align_frag->tc_frag_data = 1;
        }
 
@@ -10872,8 +10875,16 @@ ia64_handle_align (fragp)
   if (!bytes && fragp->tc_frag_data)
     {
       if (fragp->fr_fix < 16)
+#if 1
+       /* FIXME: It won't work with
+          .align 16
+          alloc r32=ar.pfs,1,2,4,0
+        */
+       ;
+#else
        as_bad_where (fragp->fr_file, fragp->fr_line,
                      _("Can't add stop bit to mark end of instruction group"));
+#endif
       else
        /* Bundles are always in little-endian byte order. Make sure
           the previous bundle has the stop bit.  */