From 348ddc5c9107149d48b1f12d31a7e75e9b73b4da Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 6 Oct 2021 12:16:33 -0400 Subject: [PATCH] common: compile libfilter as C++ MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch renames filter-lexer.l to filter-lexer.lpp and filter-parser.y to filter-parser.ypp. That makes automake pass the right options to flex/bison to generate C++ code. In filter-lexer.lpp, Instead of having declarations with the `unused` attribute for yyunput and yyinput, use the noinput and nounput options. The rest of the changes are standard C to C++ conversion stuff. Change-Id: Ie4bf1981b970145f97e8db1d88edaa2d9b95aef4 Signed-off-by: Simon Marchi Signed-off-by: Jérémie Galarneau --- src/common/filter-grammar-test.cpp | 2 +- src/common/filter/Makefile.am | 33 +++++++-------- src/common/filter/filter-ast.h | 20 +++++----- .../{filter-lexer.l => filter-lexer.lpp} | 9 +---- .../{filter-parser.y => filter-parser.ypp} | 40 ++++++++++++------- ...c => filter-visitor-generate-bytecode.cpp} | 28 ++++++------- ...te-ir.c => filter-visitor-generate-ir.cpp} | 30 +++++++------- ...er-visitor-ir-check-binary-comparator.cpp} | 2 +- ...er-visitor-ir-check-binary-op-nesting.cpp} | 2 +- ...er-visitor-ir-normalize-glob-patterns.cpp} | 2 +- ...> filter-visitor-ir-validate-globbing.cpp} | 2 +- ... => filter-visitor-ir-validate-string.cpp} | 2 +- ...r-visitor-xml.c => filter-visitor-xml.cpp} | 2 +- src/lib/lttng-ctl/lttng-ctl.cpp | 2 +- 14 files changed, 93 insertions(+), 83 deletions(-) rename src/common/filter/{filter-lexer.l => filter-lexer.lpp} (97%) rename src/common/filter/{filter-parser.y => filter-parser.ypp} (96%) rename src/common/filter/{filter-visitor-generate-bytecode.c => filter-visitor-generate-bytecode.cpp} (96%) rename src/common/filter/{filter-visitor-generate-ir.c => filter-visitor-generate-ir.cpp} (95%) rename src/common/filter/{filter-visitor-ir-check-binary-comparator.c => filter-visitor-ir-check-binary-comparator.cpp} (98%) rename src/common/filter/{filter-visitor-ir-check-binary-op-nesting.c => filter-visitor-ir-check-binary-op-nesting.cpp} (98%) rename src/common/filter/{filter-visitor-ir-normalize-glob-patterns.c => filter-visitor-ir-normalize-glob-patterns.cpp} (98%) rename src/common/filter/{filter-visitor-ir-validate-globbing.c => filter-visitor-ir-validate-globbing.cpp} (99%) rename src/common/filter/{filter-visitor-ir-validate-string.c => filter-visitor-ir-validate-string.cpp} (98%) rename src/common/filter/{filter-visitor-xml.c => filter-visitor-xml.cpp} (99%) diff --git a/src/common/filter-grammar-test.cpp b/src/common/filter-grammar-test.cpp index bd8f2de7f..75eb2c6ca 100644 --- a/src/common/filter-grammar-test.cpp +++ b/src/common/filter-grammar-test.cpp @@ -18,7 +18,7 @@ #include #include #include -#include +#include /* For error.h */ int lttng_opt_quiet = 1; diff --git a/src/common/filter/Makefile.am b/src/common/filter/Makefile.am index 629280356..4a6e4ff8d 100644 --- a/src/common/filter/Makefile.am +++ b/src/common/filter/Makefile.am @@ -6,21 +6,22 @@ noinst_LTLIBRARIES = libfilter.la noinst_HEADERS = filter-ast.h \ filter-symbols.h -BUILT_SOURCES = filter-parser.h +BUILT_SOURCES = filter-parser.hpp libfilter_la_SOURCES = \ - filter-parser.y filter-lexer.l \ - filter-visitor-xml.c \ - filter-visitor-generate-ir.c \ - filter-visitor-ir-check-binary-op-nesting.c \ - filter-visitor-ir-validate-string.c \ - filter-visitor-ir-validate-globbing.c \ - filter-visitor-ir-normalize-glob-patterns.c \ - filter-visitor-generate-bytecode.c \ + filter-lexer.lpp \ + filter-parser.ypp \ + filter-visitor-xml.cpp \ + filter-visitor-generate-ir.cpp \ + filter-visitor-ir-check-binary-op-nesting.cpp \ + filter-visitor-ir-validate-string.cpp \ + filter-visitor-ir-validate-globbing.cpp \ + filter-visitor-ir-normalize-glob-patterns.cpp \ + filter-visitor-generate-bytecode.cpp \ filter-ast.h \ filter-ir.h \ memstream.h -libfilter_la_CFLAGS = -include filter-symbols.h $(AM_CFLAGS) +libfilter_la_CXXFLAGS = -include filter-symbols.h $(AM_CXXFLAGS) libfilter_la_LIBADD = $(top_builddir)/src/common/string-utils/libstring-utils.la AM_YFLAGS = -t -d -v -Wno-yacc @@ -30,32 +31,32 @@ CLEANFILES = if HAVE_BISON # we have bison: we can clean the generated parser files -CLEANFILES += filter-parser.c filter-parser.h filter-parser.output +CLEANFILES += filter-parser.cpp filter-parser.hpp filter-parser.output else # HAVE_BISON # create target used to stop the build if we want to build the parser, # but we don't have the necessary tool to do so ERR_MSG = "Error: Cannot build target because bison is missing." ERR_MSG += "Make sure bison is installed and run the configure script again." -filter-parser.c filter-parser.h: filter-parser.y +filter-parser.cpp filter-parser.hpp: filter-parser.ypp @echo $(ERR_MSG) @false -all-local: filter-parser.c filter-parser.h +all-local: filter-parser.cpp filter-parser.hpp endif # HAVE_BISON if HAVE_FLEX # we have flex: we can clean the generated lexer files -CLEANFILES += filter-lexer.c +CLEANFILES += filter-lexer.cpp else # HAVE_FLEX # create target used to stop the build if we want to build the lexer, # but we don't have the necessary tool to do so ERR_MSG = "Error: Cannot build target because flex is missing." ERR_MSG += "Make sure flex is installed and run the configure script again." -filter-lexer.c: filter-lexer.l +filter-lexer.cpp: filter-lexer.lpp @echo $(ERR_MSG) @false -all-local: filter-lexer.c +all-local: filter-lexer.cpp endif # HAVE_FLEX diff --git a/src/common/filter/filter-ast.h b/src/common/filter/filter-ast.h index d7a567445..5033b46ea 100644 --- a/src/common/filter/filter-ast.h +++ b/src/common/filter/filter-ast.h @@ -93,6 +93,16 @@ enum ast_link_type { AST_LINK_BRACKET, }; +enum ast_expt_type { + AST_EXP_UNKNOWN = 0, + AST_EXP_STRING, + AST_EXP_CONSTANT, + AST_EXP_FLOAT_CONSTANT, + AST_EXP_IDENTIFIER, + AST_EXP_GLOBAL_IDENTIFIER, + AST_EXP_NESTED, +}; + struct filter_node { /* * Parent node is only set on demand by specific visitor. @@ -110,15 +120,7 @@ struct filter_node { struct filter_node *child; } root; struct { - enum { - AST_EXP_UNKNOWN = 0, - AST_EXP_STRING, - AST_EXP_CONSTANT, - AST_EXP_FLOAT_CONSTANT, - AST_EXP_IDENTIFIER, - AST_EXP_GLOBAL_IDENTIFIER, - AST_EXP_NESTED, - } type; + enum ast_expt_type type; enum ast_link_type post_op; /* reverse */ enum ast_link_type pre_op; /* forward */ union { diff --git a/src/common/filter/filter-lexer.l b/src/common/filter/filter-lexer.lpp similarity index 97% rename from src/common/filter/filter-lexer.l rename to src/common/filter/filter-lexer.lpp index 9da4645e5..acd4c0be8 100644 --- a/src/common/filter/filter-lexer.l +++ b/src/common/filter/filter-lexer.lpp @@ -12,17 +12,12 @@ #include #include "filter-ast.h" -#include "filter-parser.h" +#include "filter-parser.hpp" #include - -static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner) - __attribute__((unused)); -static int input (yyscan_t yyscanner) __attribute__((unused)); - %} %x comment_ml comment_sl string_lit char_const -%option reentrant yylineno noyywrap bison-bridge +%option reentrant yylineno noyywrap bison-bridge noinput nounput %option extra-type="struct filter_parser_ctx *" /* bison-locations */ diff --git a/src/common/filter/filter-parser.y b/src/common/filter/filter-parser.ypp similarity index 96% rename from src/common/filter/filter-parser.y rename to src/common/filter/filter-parser.ypp index b43561fb3..d654ecc84 100644 --- a/src/common/filter/filter-parser.y +++ b/src/common/filter/filter-parser.ypp @@ -18,7 +18,7 @@ #include #include "common/bytecode/bytecode.h" #include "filter-ast.h" -#include "filter-parser.h" +#include "filter-parser.hpp" #include "memstream.h" #include @@ -43,7 +43,6 @@ do { \ } while (0) #endif -int yydebug; int filter_parser_debug = 0; int yyparse(struct filter_parser_ctx *parser_ctx, yyscan_t scanner); @@ -58,18 +57,31 @@ struct gc_string { char s[]; }; -static const char *node_type_to_str[] = { - [ NODE_UNKNOWN ] = "NODE_UNKNOWN", - [ NODE_ROOT ] = "NODE_ROOT", - [ NODE_EXPRESSION ] = "NODE_EXPRESSION", - [ NODE_OP ] = "NODE_OP", - [ NODE_UNARY_OP ] = "NODE_UNARY_OP", +static +const char *node_type_str(enum node_type type) +{ + switch (type) { + case NODE_UNKNOWN: + return "NODE_UNKNOWN"; + case NODE_ROOT: + return "NODE_ROOT"; + case NODE_EXPRESSION: + return "NODE_EXPRESSION"; + case NODE_OP: + return "NODE_OP"; + case NODE_UNARY_OP: + return "NODE_UNARY_OP"; + case NR_NODE_TYPES: + abort(); + } + + abort(); }; const char *node_type(struct filter_node *node) { if (node->type < NR_NODE_TYPES) - return node_type_to_str[node->type]; + return node_type_str(node->type); else return NULL; } @@ -85,7 +97,7 @@ static struct gc_string *gc_string_alloc(struct filter_parser_ctx *parser_ctx, for (alloclen = 8; alloclen < sizeof(long) + sizeof(*gstr) + len; alloclen *= 2); - gstr = zmalloc(alloclen); + gstr = (gc_string *) zmalloc(alloclen); if (!gstr) { goto end; } @@ -142,7 +154,7 @@ static struct filter_node *make_node(struct filter_parser_ctx *scanner, struct filter_ast *ast = filter_parser_get_ast(scanner); struct filter_node *node; - node = zmalloc(sizeof(*node)); + node = (filter_node *) zmalloc(sizeof(*node)); if (!node) return NULL; memset(node, 0, sizeof(*node)); @@ -179,7 +191,7 @@ static struct filter_node *make_op_node(struct filter_parser_ctx *scanner, struct filter_ast *ast = filter_parser_get_ast(scanner); struct filter_node *node; - node = zmalloc(sizeof(*node)); + node = (filter_node *) zmalloc(sizeof(*node)); if (!node) return NULL; memset(node, 0, sizeof(*node)); @@ -215,7 +227,7 @@ static struct filter_ast *filter_ast_alloc(void) { struct filter_ast *ast; - ast = zmalloc(sizeof(*ast)); + ast = (filter_ast *) zmalloc(sizeof(*ast)); if (!ast) return NULL; memset(ast, 0, sizeof(*ast)); @@ -245,7 +257,7 @@ struct filter_parser_ctx *filter_parser_ctx_alloc(FILE *input) yydebug = filter_parser_debug; - parser_ctx = zmalloc(sizeof(*parser_ctx)); + parser_ctx = (filter_parser_ctx *) zmalloc(sizeof(*parser_ctx)); if (!parser_ctx) return NULL; memset(parser_ctx, 0, sizeof(*parser_ctx)); diff --git a/src/common/filter/filter-visitor-generate-bytecode.c b/src/common/filter/filter-visitor-generate-bytecode.cpp similarity index 96% rename from src/common/filter/filter-visitor-generate-bytecode.c rename to src/common/filter/filter-visitor-generate-bytecode.cpp index fe1220305..7b418acdc 100644 --- a/src/common/filter/filter-visitor-generate-bytecode.c +++ b/src/common/filter/filter-visitor-generate-bytecode.cpp @@ -62,21 +62,21 @@ int visit_node_root(struct filter_parser_ctx *ctx, struct ir_op *node) static int append_str(char **s, const char *append) { - char *old = *s; - char *new; - size_t oldlen = (old == NULL) ? 0 : strlen(old); + char *old_str = *s; + char *new_str; + size_t oldlen = (old_str == NULL) ? 0 : strlen(old_str); size_t appendlen = strlen(append); - new = calloc(oldlen + appendlen + 1, 1); - if (!new) { + new_str = (char *) calloc(oldlen + appendlen + 1, 1); + if (!new_str) { return -ENOMEM; } if (oldlen) { - strcpy(new, old); + strcpy(new_str, old_str); } - strcat(new, append); - *s = new; - free(old); + strcat(new_str, append); + *s = new_str; + free(old_str); return 0; } @@ -170,7 +170,7 @@ int visit_node_load_expression_legacy(struct filter_parser_ctx *ctx, if (ret <= 0) { goto end; } - insn = calloc(insn_len, 1); + insn = (load_op *) calloc(insn_len, 1); if (!insn) { ret = -ENOMEM; goto end; @@ -296,7 +296,7 @@ int visit_node_load_expression(struct filter_parser_ctx *ctx, struct load_op *insn; uint32_t insn_len = sizeof(struct load_op); - insn = calloc(insn_len, 1); + insn = (load_op *) calloc(insn_len, 1); if (!insn) return -ENOMEM; insn->op = BYTECODE_OP_LOAD_FIELD; @@ -330,7 +330,7 @@ int visit_node_load(struct filter_parser_ctx *ctx, struct ir_op *node) uint32_t insn_len = sizeof(struct load_op) + strlen(node->u.load.u.string.value) + 1; - insn = calloc(insn_len, 1); + insn = (load_op *) calloc(insn_len, 1); if (!insn) return -ENOMEM; @@ -370,7 +370,7 @@ int visit_node_load(struct filter_parser_ctx *ctx, struct ir_op *node) uint32_t insn_len = sizeof(struct load_op) + sizeof(struct literal_numeric); - insn = calloc(insn_len, 1); + insn = (load_op *) calloc(insn_len, 1); if (!insn) return -ENOMEM; insn->op = BYTECODE_OP_LOAD_S64; @@ -385,7 +385,7 @@ int visit_node_load(struct filter_parser_ctx *ctx, struct ir_op *node) uint32_t insn_len = sizeof(struct load_op) + sizeof(struct literal_double); - insn = calloc(insn_len, 1); + insn = (load_op *) calloc(insn_len, 1); if (!insn) return -ENOMEM; insn->op = BYTECODE_OP_LOAD_DOUBLE; diff --git a/src/common/filter/filter-visitor-generate-ir.c b/src/common/filter/filter-visitor-generate-ir.cpp similarity index 95% rename from src/common/filter/filter-visitor-generate-ir.c rename to src/common/filter/filter-visitor-generate-ir.cpp index 64e41ec93..a109ca60a 100644 --- a/src/common/filter/filter-visitor-generate-ir.c +++ b/src/common/filter/filter-visitor-generate-ir.cpp @@ -15,7 +15,7 @@ #include #include #include "filter-ast.h" -#include "filter-parser.h" +#include "filter-parser.hpp" #include "filter-ir.h" #include @@ -31,7 +31,7 @@ struct ir_op *make_op_root(struct ir_op *child, enum ir_side side) { struct ir_op *op; - op = calloc(sizeof(struct ir_op), 1); + op = (ir_op *) calloc(sizeof(struct ir_op), 1); if (!op) return NULL; switch (child->data_type) { @@ -80,7 +80,7 @@ struct ir_op *make_op_load_string(const char *string, enum ir_side side) { struct ir_op *op; - op = calloc(sizeof(struct ir_op), 1); + op = (ir_op *) calloc(sizeof(struct ir_op), 1); if (!op) return NULL; op->op = IR_OP_LOAD; @@ -101,7 +101,7 @@ struct ir_op *make_op_load_numeric(int64_t v, enum ir_side side) { struct ir_op *op; - op = calloc(sizeof(struct ir_op), 1); + op = (ir_op *) calloc(sizeof(struct ir_op), 1); if (!op) return NULL; op->op = IR_OP_LOAD; @@ -118,7 +118,7 @@ struct ir_op *make_op_load_float(double v, enum ir_side side) { struct ir_op *op; - op = calloc(sizeof(struct ir_op), 1); + op = (ir_op *) calloc(sizeof(struct ir_op), 1); if (!op) return NULL; op->op = IR_OP_LOAD; @@ -192,12 +192,12 @@ struct ir_load_expression *create_load_expression(struct filter_node *node) node = load_expression_get_forward_chain(node); if (!node) return NULL; - load_exp = calloc(sizeof(struct ir_load_expression), 1); + load_exp = (ir_load_expression *) calloc(sizeof(struct ir_load_expression), 1); if (!load_exp) return NULL; /* Root */ - load_exp_op = calloc(sizeof(struct ir_load_expression_op), 1); + load_exp_op = (ir_load_expression_op *) calloc(sizeof(struct ir_load_expression_op), 1); if (!load_exp_op) goto error; load_exp->child = load_exp_op; @@ -229,7 +229,7 @@ struct ir_load_expression *create_load_expression(struct filter_node *node) struct filter_node *bracket_node; prev_op = load_exp_op; - load_exp_op = calloc(sizeof(struct ir_load_expression_op), 1); + load_exp_op = (ir_load_expression_op *) calloc(sizeof(struct ir_load_expression_op), 1); if (!load_exp_op) goto error; prev_op->next = load_exp_op; @@ -248,7 +248,7 @@ struct ir_load_expression *create_load_expression(struct filter_node *node) fprintf(stderr, "[error] Expecting constant index in array expression\n"); goto error; } - load_exp_op = calloc(sizeof(struct ir_load_expression_op), 1); + load_exp_op = (ir_load_expression_op *) calloc(sizeof(struct ir_load_expression_op), 1); if (!load_exp_op) goto error; prev_op->next = load_exp_op; @@ -263,7 +263,7 @@ struct ir_load_expression *create_load_expression(struct filter_node *node) } /* Add final load field */ prev_op = load_exp_op; - load_exp_op = calloc(sizeof(struct ir_load_expression_op), 1); + load_exp_op = (ir_load_expression_op *) calloc(sizeof(struct ir_load_expression_op), 1); if (!load_exp_op) goto error; prev_op->next = load_exp_op; @@ -281,7 +281,7 @@ struct ir_op *make_op_load_expression(struct filter_node *node, { struct ir_op *op; - op = calloc(sizeof(struct ir_op), 1); + op = (ir_op *) calloc(sizeof(struct ir_op), 1); if (!op) return NULL; op->op = IR_OP_LOAD; @@ -312,7 +312,7 @@ struct ir_op *make_op_unary(enum unary_op_type unary_op_type, goto error; } - op = calloc(sizeof(struct ir_op), 1); + op = (ir_op *) calloc(sizeof(struct ir_op), 1); if (!op) return NULL; op->op = IR_OP_UNARY; @@ -380,7 +380,7 @@ struct ir_op *make_op_binary_compare(enum op_type bin_op_type, goto error; } - op = calloc(sizeof(struct ir_op), 1); + op = (ir_op *) calloc(sizeof(struct ir_op), 1); if (!op) return NULL; op->op = IR_OP_BINARY; @@ -461,7 +461,7 @@ struct ir_op *make_op_binary_logical(enum op_type bin_op_type, goto error; } - op = calloc(sizeof(struct ir_op), 1); + op = (ir_op *) calloc(sizeof(struct ir_op), 1); if (!op) return NULL; op->op = IR_OP_LOGICAL; @@ -505,7 +505,7 @@ struct ir_op *make_op_binary_bitwise(enum op_type bin_op_type, goto error; } - op = calloc(sizeof(struct ir_op), 1); + op = (ir_op *) calloc(sizeof(struct ir_op), 1); if (!op) return NULL; op->op = IR_OP_BINARY; diff --git a/src/common/filter/filter-visitor-ir-check-binary-comparator.c b/src/common/filter/filter-visitor-ir-check-binary-comparator.cpp similarity index 98% rename from src/common/filter/filter-visitor-ir-check-binary-comparator.c rename to src/common/filter/filter-visitor-ir-check-binary-comparator.cpp index 19e594311..480100f25 100644 --- a/src/common/filter/filter-visitor-ir-check-binary-comparator.c +++ b/src/common/filter/filter-visitor-ir-check-binary-comparator.cpp @@ -18,7 +18,7 @@ #include #include "filter-ast.h" -#include "filter-parser.h" +#include "filter-parser.hpp" #include "filter-ir.h" static diff --git a/src/common/filter/filter-visitor-ir-check-binary-op-nesting.c b/src/common/filter/filter-visitor-ir-check-binary-op-nesting.cpp similarity index 98% rename from src/common/filter/filter-visitor-ir-check-binary-op-nesting.c rename to src/common/filter/filter-visitor-ir-check-binary-op-nesting.cpp index fed236322..290ea0367 100644 --- a/src/common/filter/filter-visitor-ir-check-binary-op-nesting.c +++ b/src/common/filter/filter-visitor-ir-check-binary-op-nesting.cpp @@ -15,7 +15,7 @@ #include #include #include "filter-ast.h" -#include "filter-parser.h" +#include "filter-parser.hpp" #include "filter-ir.h" #include diff --git a/src/common/filter/filter-visitor-ir-normalize-glob-patterns.c b/src/common/filter/filter-visitor-ir-normalize-glob-patterns.cpp similarity index 98% rename from src/common/filter/filter-visitor-ir-normalize-glob-patterns.c rename to src/common/filter/filter-visitor-ir-normalize-glob-patterns.cpp index 999fc2ea1..a091b8123 100644 --- a/src/common/filter/filter-visitor-ir-normalize-glob-patterns.c +++ b/src/common/filter/filter-visitor-ir-normalize-glob-patterns.cpp @@ -20,7 +20,7 @@ #include #include "filter-ast.h" -#include "filter-parser.h" +#include "filter-parser.hpp" #include "filter-ir.h" static diff --git a/src/common/filter/filter-visitor-ir-validate-globbing.c b/src/common/filter/filter-visitor-ir-validate-globbing.cpp similarity index 99% rename from src/common/filter/filter-visitor-ir-validate-globbing.c rename to src/common/filter/filter-visitor-ir-validate-globbing.cpp index 74bb72db4..8f9c785c4 100644 --- a/src/common/filter/filter-visitor-ir-validate-globbing.c +++ b/src/common/filter/filter-visitor-ir-validate-globbing.cpp @@ -19,7 +19,7 @@ #include #include "filter-ast.h" -#include "filter-parser.h" +#include "filter-parser.hpp" #include "filter-ir.h" static diff --git a/src/common/filter/filter-visitor-ir-validate-string.c b/src/common/filter/filter-visitor-ir-validate-string.cpp similarity index 98% rename from src/common/filter/filter-visitor-ir-validate-string.c rename to src/common/filter/filter-visitor-ir-validate-string.cpp index 19018456c..0c18f98bc 100644 --- a/src/common/filter/filter-visitor-ir-validate-string.c +++ b/src/common/filter/filter-visitor-ir-validate-string.cpp @@ -19,7 +19,7 @@ #include #include "filter-ast.h" -#include "filter-parser.h" +#include "filter-parser.hpp" #include "filter-ir.h" enum parse_char_result { diff --git a/src/common/filter/filter-visitor-xml.c b/src/common/filter/filter-visitor-xml.cpp similarity index 99% rename from src/common/filter/filter-visitor-xml.c rename to src/common/filter/filter-visitor-xml.cpp index 7d6094e4c..eb12452a6 100644 --- a/src/common/filter/filter-visitor-xml.c +++ b/src/common/filter/filter-visitor-xml.cpp @@ -15,7 +15,7 @@ #include #include #include "filter-ast.h" -#include "filter-parser.h" +#include "filter-parser.hpp" #include #include diff --git a/src/lib/lttng-ctl/lttng-ctl.cpp b/src/lib/lttng-ctl/lttng-ctl.cpp index 362298718..d4ec1c81b 100644 --- a/src/lib/lttng-ctl/lttng-ctl.cpp +++ b/src/lib/lttng-ctl/lttng-ctl.cpp @@ -47,7 +47,7 @@ #include "lttng-ctl-helper.h" #include -#include +#include #include #define COPY_DOMAIN_PACKED(dst, src) \ -- 2.34.1