[PATCH 2/9] glr2.cc: remove C-style casts

Akim Demaille <[email protected]>
Newsgroups gmane.comp.parsers.bison.patches
Message-ID <[email protected]>
From: Valentin Tolmer <[email protected]>

* data/skeletons/glr2.cc: here.
---
 TODO                   |  8 --------
 data/skeletons/glr2.cc | 18 +++++-------------
 2 files changed, 5 insertions(+), 21 deletions(-)

diff --git a/TODO b/TODO
index eecde20a..c9321ecb 100644
--- a/TODO
+++ b/TODO
@@ -165,14 +165,6 @@ Get rid of scaffolding in glr.c.
 *** pragmas in glr2.cc
 Remove the pragmas that disable some warnings:
 
-    // This skeleton is based on C, yet compiles it as C++.
-    // So expect warnings about C style casts.
-    #if defined __clang__ && 306 <= __clang_major__ * 100 + __clang_minor__
-    # pragma clang diagnostic ignored "-Wold-style-cast"
-    #elif defined __GNUC__ && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
-    # pragma GCC diagnostic ignored "-Wold-style-cast"
-    #endif
-
     // On MacOS, PTRDIFF_MAX is defined as long long, which Clang's
     // -pedantic reports as being a C++11 extension.
     #if defined __APPLE__ && YY_CPLUSPLUS < 201103L \
diff --git a/data/skeletons/glr2.cc b/data/skeletons/glr2.cc
index f115dcc0..39eb8b36 100644
--- a/data/skeletons/glr2.cc
+++ b/data/skeletons/glr2.cc
@@ -144,14 +144,6 @@ b4_percent_code_get([[requires]])[
 ]b4_cast_define[
 ]b4_null_define[
 
-// This skeleton is based on C, yet compiles it as C++.
-// So expect warnings about C style casts.
-#if defined __clang__ && 306 <= __clang_major__ * 100 + __clang_minor__
-# pragma clang diagnostic ignored "-Wold-style-cast"
-#elif defined __GNUC__ && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
-# pragma GCC diagnostic ignored "-Wold-style-cast"
-#endif
-
 // On MacOS, PTRDIFF_MAX is defined as long long, which Clang's
 // -pedantic reports as being a C++11 extension.
 #if defined __APPLE__ && YY_CPLUSPLUS < 201103L \
@@ -444,7 +436,7 @@ m4_define([b4_lhs_value],
 # -----------------------------
 # See README.
 m4_define([b4_rhs_data],
-[((yyGLRStackItem const *)yyvsp)@{YYFILL (b4_subtract([$2], [$1]))@}.getState()])
+[(static_cast<yyGLRStackItem const *>(yyvsp))@{YYFILL (b4_subtract([$2], [$1]))@}.getState()])
 
 
 # b4_rhs_value(RULE-LENGTH, POS, SYMBOL-NUM, [TYPE])
@@ -1262,20 +1254,20 @@ struct yyGLRStackItem {
 
   yyGLRState& getState() {
     YYDASSERT(isState());
-    return *(yyGLRState*)&raw_;
+    return *reinterpret_cast<yyGLRState*>(&raw_);
   }
   const yyGLRState& getState() const {
     YYDASSERT(isState());
-    return *(yyGLRState*)&raw_;
+    return *reinterpret_cast<const yyGLRState*>(&raw_);
   }
 
   yySemanticOption& getOption() {
     YYDASSERT(!isState());
-    return *(yySemanticOption*)&raw_;
+    return *reinterpret_cast<yySemanticOption*>(&raw_);
   }
   const yySemanticOption& getOption() const {
     YYDASSERT(!isState());
-    return *(yySemanticOption*)&raw_;
+    return *reinterpret_cast<const yySemanticOption*>(&raw_);
   }
   bool isState() const {
     return isState_;
-- 
2.28.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.