On 5/1/20 11:03 PM, Ian Rogers wrote:
> This is expected in expr.y and metrics use floating point values such as
> x86 broadwell IFetch_Line_Utilization.
> 
> Fixes: 26226a97724d (perf expr: Move expr lexer to flex)
> Signed-off-by: Ian Rogers <irog...@google.com>
> ---
>  tools/perf/util/expr.l | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/perf/util/expr.l b/tools/perf/util/expr.l
> index 73db6a9ef97e..ceab11bea6f9 100644
> --- a/tools/perf/util/expr.l
> +++ b/tools/perf/util/expr.l
> @@ -10,12 +10,12 @@
>  char *expr_get_text(yyscan_t yyscanner);
>  YYSTYPE *expr_get_lval(yyscan_t yyscanner);
>  
> -static int __value(YYSTYPE *yylval, char *str, int base, int token)
> +static double __value(YYSTYPE *yylval, char *str, int token)
>  {
> -     u64 num;
> +     double num;
>  
>       errno = 0;
> -     num = strtoull(str, NULL, base);
> +     num = strtod(str, NULL);
>       if (errno)
>               return EXPR_ERROR;
>  
> @@ -23,12 +23,12 @@ static int __value(YYSTYPE *yylval, char *str, int base, 
> int token)
>       return token;
>  }
>  
> -static int value(yyscan_t scanner, int base)
> +static int value(yyscan_t scanner)
>  {
>       YYSTYPE *yylval = expr_get_lval(scanner);
>       char *text = expr_get_text(scanner);
>  
> -     return __value(yylval, text, base, NUMBER);
> +     return __value(yylval, text, NUMBER);
>  }
>  
>  /*
> @@ -81,7 +81,7 @@ static int str(yyscan_t scanner, int token, int runtime)
>  }
>  %}
>  
> -number               [0-9]+
> +number               [0-9]*\.?[0-9]+
>  
Acked and Tested by: Kajol Jain <kj...@linux.ibm.com>
>  sch          [-,=]
>  spec         \\{sch}
> @@ -105,7 +105,7 @@ min               { return MIN; }
>  if           { return IF; }
>  else         { return ELSE; }
>  #smt_on              { return SMT_ON; }
> -{number}     { return value(yyscanner, 10); }
> +{number}     { return value(yyscanner); }
>  {symbol}     { return str(yyscanner, ID, sctx->runtime); }
>  "|"          { return '|'; }
>  "^"          { return '^'; }
> 

Reply via email to