]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - misc/tools/progs-analyzer.pl
Move libraries into subdirectories for better selectivity when building.
[xonotic/xonotic.git] / misc / tools / progs-analyzer.pl
index e8d7a21260382821c053077e18343beee5f151c2..d0df1c420676ef6b57ed32e65b061847a3d3c83d 100755 (executable)
@@ -1227,12 +1227,12 @@ sub parse_progs($)
                my $file = $p{getstring}->($f->{s_file});
                die "Out of range first_statement in function $_ (name: \"$name\", file: \"$file\", first statement: $f->{first_statement})"
                        if $f->{first_statement} >= @{$p{statements}};
-               die "Out of range parm_start in function $_ (name: \"$name\", file: \"$file\", first statement: $f->{first_statement})"
-                       if $f->{parm_start} < 0 || $f->{parm_start} >= @{$p{globals}};
-               die "Out of range locals in function $_ (name: \"$name\", file: \"$file\", first statement: $f->{first_statement})"
-                       if $f->{locals} < 0 || $f->{parm_start} + $f->{locals} >= @{$p{globals}};
                if($f->{first_statement} >= 0)
                {
+                       die "Out of range parm_start in function $_ (name: \"$name\", file: \"$file\", first statement: $f->{first_statement})"
+                               if $f->{parm_start} < 0 || $f->{parm_start} >= @{$p{globals}};
+                       die "Out of range locals in function $_ (name: \"$name\", file: \"$file\", first statement: $f->{first_statement})"
+                               if $f->{locals} < 0 || $f->{parm_start} + $f->{locals} > @{$p{globals}};
                        die "Out of range numparms $f->{numparms} in function $_ (name: \"$name\", file: \"$file\", first statement: $f->{first_statement})"
                                if $f->{numparms} < 0 || $f->{numparms} > 8;
                        my $totalparms = 0;
@@ -1243,7 +1243,9 @@ sub parse_progs($)
                                $totalparms += $f->{parm_size}[$_];
                        }
                        die "Out of range parms in function $_ (name: \"$name\", file: \"$file\", first statement: $f->{first_statement})"
-                               if $f->{locals} < 0 || $f->{parm_start} + $totalparms >= @{$p{globals}};
+                               if $f->{parm_start} + $totalparms > @{$p{globals}};
+                       die "More parms than locals in function $_ (name: \"$name\", file: \"$file\", first statement: $f->{first_statement})"
+                               if $totalparms > $f->{locals};
                }
        }