------- Additional Comments From hjl dot tools at gmail dot com 2008-10-29 07:02 ------- Does this patch make sense?
--- ./expr.c.ll 2007-10-30 11:48:37.000000000 -0700 +++ ./expr.c 2008-10-28 23:43:00.000000000 -0700 @@ -241,6 +241,12 @@ generic_bignum_to_int64 (void) } #endif +struct suffix +{ + const char *suffix; + int len; +}; + static void integer_constant (int radix, expressionS *expressionP) { @@ -253,8 +259,30 @@ integer_constant (int radix, expressionS int too_many_digits = 0; /* If we see >= this number of. */ char *name; /* Points to name of symbol. */ symbolS *symbolP; /* Points to symbol. */ - int small; /* True if fits in 32 bits. */ + static const struct suffix long_suffix[] = + { + { STRING_COMMA_LEN ("L") }, + { STRING_COMMA_LEN ("UL") }, + { NULL, 0 } + }; + static const struct suffix long_long_suffix[] = + { + { STRING_COMMA_LEN ("L") }, + { STRING_COMMA_LEN ("UL") }, + { STRING_COMMA_LEN ("LL") }, + { STRING_COMMA_LEN ("ULL") }, + { NULL, 0 } + }; + const struct suffix *valid_suffix; + + if (sizeof (valueT) == sizeof (long long)) + valid_suffix = long_long_suffix; + else + if (sizeof (valueT) == sizeof (long)) + valid_suffix = long_suffix; + else + valid_suffix = NULL; /* May be bignum, or may fit in 32 bits. */ /* Most numbers fit into 32 bits, and we want this case to be fast. @@ -586,6 +614,16 @@ integer_constant (int radix, expressionS expressionP->X_op = O_constant; expressionP->X_add_number = number; input_line_pointer--; /* Restore following character. */ + + /* Allow L/LL suffixes. */ + if (*input_line_pointer && valid_suffix) + for (; valid_suffix->suffix; valid_suffix++) + if (strcasecmp (valid_suffix->suffix, + input_line_pointer) == 0) + { + input_line_pointer += valid_suffix->len; + break; + } } /* Really just a number. */ } else -- http://sourceware.org/bugzilla/show_bug.cgi?id=6994 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils