|  | @@ -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;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 |