Why not replace '/*CONSTCOND*/ 0' with a non-constant expression that is guaranteed to be false, like 'rand() < 0'? Or if you don't want to modify the global random seed then define yyFalse() and yyTrue().
-- john On Wed, Apr 10, 2013 at 7:31 AM, Akim Demaille <[email protected]> wrote: > > Le 8 avr. 2013 à 21:14, victor khomenko <[email protected]> > a écrit : > > > Dear Akim, > > Hi Victor, > > Thanks for the report. > > > c:\punf\picallib\parse_pi.cpp(1202) : warning C4365: 'return' : > conversion from 'int' to 'size_t', signed/unsigned mismatch > > This is the second return. > > > static YYSIZE_T > > yytnamerr (char *yyres, const char *yystr) > > { > > […] > > if (! yyres) > > return yystrlen (yystr); > > > > return yystpcpy (yyres, yystr) - yyres; > > } > > > > c:\punf\picallib\parse_pi.cpp(1657) : warning C4242: '=' : conversion > from 'int' to 'yytype_int16', possible loss of data > > This is the assignment: > > yysetstate: > *yyssp = yystate; > > because > > yytype_int16 *yyssp; > int yystate; > > it would make sense to be more consistent here. > > > c:\punf\picallib\parse_pi.cpp(1662) : warning C4365: 'initializing' : > conversion from 'int' to 'size_t', signed/unsigned mismatch > > YYSIZE_T yysize = yyssp - yyss + 1; > > > c:\punf\picallib\parse_pi.cpp(1704) : warning C4127: conditional > expression is constant > > This is because of the do {…} while (false) trick in the > macros: > > # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ > do \ > { \ > YYSIZE_T yynewbytes; \ > YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ > Stack = &yyptr->Stack_alloc; \ > yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ > yyptr += yynewbytes / sizeof (*yyptr); \ > } \ > while (YYID (0)) > > > > c:\punf\picallib\parse_pi.cpp(1705) : warning C4127: conditional > expression is constant > > > > c:\punf\picallib\parse_pi.cpp(1706) : warning C4127: conditional > expression is constant > > > > c:\punf\picallib\parse_pi.cpp(1773) : warning C4127: conditional > expression is constant > > > > c:\punf\picallib\parse_pi.cpp(1826) : warning C4127: conditional > expression is constant > > > > c:\punf\picallib\parse_pi.cpp(2292) : warning C4127: conditional > expression is constant > > > > c:\punf\picallib\parse_pi.cpp(2344) : warning C4127: conditional > expression is constant > > They are all alike. > > > > > c:\punf\picallib\parse_pi.cpp(854) : warning C4505: 'yy_location_print_' > : unreferenced local function has been removed > > > > c:\punf\picallib\parse_pi.cpp(2295) : warning C4702: unreachable code > > <parse_pi.y><parse_pi.cpp> > > yyerrorlab: > > /* Pacify compilers like GCC when the user code never invokes > YYERROR and the label yyerrorlab therefore never appears in user > code. */ > if (/*CONSTCOND*/ 0) > goto yyerrorlab; > > yyerror_range[1] = yylsp[1-yylen]; <======== this line > > Well, it's going to be painful to address these warning. > I don't think I will do that in 2.7.1, which I'd like to > release soon. They can be covered in 3.x. I'd like to > avoid #pragma if I can, so if you have ideas, please contribute! > > >
