From 73e52b748cad2eb4646c06f8882596c7beedc176 Mon Sep 17 00:00:00 2001 From: Guillaume Bury Date: Thu, 9 Mar 2023 14:22:26 +0100 Subject: [PATCH] flambda-backend: Clarify the types used for static jump/catch (#1180) --- lambda/lambda.ml | 6 ++++-- lambda/lambda.mli | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lambda/lambda.ml b/lambda/lambda.ml index 5983187a168..f0b57921a41 100644 --- a/lambda/lambda.ml +++ b/lambda/lambda.ml @@ -434,6 +434,8 @@ let equal_meth_kind x y = type shared_code = (int * int) list +type static_label = int + type function_attribute = { inline : inline_attribute; specialise : specialise_attribute; @@ -461,8 +463,8 @@ type lambda = | Lswitch of lambda * lambda_switch * scoped_location * layout | Lstringswitch of lambda * (string * lambda) list * lambda option * scoped_location * layout - | Lstaticraise of int * lambda list - | Lstaticcatch of lambda * (int * (Ident.t * layout) list) * lambda * layout + | Lstaticraise of static_label * lambda list + | Lstaticcatch of lambda * (static_label * (Ident.t * layout) list) * lambda * layout | Ltrywith of lambda * Ident.t * lambda * layout | Lifthenelse of lambda * lambda * lambda * layout | Lsequence of lambda * lambda diff --git a/lambda/lambda.mli b/lambda/lambda.mli index 30e297c85bc..7758fcadad2 100644 --- a/lambda/lambda.mli +++ b/lambda/lambda.mli @@ -340,6 +340,8 @@ val equal_meth_kind : meth_kind -> meth_kind -> bool type shared_code = (int * int) list (* stack size -> code label *) +type static_label = int + type function_attribute = { inline : inline_attribute; specialise : specialise_attribute; @@ -369,8 +371,8 @@ type lambda = strings are pairwise distinct *) | Lstringswitch of lambda * (string * lambda) list * lambda option * scoped_location * layout - | Lstaticraise of int * lambda list - | Lstaticcatch of lambda * (int * (Ident.t * layout) list) * lambda * layout + | Lstaticraise of static_label * lambda list + | Lstaticcatch of lambda * (static_label * (Ident.t * layout) list) * lambda * layout | Ltrywith of lambda * Ident.t * lambda * layout (* Lifthenelse (e, t, f, layout) evaluates t if e evaluates to 0, and evaluates f if e evaluates to any other value; layout must be the layout of [t] and [f] *) @@ -618,7 +620,7 @@ val primitive_may_allocate : primitive -> alloc_mode option (***********************) (* Get a new static failure ident *) -val next_raise_count : unit -> int +val next_raise_count : unit -> static_label val staticfail : lambda (* Anticipated static failure *)