diff mbox series

[REPOST,v13,3/4] tools/ocaml: abi check: Cope with consecutive relevant enums

Message ID 20190918104718.3695-1-paul.durrant@citrix.com (mailing list archive)
State New, archived
Headers show
Series None | expand

Commit Message

Paul Durrant Sept. 18, 2019, 10:47 a.m. UTC
From: Ian Jackson <ian.jackson@eu.citrix.com>

If the end of one enum is the `type' line for the next enum, we would
not notice it.

Fix this by reordering the code, and getting rid of the else: now if
the "we are within an enum" branch decides that it's the end of the
enum, it unsets $ei and we then immediately process the line as a "not
within an enum" line - ie as the start of the next one.

Reported-by: Paul Durrant <paul.durrant@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Cc: Christian Lindig <christian.lindig@citrix.com>
Cc: David Scott <dave@recoil.org>

v13:
 - New in this version
---
 tools/ocaml/libs/xc/abi-check | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

Comments

Paul Durrant Sept. 23, 2019, 1:39 p.m. UTC | #1
Ping? I think this is the only remaining patch in this series that still needs an ack.

  Paul

> -----Original Message-----
> From: Paul Durrant <paul.durrant@citrix.com>
> Sent: 18 September 2019 11:47
> To: xen-devel@lists.xenproject.org
> Cc: Ian Jackson <Ian.Jackson@citrix.com>; Paul Durrant <Paul.Durrant@citrix.com>; Christian Lindig
> <christian.lindig@citrix.com>; David Scott <dave@recoil.org>
> Subject: [PATCH REPOST v13 3/4] tools/ocaml: abi check: Cope with consecutive relevant enums
> 
> From: Ian Jackson <ian.jackson@eu.citrix.com>
> 
> If the end of one enum is the `type' line for the next enum, we would
> not notice it.
> 
> Fix this by reordering the code, and getting rid of the else: now if
> the "we are within an enum" branch decides that it's the end of the
> enum, it unsets $ei and we then immediately process the line as a "not
> within an enum" line - ie as the start of the next one.
> 
> Reported-by: Paul Durrant <paul.durrant@citrix.com>
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
> Cc: Christian Lindig <christian.lindig@citrix.com>
> Cc: David Scott <dave@recoil.org>
> 
> v13:
>  - New in this version
> ---
>  tools/ocaml/libs/xc/abi-check | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/ocaml/libs/xc/abi-check b/tools/ocaml/libs/xc/abi-check
> index d532f37271..3cbdec582f 100755
> --- a/tools/ocaml/libs/xc/abi-check
> +++ b/tools/ocaml/libs/xc/abi-check
> @@ -70,14 +70,7 @@ my $cval;
>  $ei = undef;
>  my $bitnum = 0;
>  while (<OCAML_FILE>) {
> -    if (!$ei) {
> -        if (m{^type \s+ (\w+) \s* \= \s* $}x && $enums{$1}) {
> -            print "// found ocaml type $1 at $o:$.\n" or die $!;
> -            $ei = $enums{$1};
> -            $cval = '';
> -            $bitnum = 0;
> -        }
> -    } else {
> +    if ($ei) {
>          if (m{^\s+ \| \s* $ei->{OPrefix} (\w+) \s*$}x) {
>              $cval = $1;
>              if ($ei->{Mangle} eq 'lc') {
> @@ -104,6 +97,14 @@ while (<OCAML_FILE>) {
>              die "$_ ?";
>          }
>      }
> +    if (!$ei) {
> +        if (m{^type \s+ (\w+) \s* \= \s* $}x && $enums{$1}) {
> +            print "// found ocaml type $1 at $o:$.\n" or die $!;
> +            $ei = $enums{$1};
> +            $cval = '';
> +            $bitnum = 0;
> +        }
> +    }
>  }
> 
>  foreach $ei (values %enums) {
> --
> 2.20.1.2.gb21ebb671
Christian Lindig Sept. 23, 2019, 1:43 p.m. UTC | #2
> On 23 Sep 2019, at 14:39, Paul Durrant <Paul.Durrant@citrix.com> wrote:
> 
> Ping? I think this is the only remaining patch in this series that still needs an ack.

Acked-by: Christian Lindig <christian.lindig@citrix.com>
diff mbox series

Patch

diff --git a/tools/ocaml/libs/xc/abi-check b/tools/ocaml/libs/xc/abi-check
index d532f37271..3cbdec582f 100755
--- a/tools/ocaml/libs/xc/abi-check
+++ b/tools/ocaml/libs/xc/abi-check
@@ -70,14 +70,7 @@  my $cval;
 $ei = undef;
 my $bitnum = 0;
 while (<OCAML_FILE>) {
-    if (!$ei) {
-        if (m{^type \s+ (\w+) \s* \= \s* $}x && $enums{$1}) {
-            print "// found ocaml type $1 at $o:$.\n" or die $!;
-            $ei = $enums{$1};
-            $cval = '';
-            $bitnum = 0;
-        }
-    } else {
+    if ($ei) {
         if (m{^\s+ \| \s* $ei->{OPrefix} (\w+) \s*$}x) {
             $cval = $1;
             if ($ei->{Mangle} eq 'lc') {
@@ -104,6 +97,14 @@  while (<OCAML_FILE>) {
             die "$_ ?";
         }
     }
+    if (!$ei) {
+        if (m{^type \s+ (\w+) \s* \= \s* $}x && $enums{$1}) {
+            print "// found ocaml type $1 at $o:$.\n" or die $!;
+            $ei = $enums{$1};
+            $cval = '';
+            $bitnum = 0;
+        }
+    }
 }
 
 foreach $ei (values %enums) {