Import CStringView from the Babeltrace tree
[lttng-tools.git] / src / common / filter / filter-parser.ypp
index 89f6b43d911f7de5a17db2dd25dadfb2aaf74262..e3fae6394fcaa0cb6a76eaec0191829714d14045 100644 (file)
@@ -22,6 +22,7 @@
 #include "memstream.hpp"
 
 #include <common/compat/errno.hpp>
+#include <common/compiler.hpp>
 #include <common/macros.hpp>
 
 #define WIDTH_u64_SCANF_IS_A_BROKEN_API        "20"
 #define WIDTH_x64_SCANF_IS_A_BROKEN_API        "17"
 #define WIDTH_lg_SCANF_IS_A_BROKEN_API "4096"  /* Hugely optimistic approximation */
 
+/*
+ * bison 3.8.2 produces a parser with unused, but set, which results in warnings
+ * at build time.
+ */
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Wunused-but-set-variable"
+#endif /* __clang__ */
+
 #ifdef DEBUG
 static const int print_xml = 1;
 #define dbg_printf(fmt, args...)       \
@@ -54,7 +63,7 @@ void yyrestart(FILE * in_str, yyscan_t parser_ctx);
 struct gc_string {
        struct cds_list_head gc;
        size_t alloclen;
-       char s[];
+       char s[LTTNG_FLEXIBLE_ARRAY_MEMBER_LENGTH];
 };
 
 static
@@ -97,7 +106,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 = (gc_string *) zmalloc(alloclen);
+       gstr = zmalloc<gc_string>(alloclen);
        if (!gstr) {
                goto end;
        }
@@ -154,7 +163,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 = (filter_node *) zmalloc(sizeof(*node));
+       node = zmalloc<filter_node>();
        if (!node)
                return NULL;
        memset(node, 0, sizeof(*node));
@@ -191,7 +200,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 = (filter_node *) zmalloc(sizeof(*node));
+       node = zmalloc<filter_node>();
        if (!node)
                return NULL;
        memset(node, 0, sizeof(*node));
@@ -227,7 +236,7 @@ static struct filter_ast *filter_ast_alloc(void)
 {
        struct filter_ast *ast;
 
-       ast = (filter_ast *) zmalloc(sizeof(*ast));
+       ast = zmalloc<filter_ast>();
        if (!ast)
                return NULL;
        memset(ast, 0, sizeof(*ast));
@@ -257,7 +266,7 @@ struct filter_parser_ctx *filter_parser_ctx_alloc(FILE *input)
 
        yydebug = filter_parser_debug;
 
-       parser_ctx = (filter_parser_ctx *) zmalloc(sizeof(*parser_ctx));
+       parser_ctx = zmalloc<filter_parser_ctx>();
        if (!parser_ctx)
                return NULL;
        memset(parser_ctx, 0, sizeof(*parser_ctx));
This page took 0.02358 seconds and 4 git commands to generate.