diff --git a/src/expr.c b/src/expr.c index b86d0414..91d845ef 100644 --- a/src/expr.c +++ b/src/expr.c @@ -3061,6 +3061,7 @@ int DoCoerce(char type, Value *v) case STR_TYPE: s = v->v.str; + i=0; /* Avoid compiler warning */ if (ParseLiteralTime(&s, &i)) return E_CANT_COERCE; if (*s) return E_CANT_COERCE; v->type = TIME_TYPE; diff --git a/src/token.c b/src/token.c index 17de9f31..3aff8b1a 100644 --- a/src/token.c +++ b/src/token.c @@ -246,7 +246,14 @@ void FindNumericToken(char const *s, Token *t) int dse, tim; r = ParseLiteralDate(&p, &dse, &tim); if (r == OK) { - if (*p) return; + if (*p) { + if (tim == NO_TIME) { + t->val = -E_BAD_DATE; + } else { + t->val = -E_BAD_TIME; + } + return; + } if (tim == NO_TIME) { t->type = T_Date; t->val = dse;