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(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(&raw_); } const yyGLRState& getState() const { YYDASSERT(isState()); - return *(yyGLRState*)&raw_; + return *reinterpret_cast(&raw_); } yySemanticOption& getOption() { YYDASSERT(!isState()); - return *(yySemanticOption*)&raw_; + return *reinterpret_cast(&raw_); } const yySemanticOption& getOption() const { YYDASSERT(!isState()); - return *(yySemanticOption*)&raw_; + return *reinterpret_cast(&raw_); } bool isState() const { return isState_;