summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/perf/util/expr.y9
1 files changed, 4 insertions, 5 deletions
diff --git a/tools/perf/util/expr.y b/tools/perf/util/expr.y
index b2ada8f8309a..41c9cd4efadd 100644
--- a/tools/perf/util/expr.y
+++ b/tools/perf/util/expr.y
@@ -1,6 +1,7 @@
/* Simple expression parser */
%{
#define YYDEBUG 1
+#include <math.h>
#include <stdio.h>
#include "util.h"
#include "util/debug.h"
@@ -88,12 +89,10 @@ expr: NUMBER
| ID {
struct expr_id_data *data;
- if (expr__resolve_id(ctx, $1, &data)) {
- free($1);
- YYABORT;
- }
+ $$ = NAN;
+ if (expr__resolve_id(ctx, $1, &data) == 0)
+ $$ = expr_id_data__value(data);
- $$ = expr_id_data__value(data);
free($1);
}
| expr '|' expr { $$ = (long)$1 | (long)$3; }