| line | % | coverage | branch |
| 40 | 50 | T | F | @_ % 2 ? : |
| 65 | 50 | T | F | if ($^O eq 'VMS') |
| 89 | 50 | T | F | $args{'except'} ? : |
| 94 | 100 | T | F | ref $args{'typemap'} ? : |
| 97 | 50 | T | F | unless $_ |
| 105 | 50 | T | F | unless open $FH, $args{'filename'} |
| 109 | 100 | T | F | if (not ref $args{'output'}) |
| 110 | 50 | T | F | unless open my $fh, "> $args{'output'}" |
| 124 | 50 | T | F | if ($WantLineNumbers) { } |
| 126 | 100 | T | F | if ($args{'outfile'}) { } |
| 130 | 50 | T | F | unless $cfile =~ s/\.xs$/$csuffix/i |
| 139 | 50 | T | F | unless -r $typemap |
| 145 | 100 | T | F | unless -f $typemap |
| 147 | 50 | T | F | unless -T $typemap |
| 149 | 50 | T | F | unless open TYPEMAP, $typemap |
| 155 | 50 | T | F | if /^\s*\t\t#/ |
| 157 | 100 | T | F | if (/^INPUT\s*$/) |
| 160 | 100 | T | F | if (/^OUTPUT\s*$/) |
| 163 | 100 | T | F | if (/^TYPEMAP\s*$/) |
| 166 | 100 | T | F | if ($mode eq 'Typemap') { } |
| 100 | T | F | elsif (/^\s/) { } |
| 100 | T | F | elsif ($mode eq 'Input') { } |
| 171 | 100 | T | F | if /^$/ or /^#/ |
| 172 | 50 | T | F | unless my($type, $kind, $proto) = /^\s*(.*?\S)\s+(\S+)\s*($proto_re*)\s*$/ |
| 177 | 50 | T | F | unless $proto |
| 178 | 50 | T | F | unless &ValidProtoString($proto) |
| 223 | 100 | T | F | if $t |
| 263 | 50 | T | F | if $WantLineNumbers |
| 268 | 50 | T | F | if (/^=/) |
| 271 | 0 | T | F | if (/^=cut\s*$/) |
| 286 | 0 | T | F | if $WantLineNumbers |
| 295 | 0 | T | F | unless $lastline |
| 298 | 100 | T | F | if ($Package, $Prefix) = /^MODULE\s*=\s*[\w:]+(?:\s+PACKAGE\s*=\s*([\w:]+))?(?:\s+PREFIX\s*=\s*(\S+))?\s*$/ |
| 303 | 50 | T | F | unless (defined $_) |
| 308 | 50 | T | F | if $WantLineNumbers |
| 358 | 50 | T | F | if $WantLineNumbers |
| 369 | 0 | T | F | unless $line =~ /^\#\s*((if)(?:n?def)?|elsif|else|endif)\b/ |
| 371 | 0 | T | F | if ($statement eq 'if') { } |
| 375 | 0 | T | F | if $XSStack[-1]{'type'} ne 'if' |
| 377 | 0 | T | F | if ($XSStack[-1]{'varname'}) |
| 383 | 0 | T | F | if ($statement ne 'endif') { } |
| 398 | 100 | T | F | unless @line |
| 400 | 50 | T | F | if ($XSS_work_idx and not $XSStack[$XSS_work_idx]{'varname'}) |
| 408 | 50 | T | F | if $line[0] =~ /^\s/ |
| 441 | 50 | T | F | unless @line |
| 445 | 50 | T | F | if (check_keyword('BOOT')) |
| 447 | 0 | T | F | if $WantLineNumbers and not $line[0] =~ /^\s*#\s*line\b/ |
| 456 | 50 | T | F | if $ret_type =~ s/^NO_OUTPUT\s+// |
| 459 | 50 | T | F | if $process_argtypes and $ret_type =~ s/^(.*?\w.*?)\s*\b(\w+\s*\(.*)/$1/s |
| 464 | 50 | T | F | unless @line |
| 467 | 50 | T | F | if $ret_type =~ s/^extern "C"\s+// |
| 468 | 50 | T | F | if $ret_type =~ s/^static\s+// |
| 471 | 50 | T | F | unless $func_header =~ /^(?:([\w:]*)::)?(\w+)\s*\(\s*(.*?)\s*\)\s*(const)?\s*(;\s*)?$/s |
| 475 | 50 | T | F | if $4 |
| 479 | 50 | T | F | if ($Is_VMS) |
| 485 | 50 | T | F | unless defined $$tmp{'functions'}{$Full_func_name} |
| 497 | 100 | T | F | if ($process_argtypes and $orig_args =~ /\S/) { } |
| 499 | 50 | T | F | if ($args =~ /^( (??{ $C_arg }) , )* $ /x) { } |
| 508 | 100 | T | F | unless defined $pre and length $pre |
| 511 | 50 | T | F | if ($process_inout and s/^(IN|IN_OUTLIST|OUTLIST|OUT|IN_OUT)\s+//) |
| 513 | 0 | T | F | if $type ne 'IN' |
| 518 | 50 | T | F | if ($name =~ /^length\( \s* (\w+) \s* \)\z/x) |
| 521 | 0 | T | F | if length $default |
| 524 | 50 | T | F | if (length $pre or $islength) |
| 525 | 50 | T | F | if ($islength) { } |
| 534 | 50 | T | F | if $out_type eq 'OUTLIST' or $islength |
| 535 | 50 | T | F | if $out_type =~ /OUTLIST$/ |
| 536 | 50 | T | F | if $out_type |
| 545 | 0 | T | F | if ($process_inout and s/^(IN|IN_OUTLIST|OUTLIST|IN_OUT|OUT)\s+//) |
| 547 | 0 | T | F | if $out_type eq 'IN' |
| 548 | 0 | T | F | if $out_type eq 'OUTLIST' |
| 549 | 0 | T | F | if $out_type =~ /OUTLIST$/ |
| 554 | 100 | T | F | if (defined $class) |
| 555 | 100 | T | F | defined $static || $func_name eq 'new' ? : |
| 565 | 100 | T | F | if ($args[$i] =~ s/\.\.\.//) |
| 567 | 50 | T | F | if ($args[$i] eq '' and $i == $#args) |
| 573 | 50 | T | F | if ($only_C_inlist{$args[$i]}) { } |
| 579 | 100 | T | F | if ($args[$i] =~ /^([^=]*[^\s=])\s*=\s*(.*)/s) |
| 591 | 100 | T | F | if defined $class |
| 594 | 50 | T | F | if $in_out{$_} |
| 608 | 50 | T | F | if $EXPLICIT_RETURN |
| 610 | 50 | T | F | $externC ? : |
| 624 | 100 | T | F | if $ALIAS |
| 627 | 100 | T | F | if $INTERFACE |
| 630 | 100 | T | F | if ($ellipsis) { } |
| 100 | T | F | elsif ($min_args == $num_args) { } |
| 631 | 100 | T | F | $min_args ? : |
| 638 | 50 | T | F | if $except |
| 643 | 100 | T | F | if ($cond) { } |
| 660 | 100 | T | F | if $PPCODE |
| 664 | 100 | T | F | if $PPCODE |
| 677 | 50 | T | F | if check_keyword('CASE') |
| 692 | 50 | T | F | if $ScopeThisXSUB |
| 697 | 100 | T | F | if (not $thisdone and defined $class) |
| 698 | 100 | T | F | if (defined $static or $func_name eq 'new') { } |
| 711 | 50 | T | F | if (/^\s*NOT_IMPLEMENTED_YET/) { } |
| 715 | 100 | T | F | if ($ret_type ne 'void') |
| 716 | 50 | T | F | if not $retvaldone |
| 720 | 100 | T | F | if $WantOptimize and $targetable{$type_kind{$ret_type}} |
| 724 | 100 | T | F | if (@fake_INPUT or @fake_INPUT_pre) |
| 734 | 100 | T | F | if (check_keyword('PPCODE')) { } |
| 100 | T | F | elsif (check_keyword('CODE')) { } |
| 100 | T | F | elsif (defined $class and $func_name eq 'DESTROY') { } |
| 736 | 50 | T | F | if @line |
| 737 | 50 | T | F | if $ScopeThisXSUB |
| 746 | 100 | T | F | if ($ret_type ne 'void') |
| 750 | 50 | T | F | if (defined $static) { } |
| 100 | T | F | elsif (defined $class) { } |
| 751 | 0 | T | F | if ($func_name eq 'new') { } |
| 757 | 50 | T | F | if ($func_name eq 'new') { } |
| 763 | 50 | T | F | if exists $args{'s'} |
| 765 | 100 | T | F | if $interface |
| 774 | 50 | T | F | if $RETVAL_no_return |
| 782 | 50 | T | F | if ($gotRETVAL and $RETVAL_code) { } |
| 100 | T | F | elsif ($gotRETVAL or $wantRETVAL) { } |
| 790 | 100 | T | F | if ($t and not $$t[1] and $$t[0] eq 'p') { } |
| 100 | T | F | elsif ($t) { } |
| 793 | 50 | T | F | if $@ |
| 800 | 50 | T | F | if $@ |
| 803 | 50 | T | F | unless defined $size |
| 805 | 50 | T | F | if $@ |
| 815 | 100 | T | F | if $ret_type ne 'void' |
| 818 | 50 | T | F | if $c and not $prepush_done |
| 819 | 50 | T | F | if $c |
| 826 | 50 | T | F | if $ScopeThisXSUB |
| 829 | 50 | T | F | if $ScopeThisXSUB and not $PPCODE |
| 837 | 50 | T | F | if $except |
| 843 | 50 | T | F | if (check_keyword('CASE')) |
| 844 | 0 | T | F | unless $condnum |
| 849 | 50 | T | F | if $_ eq "${END}:" |
| 850 | 0 | T | F | /^$BLOCK_re/o ? : |
| 853 | 50 | T | F | if $except |
| 858 | 100 | T | F | if ($xsreturn) { } |
| 859 | 50 | T | F | unless $PPCODE |
| 863 | 100 | T | F | unless $PPCODE |
| 877 | 100 | T | F | if ($ProtoThisXSUB) |
| 880 | 50 | T | F | if ($ProtoThisXSUB eq 2) { } |
| 50 | T | F | elsif ($ProtoThisXSUB eq 1) { } |
| 885 | 50 | T | F | if ($min_args < $num_args) |
| 889 | 50 | T | F | if $ellipsis |
| 901 | 100 | T | F | if (%XsubAliases) { } |
| 50 | T | F | elsif (@Attributes) { } |
| 100 | T | F | elsif ($interface) { } |
| 902 | 50 | T | F | unless defined $XsubAliases{$pname} |
| 909 | 50 | T | F | if $proto |
| 922 | 50 | T | F | unless $name =~ /::/ |
| 927 | 50 | T | F | if $proto |
| 938 | 50 | T | F | if ($Overload) |
| 982 | 50 | T | F | $] < 5.009 ? : |
| 986 | 50 | T | F | if $Full_func_name |
| 997 | 50 | T | F | if $WantVersionChk |
| 1002 | 100 | T | F | if defined $XsubAliases or defined $Interfaces |
| 1008 | 50 | T | F | if $Overload |
| 1022 | 100 | T | F | if defined $XsubAliases or defined $Interfaces |
| 1026 | 50 | T | F | if (@BootCode) |
| 1034 | 50 | T | F | if ($] >= 5.009) |
| 1047 | 50 | T | F | unless $ProtoUsed |
| 1052 | 50 | T | F | if tied *PSEUDO_STDOUT |
| 1073 | 100 | T | F | if -e $file |
| 1105 | 100 | T | F | if s/^(\s*)($_[0])\s*:\s*(?:#.*)?/$1/s |
| 1112 | 50 | T | F | if $WantLineNumbers and not /^\s*#\s*line\b/ and not /^#if XSubPPtmp/ |
| 1117 | 50 | T | F | if $WantLineNumbers |
| 1144 | 0 | T | F | if $condnum and $cond eq '' |
| 1148 | 0 | T | F | $condnum++ ? : |
| 0 | T | F | $cond ? : |
| 1154 | 50 | T | F | if /^\s*NOT_IMPLEMENTED_YET/ |
| 1155 | 100 | T | F | unless /\S/ |
| 1161 | 50 | T | F | unless /[=;+].*\S/ |
| 1164 | 50 | T | F | if (s/^([^=]*)\blength\(\s*(\w+)\s*\)\s*$/$1 XSauto_length_of_$2=NO_INIT/x) |
| 1173 | 50 | T | F | if s/\s*([=;+].*)$//s |
| 1177 | 50 | T | F | unless my($var_type, $var_addr, $var_name) = /^(.*?[^&\s])\s*(\&?)\s*\b(\w+)$/s |
| 1181 | 50 | T | F | if $arg_list{$var_name}++ or defined $argtype_seen{$var_name} and not $processing_arg_with_types |
| 1191 | 50 | T | F | if ($var_type =~ / \( \s* \* \s* \) /x) { } |
| 1201 | 50 | T | F | if $var_num |
| 1203 | 50 | T | F | if $var_addr |
| 1204 | 50 | T | F | if ($var_init =~ /^[=;]\s*NO_INIT\s*;?\s*$/ or $in_out{$var_name} and $in_out{$var_name} =~ /^OUT/ and not $var_init =~ /\S/) { } |
| 50 | T | F | elsif ($var_init =~ /\S/) { } |
| 50 | T | F | elsif ($var_num) { } |
| 1207 | 0 | T | F | if ($name_printed) { } |
| 1225 | 100 | T | F | unless /\S/ |
| 1226 | 50 | T | F | if (/^\s*SETMAGIC\s*:\s*(ENABLE|DISABLE)\s*/) |
| 1227 | 0 | T | F | $1 eq 'ENABLE' ? : |
| 1231 | 50 | T | F | if $outargs{$outarg}++ |
| 1233 | 50 | T | F | if (not $gotRETVAL and $outarg eq 'RETVAL') |
| 1239 | 0 | T | F | unless defined $args_match{$outarg} |
| 1241 | 0 | T | F | unless defined $var_types{$outarg} |
| 1244 | 0 | T | F | if ($outcode) { } |
| 1246 | 0 | T | F | if $DoSetMagic |
| 1250 | 0 | T | F | if exists $in_out{$outarg} and $in_out{$outarg} =~ /OUT$/ |
| 1266 | 0 | T | F | if ($in =~ /\s/) { } |
| 1315 | 100 | T | F | if not $alias =~ /::/ |
| 1318 | 50 | T | F | if defined $XsubAliases{$alias} |
| 1321 | 50 | T | F | if $XsubAliasValues{$value} |
| 1329 | 50 | T | F | if $line |
| 1336 | 0 | T | F | unless /\S/ |
| 1345 | 100 | T | F | unless /\S/ |
| 1347 | 50 | T | F | if $_ |
| 1354 | 0 | T | F | unless /\S/ |
| 1357 | 0 | T | F | unless $Overload |
| 1378 | 0 | T | F | unless exists $map{uc $_} |
| 1391 | 0 | T | F | unless $Ver |
| 1395 | 0 | T | F | unless $Ver =~ /^\d+(\.\d*)?/ |
| 1398 | 0 | T | F | unless $VERSION >= $Ver |
| 1410 | 0 | T | F | unless /^(ENABLE|DISABLE)/i |
| 1413 | 0 | T | F | if $1 eq 'ENABLE' |
| 1414 | 0 | T | F | if $1 eq 'DISABLE' |
| 1422 | 0 | T | F | if $proto_in_this_xsub++ |
| 1426 | 0 | T | F | unless /\S/ |
| 1429 | 0 | T | F | if ($_ eq 'DISABLE') { } |
| 0 | T | F | elsif ($_ eq 'ENABLE') { } |
| 1436 | 0 | T | F | unless ValidProtoString $_ |
| 1443 | 0 | T | F | unless $specified |
| 1451 | 0 | T | F | if $scope_in_this_xsub++ |
| 1455 | 0 | T | F | unless /\S/ |
| 1457 | 0 | T | F | if ($_ =~ /^DISABLE/i) { } |
| 0 | T | F | elsif ($_ =~ /^ENABLE/i) { } |
| 1474 | 50 | T | F | unless /^(ENABLE|DISABLE)/i |
| 1477 | 100 | T | F | if $1 eq 'ENABLE' |
| 1478 | 100 | T | F | if $1 eq 'DISABLE' |
| 1489 | 0 | T | F | unless $_ |
| 1492 | 0 | T | F | if /^\s*\|/ |
| 1496 | 0 | T | F | if $IncludedFiles{$_} |
| 1499 | 0 | T | F | unless /\|\s*$/ |
| 1516 | 0 | T | F | unless open $FH, "$_" |
| 1531 | 0 | T | F | unless /^\s*$/ |
| 1541 | 50 | T | F | unless $XSStack[-1]{'type'} eq 'file' |
| 1547 | 0 | T | F | unless $isPipe |
| 1563 | 0 | T | F | if ($isPipe and $?) |
| 1582 | 50 | T | F | if ($string =~ /^$proto_re+$/) |
| 1601 | 50 | T | F | unless $proto_letter{$type} |
| 1606 | 50 | T | F | if (@cpp) |
| 1609 | 0 | T | F | if ($cpp =~ /^\#\s*if/) { } |
| 0 | T | F | elsif (not $cpplevel) { } |
| 0 | T | F | elsif ($cpp =~ /^\#\s*endif/) { } |
| 1613 | 0 | T | F | if $XSStack[-1]{'type'} eq 'if' |
| 1620 | 0 | T | F | if $cpplevel |
| 1636 | 50 | T | F | if not defined $lastline and $XSStack[-1]{'type'} eq 'if' |
| 1640 | 100 | T | F | if not defined $lastline |
| 1642 | 100 | T | F | if ($lastline =~ /^MODULE\s*=\s*([\w:]+)(?:\s+PACKAGE\s*=\s*([\w:]+))?(?:\s+PREFIX\s*=\s*(\S+))?\s*$/) |
| 1645 | 50 | T | F | defined $2 ? : |
| 1646 | 100 | T | F | defined $3 ? : |
| 1651 | 50 | T | F | if $Packprefix ne '' |
| 1659 | 0 | T | F | if $lastline =~ /^=cut\s*$/ |
| 1661 | 0 | T | F | unless $lastline |
| 1666 | 50 | T | F | if (not $lastline =~ /^\s*#/ or $lastline =~ /^#[ \t]*(?:(?:if|ifn?def|elif|else|endif|define|undef|pragma|error|warning|line\s+\d+|ident)\b|(?:include(?:_next)?|import)\s*["<].*[>"])/) |
| 1674 | 100 | T | F | if $lastline =~ /^\S/ and @line and $line[-1] eq '' |
| 1680 | 100 | T | F | unless defined($lastline = <$FH>) |
| 1697 | 0 | T | F | if ($init =~ /^=/) { } |
| 1698 | 0 | T | F | if ($name_printed) { } |
| 1703 | 0 | T | F | if $@ |
| 1705 | 0 | T | F | if ($init =~ s/^\+// and $num) { } |
| 0 | T | F | elsif ($name_printed) { } |
| 1712 | 0 | T | F | if $@ |
| 1716 | 0 | T | F | if $@ |
| 1748 | 50 | T | F | unless defined $type_kind{$type} |
| 1754 | 100 | T | F | if $func_name =~ /DESTROY$/ |
| 1755 | 50 | T | F | if ($tk eq 'T_PV' and exists $lengthof{$var}) |
| 1756 | 0 | T | F | unless $name_printed |
| 1758 | 0 | T | F | if defined $defaults{$var} |
| 1762 | 50 | T | F | unless $hiertype |
| 1763 | 50 | T | F | unless defined $input_expr{$tk} |
| 1766 | 50 | T | F | if ($expr =~ /DO_ARRAY_ELEM/) |
| 1767 | 0 | T | F | unless defined $type_kind{$subtype} |
| 1769 | 0 | T | F | unless defined $input_expr{$type_kind{$subtype}} |
| 1780 | 50 | T | F | if ($expr =~ m[/\*.*scope.*\*/]i) |
| 1783 | 100 | T | F | if (defined $defaults{$var}) { } |
| 100 | T | F | elsif ($ScopeThisXSUB or not $expr =~ /^\s*\$var =/) { } |
| 1786 | 50 | T | F | if ($name_printed) { } |
| 1790 | 50 | T | F | if $@ |
| 1792 | 50 | T | F | if ($defaults{$var} eq 'NO_INIT') { } |
| 1797 | 50 | T | F | if $@ |
| 1799 | 50 | T | F | if ($name_printed) { } |
| 1803 | 50 | T | F | if $@ |
| 1806 | 50 | T | F | if $@ |
| 1808 | 50 | T | F | if $name_printed |
| 1811 | 50 | T | F | if $@ |
| 1822 | 50 | T | F | if ($type =~ /^array\(([^,]*),(.*)\)/) { } |
| 1825 | 0 | T | F | if $do_setmagic |
| 1827 | 50 | T | F | unless defined $type_kind{$type} |
| 1829 | 50 | T | F | unless defined $output_expr{$type_kind{$type}} |
| 1835 | 50 | T | F | if ($expr =~ /DO_ARRAY_ELEM/) { } |
| 50 | T | F | elsif ($var eq 'RETVAL') { } |
| 0 | T | F | elsif ($do_push) { } |
| 0 | T | F | elsif ($arg =~ /^ST\(\d+\)$/) { } |
| 1836 | 0 | T | F | unless defined $type_kind{$subtype} |
| 1838 | 0 | T | F | unless defined $output_expr{$type_kind{$subtype}} |
| 1847 | 0 | T | F | if $@ |
| 1848 | 0 | T | F | if $do_setmagic |
| 1850 | 50 | T | F | if ($expr =~ /^\t\$arg = new/) { } |
| 50 | T | F | elsif ($expr =~ /^\s*\$arg\s*=/) { } |
| 1854 | 0 | T | F | if $@ |
| 1856 | 0 | T | F | if $do_setmagic |
| 1861 | 0 | T | F | if $@ |
| 1863 | 0 | T | F | if $do_setmagic |
| 1871 | 50 | T | F | if $@ |
| 1878 | 0 | T | F | if $@ |
| 1879 | 0 | T | F | if $do_setmagic |
| 1882 | 0 | T | F | if $@ |
| 1883 | 0 | T | F | if $do_setmagic |
| 1892 | 50 | T | F | unless $hiertype |
| 1894 | 100 | T | F | if ($varname) |
| 1895 | 50 | T | F | if ($varname and $type =~ / \( \s* \* (?= \s* \) ) /gx) { } |