diff options
-rwxr-xr-x | Makefile.SH | 30 | ||||
-rw-r--r-- | XSUB.h | 21 | ||||
-rw-r--r-- | perl.h | 7 | ||||
-rw-r--r-- | pod/perlhacktips.pod | 8 | ||||
-rwxr-xr-x | regen/embed.pl | 17 |
5 files changed, 11 insertions, 72 deletions
diff --git a/Makefile.SH b/Makefile.SH index a094f8783c..10003fdac6 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -558,32 +558,6 @@ lintflags = \ -erroff=E_STATIC_UNUSED \ -erroff=E_TRUE_LOGICAL_EXPR -splintflags = \ - -I/usr/lib/gcc/i486-linux-gnu/4.0.2/include/ \ - -D__builtin_va_list=va_list \ - -Dsigjmp_buf=jmp_buf \ - -warnposix \ - \ - +boolint \ - +charintliteral \ - -fixedformalarray \ - -mustfreefresh \ - -nestedextern \ - -predboolint \ - -predboolothers \ - -preproc \ - -boolops \ - -shadow \ - -nullstate \ - +longintegral \ - +matchanyintegral \ - -type \ - \ - +line-len 999 \ - +weak - -splintfiles = $(c1) - .c$(OBJ_EXT): @echo `$(CCCMD)` $(PLDLFLAGS) $*.c @`$(CCCMD)` $(PLDLFLAGS) $*.c @@ -1426,10 +1400,6 @@ lint: $(c) rm -f *.ln lint $(lintflags) -DPERL_CORE -D_REENTRANT -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(c) -.PHONY: splint -splint: $(c) - splint $(splintflags) -DPERL_CORE -D_REENTRANT -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(splintfiles) - cscopeflags = -Rb # Recursive, build-only. .PHONY: cscope @@ -93,12 +93,7 @@ is a lexical C<$_> in scope. */ #ifndef PERL_UNUSED_ARG -# if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */ -# include <note.h> -# define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x)) -# else -# define PERL_UNUSED_ARG(x) ((void)x) -# endif +# define PERL_UNUSED_ARG(x) ((void)x) #endif #ifndef PERL_UNUSED_VAR # define PERL_UNUSED_VAR(x) ((void)x) @@ -164,12 +159,7 @@ is a lexical C<$_> in scope. #define dITEMS I32 items = (I32)(SP - MARK) -#if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */ -# define dXSARGS \ - NOTE(ARGUNUSED(cv)) \ - dSP; dAXMARK; dITEMS -#else -# define dXSARGS \ +#define dXSARGS \ dSP; dAXMARK; dITEMS /* These 3 macros are replacements for dXSARGS macro only in bootstrap. They factor out common code in every BOOT XSUB. Computation of vars mark @@ -177,19 +167,18 @@ is a lexical C<$_> in scope. optimized away since BOOT must return &PL_sv_yes by default from xsubpp. Note these macros are not drop in replacements for dXSARGS since they set PL_xsubfilename. */ -# define dXSBOOTARGSXSAPIVERCHK \ +#define dXSBOOTARGSXSAPIVERCHK \ I32 ax = XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \ SV **mark = PL_stack_base + ax; dSP; dITEMS -# define dXSBOOTARGSAPIVERCHK \ +#define dXSBOOTARGSAPIVERCHK \ I32 ax = XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \ SV **mark = PL_stack_base + ax; dSP; dITEMS /* dXSBOOTARGSNOVERCHK has no API in xsubpp to choose it so do #undef dXSBOOTARGSXSAPIVERCHK #define dXSBOOTARGSXSAPIVERCHK dXSBOOTARGSNOVERCHK */ -# define dXSBOOTARGSNOVERCHK \ +#define dXSBOOTARGSNOVERCHK \ I32 ax = XS_SETXSUBFN_POPMARK; \ SV **mark = PL_stack_base + ax; dSP; dITEMS -#endif #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \ ? PAD_SV(PL_op->op_targ) : sv_newmortal()) @@ -332,12 +332,7 @@ * or variables/arguments that are used only in certain configurations. */ #ifndef PERL_UNUSED_ARG -# if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */ -# include <note.h> -# define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x)) -# else -# define PERL_UNUSED_ARG(x) ((void)sizeof(x)) -# endif +# define PERL_UNUSED_ARG(x) ((void)sizeof(x)) #endif #ifndef PERL_UNUSED_VAR # define PERL_UNUSED_VAR(x) ((void)sizeof(x)) diff --git a/pod/perlhacktips.pod b/pod/perlhacktips.pod index 5aa0b63a04..8b3392d361 100644 --- a/pod/perlhacktips.pod +++ b/pod/perlhacktips.pod @@ -1037,18 +1037,14 @@ and looking at the resulting graph, what does it tell about the execution and data flows. As a matter of fact, this is exactly how C compilers know to give warnings about dubious code. -=head2 lint, splint +=head2 lint The good old C code quality inspector, C<lint>, is available in several platforms, but please be aware that there are several different implementations of it by different vendors, which means that the flags are not identical across different platforms. -There is a lint variant called C<splint> (Secure Programming Lint) -available from http://www.splint.org/ that should compile on any -Unix-like platform. - -There are C<lint> and <splint> targets in Makefile, but you may have to +There is a C<lint> target in Makefile, but you may have to diddle with the flags (see above). =head2 Coverity diff --git a/regen/embed.pl b/regen/embed.pl index f1b7449b0b..9b432ba825 100755 --- a/regen/embed.pl +++ b/regen/embed.pl @@ -30,7 +30,6 @@ BEGIN { require './regen/embed_lib.pl'; } -my $SPLINT = 0; # Turn true for experimental splint support http://www.splint.org my $unflagged_pointers; # @@ -95,13 +94,6 @@ my ($embed, $core, $ext, $api) = setup_embed(); warn "$plain_func: s flag is mutually exclusive from the i and p plags" if $flags =~ /s/ && $flags =~ /[ip]/; - my $splint_flags = ""; - if ( $SPLINT && !$commented_out ) { - $splint_flags .= '/*@noreturn@*/ ' if $never_returns; - if ($can_ignore && ($retval ne 'void') && ($retval !~ /\*/)) { - $retval .= " /*\@alt void\@*/"; - } - } if ($flags =~ /([si])/) { my $type; @@ -111,14 +103,14 @@ my ($embed, $core, $ext, $api) = setup_embed(); else { $type = $1 eq 's' ? "STATIC" : "PERL_STATIC_INLINE"; } - $retval = "$type $splint_flags$retval"; + $retval = "$type $retval"; } else { if ($never_returns) { - $retval = "PERL_CALLCONV_NO_RET $splint_flags$retval"; + $retval = "PERL_CALLCONV_NO_RET $retval"; } else { - $retval = "PERL_CALLCONV $splint_flags$retval"; + $retval = "PERL_CALLCONV $retval"; } } $func = full_name($plain_func, $flags); @@ -150,9 +142,6 @@ my ($embed, $core, $ext, $api) = setup_embed(); && ($temp_arg !~ /\w+\s+(\w+)(?:\[\d+\])?\s*$/) ) { warn "$func: $arg ($n) doesn't have a name\n"; } - if ( $SPLINT && $nullok && !$commented_out ) { - $arg = '/*@null@*/ ' . $arg; - } if (defined $1 && $nn && !($commented_out && !$binarycompat)) { push @names_of_nn, $1; } |