diff --git a/tools/ocaml/libs/xc/abi-check b/tools/ocaml/libs/xc/abi-check index abcd6ce6f1..d532f37271 100755 --- a/tools/ocaml/libs/xc/abi-check +++ b/tools/ocaml/libs/xc/abi-check @@ -47,6 +47,7 @@ while () { } elsif ($cline == 1 && @vals == 1) { my ($otype) = @vals; die "reference to undefined OType $otype" unless $enums{$otype}; + $cline = -1; } elsif ($cline == 1 && @vals == 3) { $ei->{$_} = shift @vals foreach qw(OType OPrefix Mangle); } elsif ($cline == 2 && @vals == 3) { @@ -70,7 +71,7 @@ $ei = undef; my $bitnum = 0; while () { if (!$ei) { - if (m{^type \s+ (\w+) \s* \= \s* $/}x && $enums{$1}) { + if (m{^type \s+ (\w+) \s* \= \s* $}x && $enums{$1}) { print "// found ocaml type $1 at $o:$.\n" or die $!; $ei = $enums{$1}; $cval = ''; @@ -96,6 +97,7 @@ while () { } else { die Dumper($ei)." ?"; } + $ei->{Checked} = 1; $ei = undef; } elsif (!m{\S}) { } else { @@ -104,4 +106,9 @@ while () { } } +foreach $ei (values %enums) { + next if $ei->{Checked}; + die "did not find ocaml type definition for $ei->{OType} in $o"; +} + close STDOUT or die $!;