X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Ffilter%2Ffilter-visitor-ir-check-binary-op-nesting.c;h=04a5fbdd6740047332eb37f93f4107d05f1ada1d;hp=bb9fd12e39950e0702772ef085856016ef659e7b;hb=d44f9a1878031bfdb6ceee49d817430b11f0a58b;hpb=d00c599e39ae45ec7c8e12e6bac6b5e58f08f817 diff --git a/src/lib/lttng-ctl/filter/filter-visitor-ir-check-binary-op-nesting.c b/src/lib/lttng-ctl/filter/filter-visitor-ir-check-binary-op-nesting.c index bb9fd12e3..04a5fbdd6 100644 --- a/src/lib/lttng-ctl/filter/filter-visitor-ir-check-binary-op-nesting.c +++ b/src/lib/lttng-ctl/filter/filter-visitor-ir-check-binary-op-nesting.c @@ -3,20 +3,10 @@ * * LTTng filter IR check binary op nesting * - * Copyright 2012 - Mathieu Desnoyers + * Copyright 2012 Mathieu Desnoyers * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include @@ -30,6 +20,8 @@ #include "filter-parser.h" #include "filter-ir.h" +#include + static int check_bin_op_nesting_recursive(struct ir_op *node, int nesting) { @@ -51,16 +43,12 @@ int check_bin_op_nesting_recursive(struct ir_op *node, int nesting) { int ret; - if (nesting > 0) { - fprintf(stderr, "[error] Nesting of binary operators is not allowed, except for logical operators.\n"); - return -EINVAL; - } ret = check_bin_op_nesting_recursive(node->u.binary.left, - nesting++); + nesting + 1); if (ret) return ret; return check_bin_op_nesting_recursive(node->u.binary.right, - nesting++); + nesting + 1); } case IR_OP_LOGICAL: { @@ -76,7 +64,7 @@ int check_bin_op_nesting_recursive(struct ir_op *node, int nesting) } } -__attribute__((visibility("hidden"))) +LTTNG_HIDDEN int filter_visitor_ir_check_binary_op_nesting(struct filter_parser_ctx *ctx) { return check_bin_op_nesting_recursive(ctx->ir_root, 0);