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 <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: bpf@vger.kernel.org
Link: https://lore.kernel.org/r/20230627181030.95608-14-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Ian Rogers 2023-06-27 11:10:30 -07:00 committed by Arnaldo Carvalho de Melo
parent 81a4e31f8c
commit 4c11adff67
1 changed files with 14 additions and 8 deletions

View File

@ -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)