Re: [PATCH 2/3] perf, expr: Remove assert usage

From: Jiri Olsa
Date: Tue Sep 24 2019 - 03:44:13 EST


On Mon, Sep 23, 2019 at 04:33:38PM -0700, Andi Kleen wrote:
> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> My "compile perf statically" setup doesn't like this assert
> for unknown reasons. Replace it with a standard BUG_ON
>
> Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> ---
> 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 f9a20a39b64a..5086a941295a 100644
> --- a/tools/perf/util/expr.y
> +++ b/tools/perf/util/expr.y
> @@ -6,7 +6,6 @@
> #define IN_EXPR_Y 1
> #include "expr.h"
> #include "smt.h"
> -#include <assert.h>
> #include <string.h>
>
> #define MAXIDLEN 256
> @@ -172,7 +171,8 @@ static int expr__lex(YYSTYPE *res, const char **pp)
> void expr__add_id(struct parse_ctx *ctx, const char *name, double val)
> {
> int idx;
> - assert(ctx->num_ids < MAX_PARSE_ID);
> +
> + BUG_ON(ctx->num_ids >= MAX_PARSE_ID);

hi,
getting compilation fail

LINK perf
/usr/bin/ld: perf-in.o: in function `expr__add_id':
/home/jolsa/kernel/linux-perf/tools/perf/util/expr.y:175: undefined reference to `BUG_ON'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile.perf:609: perf] Error 1
make[1]: *** [Makefile.perf:221: sub-make] Error 2
make: *** [Makefile:70: all] Error 2

jirka

> idx = ctx->num_ids++;
> ctx->ids[idx].name = name;
> ctx->ids[idx].val = val;
> --
> 2.21.0
>