Perl_sv_2iv_flags(), Perl_sv_2uv_flags, Perl_sv_2nv and
Nicholas Clark [Mon, 11 Feb 2008 23:04:12 +0000 (23:04 +0000)]
Perl_sv_2pv_flags() all return 0/0/0.0/"" without warning given a
NULL SV pointer so they ought to be marked as NULLOK in embed.fnc.

p4raw-id: //depot/perl@33285

embed.fnc
proto.h

index 5b3bf1d..3c1caab 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -812,18 +812,18 @@ Apd       |IO*    |sv_2io         |NN SV* sv
 s      |bool   |glob_2number   |NN GV* const gv
 s      |char*  |glob_2pv       |NN GV* const gv|NULLOK STRLEN * const len
 #endif
-Amb    |IV     |sv_2iv         |NN SV* sv
-Apd    |IV     |sv_2iv_flags   |NN SV *const sv|const I32 flags
+Amb    |IV     |sv_2iv         |NULLOK SV *sv
+Apd    |IV     |sv_2iv_flags   |NULLOK SV *const sv|const I32 flags
 Apd    |SV*    |sv_2mortal     |NULLOK SV* sv
-Apd    |NV     |sv_2nv         |NN SV *const sv
+Apd    |NV     |sv_2nv         |NULLOK SV *const sv
 pMd    |SV*    |sv_2num        |NN SV *const sv
-Amb    |char*  |sv_2pv         |NN SV* sv|NULLOK STRLEN* lp
-Apd    |char*  |sv_2pv_flags   |NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
+Amb    |char*  |sv_2pv         |NULLOK SV *sv|NULLOK STRLEN *lp
+Apd    |char*  |sv_2pv_flags   |NULLOK SV *const sv|NULLOK STRLEN *const lp|const I32 flags
 Apd    |char*  |sv_2pvutf8     |NN SV* sv|NULLOK STRLEN* lp
 Apd    |char*  |sv_2pvbyte     |NN SV *const sv|NULLOK STRLEN *const lp
 Ap     |char*  |sv_pvn_nomg    |NN SV* sv|NULLOK STRLEN* lp
-Amb    |UV     |sv_2uv         |NN SV* sv
-Apd    |UV     |sv_2uv_flags   |NN SV *const sv|const I32 flags
+Amb    |UV     |sv_2uv         |NULLOK SV *sv
+Apd    |UV     |sv_2uv_flags   |NULLOK SV *const sv|const I32 flags
 Apd    |IV     |sv_iv          |NN SV* sv
 Apd    |UV     |sv_uv          |NN SV* sv
 Apd    |NV     |sv_nv          |NN SV* sv
diff --git a/proto.h b/proto.h
index cb5e76a..2e71be8 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -2169,25 +2169,15 @@ STATIC char*    S_glob_2pv(pTHX_ GV* const gv, STRLEN * const len)
                        __attribute__nonnull__(pTHX_1);
 
 #endif
-/* PERL_CALLCONV IV    Perl_sv_2iv(pTHX_ SV* sv)
-                       __attribute__nonnull__(pTHX_1); */
-
-PERL_CALLCONV IV       Perl_sv_2iv_flags(pTHX_ SV *const sv, const I32 flags)
-                       __attribute__nonnull__(pTHX_1);
-
+/* PERL_CALLCONV IV    Perl_sv_2iv(pTHX_ SV *sv); */
+PERL_CALLCONV IV       Perl_sv_2iv_flags(pTHX_ SV *const sv, const I32 flags);
 PERL_CALLCONV SV*      Perl_sv_2mortal(pTHX_ SV* sv);
-PERL_CALLCONV NV       Perl_sv_2nv(pTHX_ SV *const sv)
-                       __attribute__nonnull__(pTHX_1);
-
+PERL_CALLCONV NV       Perl_sv_2nv(pTHX_ SV *const sv);
 PERL_CALLCONV SV*      Perl_sv_2num(pTHX_ SV *const sv)
                        __attribute__nonnull__(pTHX_1);
 
-/* PERL_CALLCONV char* Perl_sv_2pv(pTHX_ SV* sv, STRLEN* lp)
-                       __attribute__nonnull__(pTHX_1); */
-
-PERL_CALLCONV char*    Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
-                       __attribute__nonnull__(pTHX_1);
-
+/* PERL_CALLCONV char* Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp); */
+PERL_CALLCONV char*    Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags);
 PERL_CALLCONV char*    Perl_sv_2pvutf8(pTHX_ SV* sv, STRLEN* lp)
                        __attribute__nonnull__(pTHX_1);
 
@@ -2197,12 +2187,8 @@ PERL_CALLCONV char*      Perl_sv_2pvbyte(pTHX_ SV *const sv, STRLEN *const lp)
 PERL_CALLCONV char*    Perl_sv_pvn_nomg(pTHX_ SV* sv, STRLEN* lp)
                        __attribute__nonnull__(pTHX_1);
 
-/* PERL_CALLCONV UV    Perl_sv_2uv(pTHX_ SV* sv)
-                       __attribute__nonnull__(pTHX_1); */
-
-PERL_CALLCONV UV       Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags)
-                       __attribute__nonnull__(pTHX_1);
-
+/* PERL_CALLCONV UV    Perl_sv_2uv(pTHX_ SV *sv); */
+PERL_CALLCONV UV       Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags);
 PERL_CALLCONV IV       Perl_sv_iv(pTHX_ SV* sv)
                        __attribute__nonnull__(pTHX_1);