Change 20606 by [EMAIL PROTECTED] on 2003/08/10 20:43:47
Integrate:
[ 20604]
Clarify the format checking instructions.
[ 20605]
gcc -ansi -pedantic cleanup; and a seemingly forgotten
sv_placeholder hunk.
Affected files ...
... //depot/maint-5.8/perl/Porting/pumpkin.pod#5 integrate
... //depot/maint-5.8/perl/perl.h#47 integrate
... //depot/maint-5.8/perl/sv.h#17 integrate
Differences ...
==== //depot/maint-5.8/perl/Porting/pumpkin.pod#5 (text) ====
Index: perl/Porting/pumpkin.pod
--- perl/Porting/pumpkin.pod#4~19400~ Sun May 4 01:29:43 2003
+++ perl/Porting/pumpkin.pod Sun Aug 10 13:43:47 2003
@@ -733,11 +733,13 @@
=item CHECK_FORMAT
-To test the correct use of printf-style arguments, C<Configure> with
-S<-Dccflags='-DCHECK_FORMAT -Wformat'> and run C<make>. The compiler
-will produce warning of incorrect use of format arguments. CHECK_FORMAT
-changes perl-defined formats to common formats, so DO NOT USE the executable
-produced by this process.
+If you have gcc, you can test the correct use of printf-style
+arguments. Run C<Configure> with S<-Dccflags='-DCHECK_FORMAT
+-Wformat'> (and S<-Dcc=gcc>, if you are not on a system where C<cc>
+is C<gcc>) and run C<make>. The compiler will produce warnings of
+incorrect use of format arguments. CHECK_FORMAT changes perl-defined
+formats to common formats, so DO NOT USE the executable produced by
+this process.
A more accurate approach is the following commands:
==== //depot/maint-5.8/perl/perl.h#47 (text) ====
Index: perl/perl.h
--- perl/perl.h#46~20493~ Tue Aug 5 01:43:49 2003
+++ perl/perl.h Sun Aug 10 13:43:47 2003
@@ -225,6 +225,10 @@
# endif
#endif
+#if defined(__STRICT_ANSI__) && defined(PERL_GCC_PEDANTIC)
+# define PERL_GCC_BRACE_GROUPS_FORBIDDEN
+#endif
+
/*
* STMT_START { statements; } STMT_END;
* can be used as a single statement, as in
@@ -233,7 +237,7 @@
* Trying to select a version that gives no warnings...
*/
#if !(defined(STMT_START) && defined(STMT_END))
-# if defined(__GNUC__) && !defined(__STRICT_ANSI__) && !defined(PERL_GCC_PEDANTIC) &&
!defined(__cplusplus)
+# if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) &&
!defined(__cplusplus)
# define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
# define STMT_END )
# else
==== //depot/maint-5.8/perl/sv.h#17 (text) ====
Index: perl/sv.h
--- perl/sv.h#16~19400~ Sun May 4 01:29:43 2003
+++ perl/sv.h Sun Aug 10 13:43:47 2003
@@ -550,7 +550,7 @@
#define SvNIOK_off(sv) (SvFLAGS(sv) &= ~(SVf_IOK|SVf_NOK| \
SVp_IOK|SVp_NOK|SVf_IVisUV))
-#ifdef __GNUC__
+#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
#define assert_not_ROK(sv) ({assert(!SvROK(sv) || !SvRV(sv))}),
#else
#define assert_not_ROK(sv)
@@ -1020,7 +1020,7 @@
#define SvPVutf8x_force(sv, lp) sv_pvutf8n_force(sv, &lp)
#define SvPVbytex_force(sv, lp) sv_pvbyten_force(sv, &lp)
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__) && !defined(PERL_GCC_PEDANTIC)
+#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
# define SvIVx(sv) ({SV *nsv = (SV*)(sv); SvIV(nsv); })
# define SvUVx(sv) ({SV *nsv = (SV*)(sv); SvUV(nsv); })
@@ -1229,7 +1229,7 @@
#define SvPEEK(sv) ""
#endif
-#define SvIMMORTAL(sv) ((sv)==&PL_sv_undef || (sv)==&PL_sv_yes || (sv)==&PL_sv_no)
+#define SvIMMORTAL(sv) ((sv)==&PL_sv_undef || (sv)==&PL_sv_yes || (sv)==&PL_sv_no ||
(sv)==&PL_sv_placeholder)
#define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no)
End of Patch.