poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 1/2] pkl: codegen: make struct_{constructor,deintegrator}


From: Mohammad-Reza Nabipoor
Subject: Re: [PATCH v2 1/2] pkl: codegen: make struct_{constructor,deintegrator} exception-safe
Date: Mon, 26 Sep 2022 15:42:21 +0330

Hi Jose.

On Mon, Sep 26, 2022 at 01:22:18PM +0200, Jose E. Marchesi wrote:
> 
> > @@ -2174,9 +2178,15 @@
> >          .let @itype = PKL_AST_TYPE_S_ITYPE (@type_struct)
> >          .let @uint64_type = pkl_ast_make_integral_type (PKL_PASS_AST, 64, 
> > 0)
> >          .e zero_extend_64 @itype
> > -        regvar $ival
> > +        ;; If constraint violation exception happens during the
> > +        ;; construction of deintegrated struct, this is the right
> > +        ;; place to restore the stack.
> > +        push PVM_E_CONSTRAINT
> > +        pushe .constraint_failed
> 
> I agree the dup below is necessary in case the caller to
> struct_deintegrator catches an exception and needs the stack restored
> without the argument trashed.
> 
> But why is this intermediate `pushe' needed at all?  Just let the
> exception fly thru.
> 

Right.  I over-thinked it.
Either there's no exception handler and it reaches to the user,
or there's a pushe somewhere and it will restore the stack height
to right position.

With removing this, is this OK for master?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]