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 '^'; } >