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/;
|
||||
next;
|
||||
}
|
||||
$cpp = 1 if /^#.*ifdef.*cplusplus/;
|
||||
if (/^#.*ifdef.*cplusplus/) {
|
||||
$cpp = 1;
|
||||
next;
|
||||
}
|
||||
|
||||
s/{[^{}]*}//gs; # ignore {} blocks
|
||||
print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne "";
|
||||
@ -581,6 +584,7 @@ sub do_defs
|
||||
pop(@tag);
|
||||
} elsif (/^\#\s*else/) {
|
||||
my $tag_i = $#tag;
|
||||
die "$file unmatched else\n" if $tag_i < 0;
|
||||
while($tag[$tag_i] ne "-") {
|
||||
my $t=$tag[$tag_i];
|
||||
$tag{$t}= -$tag{$t};
|
||||
@ -599,6 +603,9 @@ sub do_defs
|
||||
push(@tag,"TRUE");
|
||||
$tag{"TRUE"}=-1;
|
||||
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+)/
|
||||
&& $symhacking && $tag{'TRUE'} != -1) {
|
||||
# This is for aliasing. When we find an alias,
|
||||
@ -875,6 +882,7 @@ sub do_defs
|
||||
}
|
||||
}
|
||||
close(IN);
|
||||
die "$file: Unmatched tags\n" if $#tag >= 0;
|
||||
|
||||
my $algs;
|
||||
my $plays;
|
||||
|
Loading…
x
Reference in New Issue
Block a user