Silence -Wunused-but-set-variable error with clang
authorSimon Marchi <simon.marchi@efficios.com>
Thu, 4 Aug 2022 18:28:25 +0000 (14:28 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Thu, 18 Aug 2022 20:06:53 +0000 (16:06 -0400)
When building with clang-15, I get:

      CXX      libctf_parser_la-parser.lo
    parser.cpp:2920:9: error: variable 'yynerrs' set but not used [-Werror,-Wunused-but-set-variable]
        int yynerrs;
            ^

This is because it warns for something like this:

    int n;
    n = 0;
    ++n;

whereas previous versions do not.

This is generated code, so there's not much more we can do other than
silence the warning for the file.

Change-Id: If2cffe9042b743ffe4b4b23f751216f67b58e5fa
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/8655
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
src/common/macros.h
src/plugins/ctf/common/metadata/parser.ypp

index 34ac393f76bda366a8ad142ff4d568ba3465bb25..6a3e061d5f17464222d85701e96a0cbf6e871121 100644 (file)
@@ -81,6 +81,17 @@ extern "C" {
        ((void) sizeof((void) (_expr1), (void) (_expr2),                \
                (void) (_expr3), (void) (_expr4), (void) (_expr5), 0))
 
+#if defined __clang__
+#  if __has_warning("-Wunused-but-set-variable")
+#    define BT_DIAG_IGNORE_UNUSED_BUT_SET_VARIABLE \
+       _Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"")
+#  endif
+#endif
+
+#if !defined BT_DIAG_IGNORE_UNUSED_BUT_SET_VARIABLE
+#  define BT_DIAG_IGNORE_UNUSED_BUT_SET_VARIABLE
+#endif
+
 #ifdef __cplusplus
 }
 #endif
index b644b5d1ec68713f10bb68b5ac644d1748f8bc79..e475436ed8f987a75b00fda0bcd0c59f7d37621f 100644 (file)
 
 #include "parser-wrap.hpp"
 
+/*
+ * Avoid warning about "yynerrs" being unused, seen with bison 3.5.1 + clang 15
+ * on Ubuntu 20.04.
+ */
+BT_DIAG_IGNORE_UNUSED_BUT_SET_VARIABLE
+
 /* Join two lists, put "add" at the end of "head".  */
 static inline void
 _bt_list_splice_tail (struct bt_list_head *add, struct bt_list_head *head)
This page took 0.026111 seconds and 4 git commands to generate.