[PATCH 2/5] perf metric: Use NAN for missing event IDs.

From: Ian Rogers
Date: Thu Nov 12 2020 - 19:17:03 EST


If during computing a metric an event (id) is missing the parsing
aborts. A later patch will make it so that events that aren't used in
the output are deliberately omitted, in which case we don't want the
abort. Modify the missing ID case to report NAN for these cases.

Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/util/expr.y | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/expr.y b/tools/perf/util/expr.y
index d34b370391c6..4ce76adeb337 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"
@@ -89,8 +90,7 @@ expr: NUMBER
struct expr_id_data *data;

if (expr__resolve_id(ctx, $1, &data)) {
- free($1);
- YYABORT;
+ $$ = NAN;
}

$$ = data->val;
--
2.29.2.299.gdc1121823c-goog