From c8e4cf8b7082ad71ba42564a3d098566ed2a16ac Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Sat, 29 Dec 2007 13:29:37 +0000 Subject: die if multiple macros in regexp.h attempt to use the same flag bit. p4raw-id: //depot/perl@32762 --- regcomp.pl | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'regcomp.pl') diff --git a/regcomp.pl b/regcomp.pl index 17472cc811..defbb5f785 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; -- cgit v1.2.1