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

Ian Rogers
2020-11-18T05:04:02Z

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@google.com>
---
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 b2ada8f8309a..c22e3500a40f 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;
}

$$ = expr_id_data__value(data);
--
2.29.2.299.gdc1121823c-goog