Import CStringView from the Babeltrace tree
[lttng-tools.git] / src / common / filter / filter-parser.ypp
index d654ecc84ab7ac539925d4973d50027172d1ece8..e3fae6394fcaa0cb6a76eaec0191829714d14045 100644 (file)
 #include <string.h>
 #include <stdlib.h>
 #include <inttypes.h>
-#include "common/bytecode/bytecode.h"
-#include "filter-ast.h"
+#include "common/bytecode/bytecode.hpp"
+#include "filter-ast.hpp"
 #include "filter-parser.hpp"
-#include "memstream.h"
+#include "memstream.hpp"
 
-#include <common/compat/errno.h>
-#include <common/macros.h>
+#include <common/compat/errno.hpp>
+#include <common/compiler.hpp>
+#include <common/macros.hpp>
 
 #define WIDTH_u64_SCANF_IS_A_BROKEN_API        "20"
 #define WIDTH_o64_SCANF_IS_A_BROKEN_API        "22"
 #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));
@@ -428,7 +437,7 @@ error:
 
 %code provides
 {
-#include "common/macros.h"
+#include "common/macros.hpp"
 
 void setstring(struct filter_parser_ctx *parser_ctx, YYSTYPE *lvalp, const char *src);
 }
This page took 0.024399 seconds and 4 git commands to generate.