[v3,08/12] tools/ocaml: abi-check: Cope with multiple conversions of same type
diff mbox series

Message ID 20190910120207.10358-9-ian.jackson@eu.citrix.com
State New
Headers show
Series
  • ocaml abi fixes
Related show

Commit Message

Ian Jackson Sept. 10, 2019, 12:02 p.m. UTC
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 tools/ocaml/libs/xc/abi-check | 5 +++++
 1 file changed, 5 insertions(+)

Patch
diff mbox series

diff --git a/tools/ocaml/libs/xc/abi-check b/tools/ocaml/libs/xc/abi-check
index 9450676429..abcd6ce6f1 100755
--- a/tools/ocaml/libs/xc/abi-check
+++ b/tools/ocaml/libs/xc/abi-check
@@ -27,6 +27,8 @@  our $ei;
 # followed by anotations of the following form:
 #   /* ! OType OPrefix Mangle */
 #   /* ! CPrefix CFinal CFinalHow */
+# or, for subsequent invocations for the same OType, just
+#   /* ! OType */
 #
 # The function definitions use /* ! */ which simply skips that instance.
 while (<C_FILE>) {
@@ -42,6 +44,9 @@  while (<C_FILE>) {
         my @vals = split /\s+/, $1;
         if ($cline == 1 && !@vals) {
             $cline = -1;
+        } elsif ($cline == 1 && @vals == 1) {
+            my ($otype) = @vals;
+            die "reference to undefined OType $otype" unless $enums{$otype};
         } elsif ($cline == 1 && @vals == 3) {
             $ei->{$_} = shift @vals foreach qw(OType OPrefix Mangle);
         } elsif ($cline == 2 && @vals == 3) {