aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Rogers <[email protected]>2023-06-27 11:10:30 -0700
committerArnaldo Carvalho de Melo <[email protected]>2023-07-28 19:01:16 -0300
commit4c11adff675652759a0f0ad2194f4646b5463a42 (patch)
tree1902f4bd3d5a2bdf6393982310860369d41bb8a7
parent81a4e31f8c4a50bc5c5f49a1e2e4a295edd57719 (diff)
perf parse-events: Remove ABORT_ON
Prefer informative messages rather than none with ABORT_ON. Document one failure mode and add an error message for another. Signed-off-by: Ian Rogers <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Alexander Shishkin <[email protected]> Cc: Athira Rajeev <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Kan Liang <[email protected]> Cc: Mark Rutland <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: [email protected] Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
-rw-r--r--tools/perf/util/parse-events.y22
1 files changed, 14 insertions, 8 deletions
diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
index 844646752462..454577f7aff6 100644
--- a/tools/perf/util/parse-events.y
+++ b/tools/perf/util/parse-events.y
@@ -22,12 +22,6 @@
void parse_events_error(YYLTYPE *loc, void *parse_state, void *scanner, char const *msg);
-#define ABORT_ON(val) \
-do { \
- if (val) \
- YYABORT; \
-} while (0)
-
#define PE_ABORT(val) \
do { \
if (val == -ENOMEM) \
@@ -618,7 +612,9 @@ PE_RAW opt_event_config
YYNOMEM;
errno = 0;
num = strtoull($1 + 1, NULL, 16);
- ABORT_ON(errno);
+ /* Given the lexer will only give [a-fA-F0-9]+ a failure here should be impossible. */
+ if (errno)
+ YYABORT;
free($1);
err = parse_events_add_numeric(_parse_state, list, PERF_TYPE_RAW, num, $2,
/*wildcard=*/false);
@@ -978,7 +974,17 @@ PE_VALUE PE_ARRAY_RANGE PE_VALUE
{
struct parse_events_array array;
- ABORT_ON($3 < $1);
+ if ($3 < $1) {
+ struct parse_events_state *parse_state = _parse_state;
+ struct parse_events_error *error = parse_state->error;
+ char *err_str;
+
+ if (asprintf(&err_str, "Expected '%ld' to be less-than '%ld'", $3, $1) < 0)
+ err_str = NULL;
+
+ parse_events_error__handle(error, @1.first_column, err_str, NULL);
+ YYABORT;
+ }
array.nr_ranges = 1;
array.ranges = malloc(sizeof(array.ranges[0]));
if (!array.ranges)