]> git.draconx.ca Git - cdecl99.git/commitdiff
libcdecl: Silence GCC -Wunused-function warnings in the scanner.
authorNick Bowler <nbowler@draconx.ca>
Mon, 15 Jan 2024 04:28:01 +0000 (23:28 -0500)
committerNick Bowler <nbowler@draconx.ca>
Mon, 15 Jan 2024 04:50:31 +0000 (23:50 -0500)
Use the GCC unused attribute to avoid warnings in the scanner, and use
the flex yyIN_HEADER macro so the static declarations don't leak out to
other files (where GCC will give warnings about missing definitions).

While we do this, fix a typo and remove an unneeded declaration which
were both caught by this warning.

src/scan.l

index e720fcf29746c7bc9e75afae37aea5129282c9ce..f7e1b03eb158f44c3dbbc83ea950d4aedf02540c 100644 (file)
  * functions static, which allows better optimization (especially wrt.
  * dead code elimination).
  */
+#if !cdecl__yyIN_HEADER
+
+#if __GNUC__
+#  define static __attribute__((__unused__)) static
+#endif
+
 static struct yy_buffer_state *cdecl__yy_create_buffer(FILE *, int, void *);
 static struct yy_buffer_state *cdecl__yy_scan_bytes(const char *, int, void *);
 static struct yy_buffer_state *cdecl__yy_scan_buffer(char *, size_t, void *);
 static void cdecl__yy_switch_to_buffer(struct yy_buffer_state *, void *);
 static void cdecl__yy_flush_buffer(struct yy_buffer_state *, void *);
-static void yypush_buffer_state(struct yy_buffer_state *, void *);
+static void cdecl__yypush_buffer_state(struct yy_buffer_state *, void *);
 static void cdecl__yypop_buffer_state(void *);
 static void cdecl__yyrestart(FILE *, void *);
 static int cdecl__yylex_init(void **);
@@ -61,11 +67,14 @@ static void cdecl__yyset_out(FILE *, void *);
 static void cdecl__yyset_debug(int, void *);
 static void cdecl__yyset_lineno(int, void *);
 static void cdecl__yyset_column(int, void *);
-static void cdecl__yyset_leng(int, void *);
 
 static void *cdecl__yyrealloc(void *, size_t, void *);
 static void *cdecl__yyalloc(size_t, void *);
 static void cdecl__yyfree(void *, void *);
+
+#undef static
+
+#endif
 }
 
 %option nodefault noyywrap bison-locations reentrant never-interactive