+1998-08-20 Vladimir N. Makarov <vmakarov@cygnus.com>
+
+ * expr.c (operand): Check correctly that there is no advance in
+ operand after atof_generic in order to decide "is it label 0f or
+ floating point number".
+
Wed Aug 19 09:30:16 1998 Nick Clifton <nickc@cygnus.com>
* config/tc-m32r.c: Replace double dash prefix to M32R specific
make_expr_symbol (expressionP)
expressionS *expressionP;
{
+ expressionS zero;
const char *fake;
symbolS *symbolP;
struct expr_symbol_line *n;
&& expressionP->X_add_number == 0)
return expressionP->X_add_symbol;
+ if (expressionP->X_op == O_big)
+ {
+ /* This won't work, because the actual value is stored in
+ generic_floating_point_number or generic_bignum, and we are
+ going to lose it if we haven't already. */
+ if (expressionP->X_add_number > 0)
+ as_bad (_("bignum invalid; zero assumed"));
+ else
+ as_bad (_("floating point number invalid; zero assumed"));
+ zero.X_op = O_constant;
+ zero.X_add_number = 0;
+ zero.X_unsigned = 0;
+ clean_up_expression (&zero);
+ expressionP = &zero;
+ }
+
fake = FAKE_LABEL_NAME;
/* Putting constant symbols in absolute_section rather than
{
case 0:
case ERROR_EXPONENT_OVERFLOW:
- if (*cp == 'f' || *cp == 'b')
+ if (cp[-1] == 'f' || cp[-1] == 'b')
/* looks like a difference expression */
goto is_0f_label;
else