[PATCH] scanner: Add GCC pragmas to disable -Wredundant-decls

Jasper St. Pierre jstpierre at mecheye.net
Sat Feb 15 10:29:16 PST 2014

The code very intentionally emits a lot of redundant declarations
to simplify the scanner code. Somebody building with -Wredundant-decls
would have compile errors, so emit special pragmas to turn those
warnings off.

These pragmas should be ignored outside of gcc/clang.
 src/scanner.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/scanner.c b/src/scanner.c
index 243ddfd..e8bfc7c 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -1165,11 +1165,13 @@ emit_code(struct protocol *protocol)
 	       "#include <stdint.h>\n"
 	       "#include \"wayland-util.h\"\n\n");
+	printf("#pragma GCC diagnostic push\n"
+	       "#pragma GCC diagnostic ignored \"-Wredundant-decls\"\n");
 	wl_list_for_each(i, &protocol->interface_list, link) {
 		emit_types_forward_declarations(protocol, &i->request_list);
 		emit_types_forward_declarations(protocol, &i->event_list);
-	printf("\n");
+	printf("#pragma GCC diagnostic pop\n\n");
 	printf("static const struct wl_interface *types[] = {\n");

More information about the wayland-devel mailing list