This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: gas patch: Check TC_EOL_IN_INSN in input-scrub.c
- From: Bernd Schmidt <bernds_cb1 at t-online dot de>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: binutils at sources dot redhat dot com
- Date: Mon, 16 Oct 2006 14:03:39 +0200
- Subject: Re: gas patch: Check TC_EOL_IN_INSN in input-scrub.c
- References: <4525179B.5050704@t-online.de> <452F7159.4090507@redhat.com>
Nick Clifton wrote:
Hi Bernd,
* input-scrub.c (input_scrub_next_buffer): Use TC_EOL_IN_INSN
in addition to testing for '\n'.
Approved - please apply.
(I looked at the code and did not see any obvious way to fix this
problem other than your solution).
Thanks. I've had to add a default definition of TC_EOL_IN_INSN as it
otherwise failed to compile on i686-linux. Here's what I committed.
Bernd
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gas/ChangeLog,v
retrieving revision 1.3023
diff -c -p -r1.3023 ChangeLog
*** ChangeLog 13 Oct 2006 11:36:02 -0000 1.3023
--- ChangeLog 16 Oct 2006 11:58:37 -0000
***************
*** 1,3 ****
--- 1,9 ----
+ 2006-10-16 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * input-scrub.c (input_scrub_next_buffer): Use TC_EOL_IN_INSN
+ in addition to testing for '\n'.
+ (TC_EOL_IN_INSN): Provide a default definition if necessary.
+
2006-10-13 Sterling Augstine <sterling@tensilica.com>
* dwarf2dbg.c (out_debug_info): Use TC_DWARF2_EMIT_OFFSET to emit
Index: input-scrub.c
===================================================================
RCS file: /cvs/src/src/gas/input-scrub.c,v
retrieving revision 1.16
diff -c -p -r1.16 input-scrub.c
*** input-scrub.c 7 Jun 2006 11:27:57 -0000 1.16
--- input-scrub.c 16 Oct 2006 11:58:37 -0000
***************
*** 56,61 ****
--- 56,65 ----
#define BEFORE_SIZE (1)
#define AFTER_SIZE (1)
+ #ifndef TC_EOL_IN_INSN
+ #define TC_EOL_IN_INSN(P) 0
+ #endif
+
static char *buffer_start; /*->1st char of full buffer area. */
static char *partial_where; /*->after last full line in buffer. */
static int partial_size; /* >=0. Number of chars in partial line in buffer. */
*************** input_scrub_next_buffer (char **bufp)
*** 341,348 ****
if (limit)
{
register char *p; /* Find last newline. */
!
! for (p = limit - 1; *p != '\n'; --p)
;
++p;
--- 345,353 ----
if (limit)
{
register char *p; /* Find last newline. */
! /* Terminate the buffer to avoid confusing TC_EOL_IN_INSN. */
! *limit = '\0';
! for (p = limit - 1; *p != '\n' || TC_EOL_IN_INSN (p); --p)
;
++p;
*************** input_scrub_next_buffer (char **bufp)
*** 368,374 ****
return NULL;
}
! for (p = limit - 1; *p != '\n'; --p)
;
++p;
}
--- 373,381 ----
return NULL;
}
! /* Terminate the buffer to avoid confusing TC_EOL_IN_INSN. */
! *limit = '\0';
! for (p = limit - 1; *p != '\n' || TC_EOL_IN_INSN (p); --p)
;
++p;
}