From 0e13eda056eb74b1578f3f00eb36556c6c5ad3b0 Mon Sep 17 00:00:00 2001 From: hjl Date: Fri, 5 Mar 2004 17:07:11 +0000 Subject: [PATCH] 2004-03-05 H.J. Lu * 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 | 6 ++++++ gas/config/tc-ia64.c | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 9c283b5f4a..6eaeed2cf5 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2004-03-05 H.J. Lu + + * 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 * Makefile.in: Regenerated. diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index 57ed9b3a7c..6c4519e300 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -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. */ -- 2.11.0