This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix some recent compiler warnings
authorDavid Mitchell <davem@iabyn.com>
Fri, 17 Oct 2014 11:16:40 +0000 (12:16 +0100)
committerDavid Mitchell <davem@iabyn.com>
Fri, 17 Oct 2014 11:23:08 +0000 (12:23 +0100)
Currently DBVARMG_SINGLE is deffed to 0, so

    mg->mg_private >= DBVARMG_SINGLE

gives an 'always true' warning.

sv_magicext's last arg is supposed to to be I32, but ARGTARG is a U32 or
U64.

mg.c
pp.c

diff --git a/mg.c b/mg.c
index bf98374..4524d01 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -3464,7 +3464,10 @@ int
 Perl_magic_setdebugvar(pTHX_ SV *sv, MAGIC *mg) {
     PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR;
 
-    assert(mg->mg_private >= DBVARMG_SINGLE && mg->mg_private < DBVARMG_COUNT);
+#if DBVARMG_SINGLE != 0
+    assert(mg->mg_private >= DBVARMG_SINGLE);
+#endif
+    assert(mg->mg_private < DBVARMG_COUNT);
 
     PL_DBcontrol[mg->mg_private] = SvIV_nomg(sv);
 
@@ -3475,7 +3478,10 @@ int
 Perl_magic_getdebugvar(pTHX_ SV *sv, MAGIC *mg) {
     PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR;
 
-    assert(mg->mg_private >= DBVARMG_SINGLE && mg->mg_private < DBVARMG_COUNT);
+#if DBVARMG_SINGLE != 0
+    assert(mg->mg_private >= DBVARMG_SINGLE);
+#endif
+    assert(mg->mg_private < DBVARMG_COUNT);
     sv_setiv(sv, PL_DBcontrol[mg->mg_private]);
 
     return 0;
diff --git a/pp.c b/pp.c
index 25e3ac4..67dc770 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -6288,7 +6288,7 @@ PP(pp_lvref)
     SV * const arg = PL_op->op_flags & OPf_STACKED ? POPs : NULL;
     MAGIC * const mg = sv_magicext(ret, arg, PERL_MAGIC_lvref,
                                   &PL_vtbl_lvref, (char *)elem,
-                                  elem ? HEf_SVKEY : ARGTARG);
+                                  elem ? HEf_SVKEY : (I32)ARGTARG);
     mg->mg_private = PL_op->op_private;
     if (PL_op->op_private & OPpLVREF_ITER)
        mg->mg_flags |= MGf_PERSIST;