X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Ffilter%2Ffilter-visitor-generate-bytecode.c;h=0e778562f99ab606f7f988dd4a16673a9c666e81;hp=d548da749e88ff2279b16b77673d290d4de7c16f;hb=73e38068d5e19fd338f29e897598b15ab5ae743b;hpb=016dbbb4557898ced758be5f271c63ba1cf0550c diff --git a/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c b/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c index d548da749..0e778562f 100644 --- a/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c +++ b/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c @@ -295,6 +295,9 @@ int visit_node_load_expression_legacy(struct filter_parser_ctx *ctx, } ret = bytecode_push(&ctx->bytecode_reloc, symbol, 1, strlen(symbol) + 1); + if (ret) { + goto end; + } ret = 1; /* legacy */ end: free(insn); @@ -319,6 +322,10 @@ int visit_node_load_expression(struct filter_parser_ctx *ctx, return -EINVAL; } + /* + * TODO: if we remove legacy load for application contexts, we + * need to update session bytecode parser as well. + */ ret = visit_node_load_expression_legacy(ctx, exp, op); if (ret < 0) { return ret; @@ -587,6 +594,9 @@ int visit_node_unary(struct filter_parser_ctx *ctx, struct ir_op *node) case AST_UNARY_NOT: insn.op = FILTER_OP_UNARY_NOT; return bytecode_push(&ctx->bytecode, &insn, 1, sizeof(insn)); + case AST_UNARY_BIT_NOT: + insn.op = FILTER_OP_UNARY_BIT_NOT; + return bytecode_push(&ctx->bytecode, &insn, 1, sizeof(insn)); } } @@ -636,11 +646,11 @@ int visit_node_binary(struct filter_parser_ctx *ctx, struct ir_op *node) case AST_OP_MINUS: insn.op = FILTER_OP_MINUS; break; - case AST_OP_RSHIFT: - insn.op = FILTER_OP_RSHIFT; + case AST_OP_BIT_RSHIFT: + insn.op = FILTER_OP_BIT_RSHIFT; break; - case AST_OP_LSHIFT: - insn.op = FILTER_OP_LSHIFT; + case AST_OP_BIT_LSHIFT: + insn.op = FILTER_OP_BIT_LSHIFT; break; case AST_OP_BIT_AND: insn.op = FILTER_OP_BIT_AND;