silence some compiler warnings on VC6
authorDaniel Dragan <bulk88@hotmail.com>
Mon, 6 Oct 2014 08:04:05 +0000 (04:04 -0400)
committerFather Chrysostomos <sprout@cpan.org>
Mon, 6 Oct 2014 13:03:01 +0000 (06:03 -0700)
sv.c and toke.c have the following warnings on VC6 but not VC 2003
(and probably newer too), example
..\toke.c(3149) : warning C4761: integral size mismatch in argument;
conversion supplied

find_default_stash (commit 90aeefb473 )& gv_magicalize (commit 71c35c050e )
..\gv.c(1680) : warning C4028: formal parameter 6 different from declaration
..\gv.c(1783) : warning C4028: formal parameter 6 different from declaration

not all VC6 compiler warnings are fixed by this patch

embed.fnc
proto.h
sv.c
toke.c

index 320a476..758af03 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1875,10 +1875,10 @@ s  |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \
                      |const U32 is_utf8|const I32 add
 s  |bool|find_default_stash|NN HV **stash|NN const char *name \
                      |STRLEN len|const U32 is_utf8|const I32 add \
-                     |svtype sv_type
+                     |const svtype sv_type
 s  |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \
                      |STRLEN len|bool addmg \
-                     |svtype sv_type
+                     |const svtype sv_type
 s  |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type
 s  |bool|gv_is_in_main|NN const char *name|STRLEN len \
                       |const U32 is_utf8
diff --git a/proto.h b/proto.h
index 35e12d2..0a90a04 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -5933,7 +5933,7 @@ PERL_CALLCONV void        Perl_hv_kill_backrefs(pTHX_ HV *hv)
 
 #endif
 #if defined(PERL_IN_GV_C)
-STATIC bool    S_find_default_stash(pTHX_ HV **stash, const char *name, STRLEN len, const U32 is_utf8, const I32 add, svtype sv_type)
+STATIC bool    S_find_default_stash(pTHX_ HV **stash, const char *name, STRLEN len, const U32 is_utf8, const I32 add, const svtype sv_type)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_FIND_DEFAULT_STASH    \
@@ -5949,7 +5949,7 @@ STATIC bool       S_gv_is_in_main(pTHX_ const char *name, STRLEN len, const U32 is_utf
 #define PERL_ARGS_ASSERT_GV_IS_IN_MAIN \
        assert(name)
 
-STATIC bool    S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, bool addmg, svtype sv_type)
+STATIC bool    S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, bool addmg, const svtype sv_type)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_3);
diff --git a/sv.c b/sv.c
index 94849e9..a8f2e70 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -15344,7 +15344,7 @@ S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv,
        if (match && subscript_type == FUV_SUBSCRIPT_WITHIN)
            break;
 
-       return varname(gv, hash ? '%' : '@', obase->op_targ,
+       return varname(gv, (char)(hash ? '%' : '@'), obase->op_targ,
                                    keysv, index, subscript_type);
       }
 
@@ -15500,8 +15500,8 @@ S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv,
            if (match)
                break;
            return varname(gv,
-               (o->op_type == OP_PADAV || o->op_type == OP_RV2AV)
-               ? '@' : '%',
+               (char)((o->op_type == OP_PADAV || o->op_type == OP_RV2AV)
+               ? '@' : '%'),
                o->op_targ, NULL, 0, FUV_SUBSCRIPT_WITHIN);
        }
        NOT_REACHED; /* NOTREACHED */
diff --git a/toke.c b/toke.c
index 9efdd80..39e0b79 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -99,9 +99,9 @@ static const char* const ident_too_long = "Identifier too long";
 #define XFAKEBRACK 0x80
 
 #ifdef USE_UTF8_SCRIPTS
-#   define UTF (!IN_BYTES)
+#   define UTF cBOOL(!IN_BYTES)
 #else
-#   define UTF ((PL_linestr && DO_UTF8(PL_linestr)) || ( !(PL_parser->lex_flags & LEX_IGNORE_UTF8_HINTS) && (PL_hints & HINT_UTF8)))
+#   define UTF cBOOL((PL_linestr && DO_UTF8(PL_linestr)) || ( !(PL_parser->lex_flags & LEX_IGNORE_UTF8_HINTS) && (PL_hints & HINT_UTF8)))
 #endif
 
 /* The maximum number of characters preceding the unrecognized one to display */