Fix a mkdef.pl warning
mkdef.pl was issuing the following error: Use of uninitialized value within %tag in numeric eq (==) at util/mkdef.pl line 560, <IN> line 92 This was because it was treating a __cplusplus "#ifdef" check as a "tag" but then skipping over the corresponding "#endif". Therefore after processing a file it still had "left over" tags from processing the previous file. It was also getting confused by "#if" checks that didn't match is pre-defined styles. Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
parent
0f2d3e4e4e
commit
d9706f1964
@ -494,7 +494,10 @@ sub do_defs
|
|||||||
$cpp-- if /^#\s*endif/;
|
$cpp-- if /^#\s*endif/;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
$cpp = 1 if /^#.*ifdef.*cplusplus/;
|
if (/^#.*ifdef.*cplusplus/) {
|
||||||
|
$cpp = 1;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
s/{[^{}]*}//gs; # ignore {} blocks
|
s/{[^{}]*}//gs; # ignore {} blocks
|
||||||
print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne "";
|
print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne "";
|
||||||
@ -581,6 +584,7 @@ sub do_defs
|
|||||||
pop(@tag);
|
pop(@tag);
|
||||||
} elsif (/^\#\s*else/) {
|
} elsif (/^\#\s*else/) {
|
||||||
my $tag_i = $#tag;
|
my $tag_i = $#tag;
|
||||||
|
die "$file unmatched else\n" if $tag_i < 0;
|
||||||
while($tag[$tag_i] ne "-") {
|
while($tag[$tag_i] ne "-") {
|
||||||
my $t=$tag[$tag_i];
|
my $t=$tag[$tag_i];
|
||||||
$tag{$t}= -$tag{$t};
|
$tag{$t}= -$tag{$t};
|
||||||
@ -599,6 +603,9 @@ sub do_defs
|
|||||||
push(@tag,"TRUE");
|
push(@tag,"TRUE");
|
||||||
$tag{"TRUE"}=-1;
|
$tag{"TRUE"}=-1;
|
||||||
print STDERR "DEBUG: $file: found 0\n" if $debug;
|
print STDERR "DEBUG: $file: found 0\n" if $debug;
|
||||||
|
} elsif (/^\#\s*if\s+/) {
|
||||||
|
#Some other unrecognized "if" style
|
||||||
|
push(@tag,"-");
|
||||||
} elsif (/^\#\s*define\s+(\w+)\s+(\w+)/
|
} elsif (/^\#\s*define\s+(\w+)\s+(\w+)/
|
||||||
&& $symhacking && $tag{'TRUE'} != -1) {
|
&& $symhacking && $tag{'TRUE'} != -1) {
|
||||||
# This is for aliasing. When we find an alias,
|
# This is for aliasing. When we find an alias,
|
||||||
@ -875,6 +882,7 @@ sub do_defs
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
close(IN);
|
close(IN);
|
||||||
|
die "$file: Unmatched tags\n" if $#tag >= 0;
|
||||||
|
|
||||||
my $algs;
|
my $algs;
|
||||||
my $plays;
|
my $plays;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user