| line | % | coverage | branch |
| 19 | 100 | T | F | unless $$args{'filename'} |
| 40 | 100 | T | F | $args{'except'} ? : |
| 42 | 100 | T | F | defined $args{'typemap'} ? : |
| 100 | T | F | ref $args{'typemap'} ? : |
| 49 | 50 | T | F | if ($^O eq 'VMS') |
| 79 | 100 | T | F | if ($data{'linenumbers'}) |
| 80 | 100 | T | F | if (not ref $data{'output'}) { } |
| 85 | 100 | T | F | unless $data{'cfile'} =~ s/\.xs$/$data{'csuffix'}/i |
| 107 | 100 | T | F | unless -r $typemap |
| 118 | 100 | T | F | unless -f $typemap |
| 120 | 100 | T | F | unless (-T $typemap) |
| 124 | 50 | T | F | unless open my $TYPEMAP, '<', $typemap |
| 132 | 100 | T | F | if /^\s*#/ |
| 133 | 100 | T | F | if (/^INPUT\s*$/) |
| 136 | 100 | T | F | if (/^OUTPUT\s*$/) |
| 139 | 100 | T | F | if (/^TYPEMAP\s*$/) |
| 142 | 100 | T | F | if ($mode eq 'Typemap') { } |
| 100 | T | F | elsif (/^\s/) { } |
| 100 | T | F | elsif ($mode eq 'Input') { } |
| 150 | 100 | T | F | if /^\s*$/ |
| 151 | 100 | T | F | unless my($type, $kind, $proto) = /^\s*(.*?\S)\s+(\S+)\s*($$self{'proto_re'}*)\s*$/ |
| 158 | 50 | T | F | unless $proto |
| 160 | 50 | T | F | unless $self->ValidProtoString($proto) |
| 178 | 50 | T | F | unless close $TYPEMAP |
| 223 | 100 | T | F | if $t |
| 269 | 100 | T | F | if $$self{'linenumbers'} |
| 280 | 50 | T | F | unless open $IN, '<', $$self{'base'} |
| 284 | 100 | T | F | if (/^=/) |
| 287 | 100 | T | F | if (/^=cut\s*$/) |
| 303 | 100 | T | F | if $$self{'linenumbers'} |
| 312 | 0 | T | F | unless $$self{'lastline'} |
| 315 | 100 | T | F | if ($$self{'Package'}, $$self{'Prefix'}) = /^MODULE\s*=\s*[\w:]+(?:\s+PACKAGE\s*=\s*([\w:]+))?(?:\s+PREFIX\s*=\s*(\S+))?\s*$/ |
| 320 | 100 | T | F | unless (defined $_) |
| 330 | 100 | T | F | if $$self{'linenumbers'} |
| 386 | 100 | T | F | if $$self{'linenumbers'} |
| 400 | 100 | T | F | if (not ref $$self{'output'}) |
| 402 | 50 | T | F | unless open my $fh_out, '>', $$self{'output'} |
| 408 | 100 | T | F | if ($$self{'linenumbers'}) { } |
| 409 | 100 | T | F | if ($$self{'outfile'}) { } |
| 414 | 100 | T | F | unless $$self{'cfile'} =~ s/\.xs$/$$self{'csuffix'}/i |
| 450 | 100 | T | F | unless $l =~ /^\#\s*((if)(?:n?def)?|elsif|else|endif)\b/ |
| 452 | 50 | T | F | if ($statement eq 'if') { } |
| 461 | 0 | T | F | if $$self{'XSStack'}[-1]{'type'} ne 'if' |
| 463 | 0 | T | F | if ($$self{'XSStack'}[-1]{'varname'}) |
| 469 | 0 | T | F | if ($statement ne 'endif') { } |
| 488 | 100 | T | F | unless @{$$self{'line'};} |
| 489 | 100 | T | F | if ($$self{'XSS_work_idx'} and not $$self{'XSStack'}[$$self{'XSS_work_idx'}]{'varname'}) |
| 499 | 50 | T | F | if $$self{'line'}[0] =~ /^\s/ |
| 543 | 50 | T | F | unless @{$$self{'line'};} |
| 547 | 100 | T | F | if (($kwd, $thisline) = $self->check_keyword($thisline, 'BOOT') and $kwd) |
| 551 | 50 | T | F | if $$self{'linenumbers'} and not $$self{'line'}[0] =~ /^\s*#\s*line\b/ |
| 559 | 50 | T | F | if $$self{'ret_type'} =~ s/^NO_OUTPUT\s+// |
| 566 | 50 | T | F | if ($$self{'argtypes'} and $$self{'ret_type'} =~ s/^(.*?\w.*?)\s*\b(\w+\s*\(.*)/$1/s) |
| 573 | 100 | T | F | unless (@{$$self{'line'};}) |
| 578 | 50 | T | F | if $$self{'ret_type'} =~ s/^extern "C"\s+// |
| 579 | 50 | T | F | if $$self{'ret_type'} =~ s/^static\s+// |
| 582 | 50 | T | F | unless ($func_header =~ /^(?:([\w:]*)::)?(\w+)\s*\(\s*(.*?)\s*\)\s*(const)?\s*(;\s*)?$/s) |
| 590 | 50 | T | F | if $4 |
| 596 | 50 | T | F | if ($$self{'Is_VMS'}) |
| 603 | 50 | T | F | unless defined $$tmp{'functions'}{$$self{'Full_func_name'}} |
| 619 | 100 | T | F | if ($$self{'argtypes'} and $orig_args =~ /\S/) { } |
| 621 | 50 | T | F | if ($args =~ /^( (??{ $C_arg }) , )* $ /x) { } |
| 631 | 100 | T | F | unless defined $pre and length $pre |
| 635 | 50 | T | F | if ($$self{'inout'} and s/^(IN|IN_OUTLIST|OUTLIST|OUT|IN_OUT)\s+//) |
| 637 | 0 | T | F | if $type ne 'IN' |
| 642 | 100 | T | F | if ($name =~ /^length\( \s* (\w+) \s* \)\z/x) |
| 645 | 50 | T | F | if length $default |
| 648 | 50 | T | F | if (length $pre or $islength) |
| 649 | 100 | T | F | if ($islength) { } |
| 659 | 100 | T | F | if $out_type eq 'OUTLIST' or $islength |
| 661 | 50 | T | F | if $out_type =~ /OUTLIST$/ |
| 662 | 50 | T | F | if $out_type |
| 674 | 0 | T | F | if ($$self{'inout'} and $thisarg =~ s/^(IN|IN_OUTLIST|OUTLIST|IN_OUT|OUT)\s+//) |
| 676 | 0 | T | F | if $out_type eq 'IN' |
| 677 | 0 | T | F | if $out_type eq 'OUTLIST' |
| 681 | 0 | T | F | if $out_type =~ /OUTLIST$/ |
| 687 | 50 | T | F | if (defined $class) |
| 688 | 0 | T | F | defined $static || $$self{'func_name'} eq 'new' ? : |
| 697 | 100 | T | F | if ($args[$i] =~ s/\.\.\.//) |
| 699 | 50 | T | F | if ($args[$i] eq '' and $i == $#args) |
| 705 | 100 | T | F | if ($only_C_inlist{$args[$i]}) { } |
| 712 | 50 | T | F | if ($args[$i] =~ /^([^=]*[^\s=])\s*=\s*(.*)/s) |
| 724 | 50 | T | F | if defined $class |
| 727 | 50 | T | F | if $$self{'in_out'}{$fa} |
| 741 | 50 | T | F | if $EXPLICIT_RETURN |
| 743 | 50 | T | F | $externC ? : |
| 757 | 100 | T | F | if $ALIAS |
| 760 | 50 | T | F | if $INTERFACE |
| 763 | 100 | T | F | if ($ellipsis) { } |
| 50 | T | F | elsif ($min_args == $num_args) { } |
| 764 | 100 | T | F | $min_args ? : |
| 773 | 50 | T | F | if $$self{'except'} |
| 778 | 100 | T | F | if ($$self{'cond'}) { } |
| 796 | 100 | T | F | if $PPCODE |
| 800 | 100 | T | F | if $PPCODE |
| 817 | 100 | T | F | if (($kwd, $thisline) = $self->check_keyword($thisline, 'CASE') and $kwd) |
| 1028 | 50 | T | F | if ($thisline =~ /^(ENABLE|DISABLE)/) { } |
| 1030 | 100 | T | F | $status eq 'ENABLE' ? : |
| 1047 | 50 | T | F | if ($thisline =~ /^(ENABLE|DISABLE)/) { } |
| 1049 | 50 | T | F | $status eq 'ENABLE' ? : |
| 1063 | 50 | T | F | unless $Ver |
| 1067 | 50 | T | F | unless $Ver =~ /^\d+(\.\d*(_\d*)?)?/ |
| 1074 | 50 | T | F | unless $version >= $Ver |
| 1091 | 50 | T | F | unless exists $map{uc $thisline} |
| 1103 | 50 | T | F | unless $thisline |
| 1105 | 50 | T | F | if $thisline =~ /^\s*\|/ |
| 1108 | 50 | T | F | if $$self{'IncludedFiles'}{$thisline} |
| 1110 | 50 | T | F | unless $thisline =~ /\|\s*$/ |
| 1127 | 50 | T | F | unless open $IN, "$thisline" |
| 1142 | 100 | T | F | unless $thisline =~ /^\s*$/ |
| 1152 | 50 | T | F | if ($$self{'condnum'} and $$self{'cond'} eq '') |
| 1158 | 50 | T | F | $$self{'condnum'}++ ? : |
| 50 | T | F | $$self{'cond'} ? : |
| 1168 | 0 | T | F | if $thisline =~ /^\s*NOT_IMPLEMENTED_YET/ |
| 1169 | 0 | T | F | unless $thisline =~ /\S/ |
| 1175 | 0 | T | F | unless $thisline =~ /[=;+].*\S/ |
| 1178 | 0 | T | F | if ($thisline =~ s/^([^=]*)\blength\(\s*(\w+)\s*\)\s*$/$1 XSauto_length_of_$2=NO_INIT/x) |
| 1188 | 0 | T | F | if $thisline =~ s/\s*([=;+].*)$//s |
| 1192 | 0 | T | F | unless ($thisline =~ /^(.*?[^&\s])\s*(\&?)\s*\b(\w+)$/s) |
| 1205 | 0 | T | F | if ($$self{'arg_list'}{$var_name}++ or defined $$self{'argtype_seen'}{$var_name} and not $$self{'processing_arg_with_types'}) |
| 1220 | 0 | T | F | if ($var_type =~ / \( \s* \* \s* \) /x) { } |
| 1231 | 0 | T | F | if $$self{'var_num'} |
| 1233 | 0 | T | F | if $var_addr |
| 1234 | 0 | T | F | if ($var_init =~ /^[=;]\s*NO_INIT\s*;?\s*$/ or $$self{'in_out'}{$var_name} and $$self{'in_out'}{$var_name} =~ /^OUT/ and not $var_init =~ /\S/) { } |
| 0 | T | F | elsif ($var_init =~ /\S/) { } |
| 0 | T | F | elsif ($$self{'var_num'}) { } |
| 1239 | 0 | T | F | if ($$self{'name_printed'}) { } |
| 1265 | 0 | T | F | unless $$self{'hiertype'} |
| 1267 | 0 | T | F | if ($varname) |
| 1268 | 0 | T | F | if ($varname and $type =~ / \( \s* \* (?= \s* \) ) /gx) { } |
| 1280 | 0 | T | F | unless return $$self{'proto_letter'}{$type} |
| 1286 | 50 | T | F | if (@cpp) |
| 1289 | 0 | T | F | if ($cpp =~ /^\#\s*if/) { } |
| 0 | T | F | elsif (not $cpplevel) { } |
| 0 | T | F | elsif ($cpp =~ /^\#\s*endif/) { } |
| 1294 | 0 | T | F | if $$self{'XSStack'}[-1]{'type'} eq 'if' |
| 1302 | 0 | T | F | if $cpplevel |
| 1312 | 100 | T | F | unless @_ == 2 |
| 1315 | 100 | T | F | unless exists $$self{$arg} |
| 1320 | 100 | T | F | unless @_ == 3 |
| 1332 | 50 | T | F | if $string =~ /^$$self{'proto_re'}+$/o |
| 1381 | 50 | T | F | if (not defined $$self{'lastline'} and $$self{'XSStack'}[-1]{'type'} eq 'if') |
| 1398 | 100 | T | F | if (not defined $$self{'lastline'}) { } |
| 1399 | 100 | T | F | if ($$self{'XSStack'}[-1]{'type'} eq 'file') |
| 1404 | 50 | T | F | unless $isPipe |
| 1422 | 50 | T | F | if ($isPipe and $?) |
| 1440 | 100 | T | F | if ($$self{'lastline'} =~ /^MODULE\s*=\s*([\w:]+)(?:\s+PACKAGE\s*=\s*([\w:]+))?(?:\s+PREFIX\s*=\s*(\S+))?\s*$/) |
| 1443 | 100 | T | F | defined $2 ? : |
| 1444 | 100 | T | F | defined $3 ? : |
| 1449 | 100 | T | F | if $$self{'Packprefix'} ne '' |
| 1457 | 100 | T | F | if $$self{'lastline'} =~ /^=cut\s*$/ |
| 1460 | 50 | T | F | unless $$self{'lastline'} |
| 1472 | 100 | T | F | if (not $$self{'lastline'} =~ /^\s*#/ or $$self{'lastline'} =~ /^#[ \t]*(?:(?:if|ifn?def|elif|else|endif|define|undef|pragma|error|warning|line\s+\d+|ident)\b|(?:include(?:_next)?|import)\s*["<].*[>"])/) |
| 1474 | 100 | T | F | if $$self{'lastline'} =~ /^\S/ and @line and $line[-1] eq '' |
| 1480 | 100 | T | F | unless defined($$self{'lastline'} = <$IN>) |
| 1530 | 50 | T | F | if defined $_[0] |
| 1540 | 100 | T | F | if -e $file |
| 1633 | 0 | T | F | unless (defined $$self{'type_kind'}{$type}) |
| 1642 | 0 | T | F | if $$self{'func_name'} =~ /DESTROY$/ |
| 1643 | 0 | T | F | if ($tk eq 'T_PV' and exists $$self{'lengthof'}{$$self{'var'}}) |
| 1644 | 0 | T | F | unless $$self{'name_printed'} |
| 1646 | 0 | T | F | if defined $$self{'defaults'}{$$self{'var'}} |
| 1650 | 0 | T | F | unless $$self{'hiertype'} |
| 1653 | 0 | T | F | unless (defined $$self{'input_expr'}{$tk}) |
| 1659 | 0 | T | F | if ($$self{'expr'} =~ /DO_ARRAY_ELEM/) |
| 1662 | 0 | T | F | unless (defined $$self{'type_kind'}{$$self{'subtype'}}) |
| 1669 | 0 | T | F | unless (defined $$self{'input_expr'}{$$self{'type_kind'}}{$$self{'subtype'}}) |
| 1683 | 0 | T | F | if ($$self{'expr'} =~ m[/\*.*scope.*\*/]i) |
| 1686 | 0 | T | F | if (defined $$self{'defaults'}{$$self{'var'}}) { } |
| 0 | T | F | elsif ($$self{'ScopeThisXSUB'} or not $$self{'expr'} =~ /^\s*\$self->{var} =/) { } |
| 1689 | 0 | T | F | if ($$self{'name_printed'}) { } |
| 1694 | 0 | T | F | if $@ |
| 1696 | 0 | T | F | if ($$self{'defaults'}{$$self{'var'}} eq 'NO_INIT') { } |
| 1702 | 0 | T | F | if $@ |
| 1705 | 0 | T | F | if ($$self{'name_printed'}) { } |
| 1710 | 0 | T | F | if $@ |
| 1713 | 0 | T | F | if $@ |
| 1716 | 0 | T | F | if ($$self{'name_printed'}) |
| 1720 | 0 | T | F | if $@ |
| 1731 | 0 | T | F | if ($init =~ /^=/) { } |
| 1732 | 0 | T | F | if ($$self{'name_printed'}) { } |
| 1738 | 0 | T | F | if $@ |
| 1741 | 0 | T | F | if ($init =~ s/^\+// and $$self{'var_num'}) { } |
| 0 | T | F | elsif ($$self{'name_printed'}) { } |
| 1751 | 0 | T | F | if $@ |
| 1755 | 0 | T | F | if $@ |