bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Akim Demaille
Subject: [PATCH 2/9] glr2.cc: remove C-style casts
Date: Sat, 12 Sep 2020 16:51:48 +0200

From: Valentin Tolmer <valentin.tolmer@gmail.com>

* 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]