diff options
-rw-r--r-- | Source/cmExprParserHelper.cxx | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/Source/cmExprParserHelper.cxx b/Source/cmExprParserHelper.cxx index 1f38d33..821667b 100644 --- a/Source/cmExprParserHelper.cxx +++ b/Source/cmExprParserHelper.cxx @@ -39,10 +39,9 @@ int cmExprParserHelper::ParseString(const char* str, int verb) yyscan_t yyscanner; cmExpr_yylex_init(&yyscanner); cmExpr_yyset_extra(this, yyscanner); - int res; try { - res = cmExpr_yyparse(yyscanner); + int res = cmExpr_yyparse(yyscanner); if (res != 0) { std::string e = "cannot parse the expression: \"" + InputBuffer + "\": "; e += ErrorString; @@ -55,19 +54,16 @@ int cmExprParserHelper::ParseString(const char* str, int verb) e += fail.what(); e += "."; this->SetError(std::move(e)); - res = 1; } catch (std::out_of_range const&) { std::string e = "cannot evaluate the expression: \"" + InputBuffer + "\": a numeric value is out of range."; this->SetError(std::move(e)); - res = 1; } catch (...) { std::string e = "cannot parse the expression: \"" + InputBuffer + "\"."; this->SetError(std::move(e)); - res = 1; } cmExpr_yylex_destroy(yyscanner); - if (res != 0) { + if (!this->ErrorString.empty()) { return 0; } |