diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-03-22 16:14:07 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-03-22 16:14:07 +0000 |
commit | 5ba7c0bee1a42f4b9ba600dad37adedb3569c079 (patch) | |
tree | 207716cc127c4c248236a8732bb3857bbbf6984c /gas | |
parent | 51776a11a69e670c69a5f51c80d54c812b317425 (diff) | |
download | gdb-5ba7c0bee1a42f4b9ba600dad37adedb3569c079.zip gdb-5ba7c0bee1a42f4b9ba600dad37adedb3569c079.tar.gz gdb-5ba7c0bee1a42f4b9ba600dad37adedb3569c079.tar.bz2 |
* gasp.c (change_base): Recognize \(...) construct documented to
pass through enclosed characters literally through to the output.
(process_assigns): Likewise. Also, be more careful to avoid
looking past the end of the buffer.
PR 9268.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 12 | ||||
-rw-r--r-- | gas/gasp.c | 29 |
2 files changed, 40 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index cd82b7d..cbd3547 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,15 @@ +Fri Mar 22 11:13:00 1996 Ian Lance Taylor <ian@cygnus.com> + + * gasp.c (change_base): Recognize \(...) construct documented to + pass through enclosed characters literally through to the output. + (process_assigns): Likewise. Also, be more careful to avoid + looking past the end of the buffer. + +Thu Mar 21 13:18:43 1996 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-i386.c (md_parse_option): If OBJ_ELF, ignore -k for + FreeBSD compatibility. From John Polstra <jdp@polstra.com>. + Wed Mar 20 18:13:32 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * doc/as.texinfo, doc/c-i960.texi: Fix typos. @@ -1103,7 +1103,21 @@ change_base (idx, in, out) while (idx < in->len) { - if (idx < in->len - 1 && in->ptr[idx + 1] == '\'' && ! mri) + if (in->ptr[idx] == '\\' + && idx + 1 < in->len + && in->ptr[idx + 1] == '(') + { + idx += 2; + while (idx < in->len + && in->ptr[idx] != ')') + { + sb_add_char (out, in->ptr[idx]); + idx++; + } + if (idx < in->len) + idx++; + } + else if (idx < in->len - 1 && in->ptr[idx + 1] == '\'' && ! mri) { int base; int value; @@ -1761,11 +1775,24 @@ process_assigns (idx, in, buf) { hash_entry *ptr; if (in->ptr[idx] == '\\' + && idx + 1 < in->len + && in->ptr[idx + 1] == '(') + { + do + { + sb_add_char (buf, in->ptr[idx]); + idx++; + } + while (idx < in->len && in->ptr[idx - 1] != ')'); + } + else if (in->ptr[idx] == '\\' + && idx + 1 < in->len && in->ptr[idx + 1] == '&') { idx = condass_lookup_name (in, idx + 2, buf, 1); } else if (in->ptr[idx] == '\\' + && idx + 1 < in->len && in->ptr[idx + 1] == '$') { idx = condass_lookup_name (in, idx + 2, buf, 0); |