From: Nicholas Clark Date: Sat, 29 Dec 2007 13:29:37 +0000 (+0000) Subject: die if multiple macros in regexp.h attempt to use the same flag bit. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=c8e4cf8b7082ad71ba42564a3d098566ed2a16ac;p=p5sagit%2Fp5-mst-13.2.git die if multiple macros in regexp.h attempt to use the same flag bit. p4raw-id: //depot/perl@32762 --- diff --git a/regcomp.pl b/regcomp.pl index 17472cc..defbb5f 100644 --- a/regcomp.pl +++ b/regcomp.pl @@ -197,11 +197,17 @@ EOP open my $fh,"<","regexp.h" or die "Can't read regexp.h: $!"; my %rxfv; -my $val; +my $val = 0; +my %reverse; while (<$fh>) { if (/#define\s+(RXf_\w+)\s+(0x[A-F\d]+)/i) { - $rxfv{$1}= eval $2; - $val|=$rxfv{$1}; + my $newval = eval $2; + if($val & $newval) { + die sprintf "Both $1 and $reverse{$newval} use %08X", $newval; + } + $val|=$newval; + $rxfv{$1}= $newval; + $reverse{$newval} = $1; } } my %vrxf=reverse %rxfv;