From b165b83891be5218d0f7b4c9e773c5fb4b6d8e6e Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Fri, 9 Nov 2001 18:05:30 +0000 Subject: [PATCH] * cgen-asm.c (cgen_parse_keyword): If the keyword is too big to fit in the buffer, try to match the empty keyword. --- opcodes/ChangeLog | 5 +++++ opcodes/cgen-asm.c | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index a3191831e6..b0641202a8 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2001-11-09 Richard Sandiford + + * cgen-asm.c (cgen_parse_keyword): If the keyword is too big to + fit in the buffer, try to match the empty keyword. + 2001-11-09 Nick Clifton * cgen-ibld.in (extract_1): Fix badly placed #if 0. diff --git a/opcodes/cgen-asm.c b/opcodes/cgen-asm.c index b664d7bc8b..05b62bf49e 100644 --- a/opcodes/cgen-asm.c +++ b/opcodes/cgen-asm.c @@ -229,10 +229,16 @@ cgen_parse_keyword (cd, strp, keyword_table, valuep) ++p; if (p - start >= (int) sizeof (buf)) - return _("unrecognized keyword/register name"); - - memcpy (buf, start, p - start); - buf[p - start] = 0; + { + /* All non-empty CGEN keywords can fit into BUF. The only thing + we can match here is the empty keyword. */ + buf[0] = 0; + } + else + { + memcpy (buf, start, p - start); + buf[p - start] = 0; + } ke = cgen_keyword_lookup_name (keyword_table, buf);