diff --git a/src/DynareFlex.ll b/src/DynareFlex.ll
index c18feca8420c8203162971353314d65ab31c5a2d..a1476cc24a0a38a11e776fa3c38e52208785bb74 100644
--- a/src/DynareFlex.ll
+++ b/src/DynareFlex.ll
@@ -42,6 +42,9 @@ using token = Dynare::parser::token;
 
 int comment_caller, line_caller;
 string eofbuff;
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wold-style-cast"
 %}
 
 %option c++
@@ -1208,6 +1211,8 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4])
 <*>.      { driver.error(*yylloc, "character unrecognized by lexer"); }
 %%
 
+#pragma GCC diagnostic pop
+
 DynareFlex::DynareFlex(istream* in, ostream* out)
   : DynareFlexLexer{in, out}
 {
diff --git a/src/macro/Tokenizer.ll b/src/macro/Tokenizer.ll
index c930cc5468ee6eee2f8ecee9bd0350a44a0c6fc4..a3ef9d1b6673153e23de4e8fcef9021763f3b02a 100644
--- a/src/macro/Tokenizer.ll
+++ b/src/macro/Tokenizer.ll
@@ -1,6 +1,6 @@
 /* -*- C++ -*- */
 /*
- * Copyright © 2019-2021 Dynare Team
+ * Copyright © 2019-2023 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -35,6 +35,9 @@ using token = Tokenizer::parser::token;
    Unfortunately yyterminate by default returns 0, which is
    not of token_type.  */
 #define yyterminate() return Tokenizer::parser::token_type (0);
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wold-style-cast"
 %}
 
 %option c++
@@ -193,6 +196,8 @@ CONT \\\\{SPC}*
 
 %%
 
+#pragma GCC diagnostic pop
+
 void
 TokenizerFlex::location_increment(Tokenizer::parser::location_type *yylloc, const char *yytext)
 {