bug-guile
[Top][All Lists]
Advanced

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

bug#13074: VM Segfaults with Bad `Call' Instruction


From: Noah Lavine
Subject: bug#13074: VM Segfaults with Bad `Call' Instruction
Date: Wed, 5 Dec 2012 09:54:20 -0500

That makes sense. I hit this error in debugging a CPS->GLIL compiler (which I hope will become Guile's compiler, but that's another story). However, once the debugging is done, I suppose it won't make a difference.

What do you think about enabling it only in the debug VM, or something like that? Then if there's some way for me to run my code in debug mode, I can get the better output without slowing down most things.

Noah


On Wed, Dec 5, 2012 at 9:10 AM, Ludovic Courtès <address@hidden> wrote:
Hi Noah,

Noah Lavine <address@hidden> skribis:

> diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
> index 7153ab5..dff2ab2 100644
> --- a/libguile/vm-i-system.c
> +++ b/libguile/vm-i-system.c
> @@ -793,7 +793,9 @@ VM_DEFINE_INSTRUCTION (55, call, "call", 1, -1, 1)
>
>    VM_HANDLE_INTERRUPTS;
>
> -  if (SCM_UNLIKELY (!SCM_PROGRAM_P (program)))
> +  if (SCM_UNLIKELY (program == NULL))
> +    goto vm_error_bad_instruction;
> +  else if (SCM_UNLIKELY (!SCM_PROGRAM_P (program)))
>      {
>        if (SCM_STRUCTP (program) && SCM_STRUCT_APPLICABLE_P (program))
>          {

I’d rather not apply it, because it adds overhead for every call for a
situation that cannot happen when using Guile’s compiler, IIUC.

WDYT?

Thanks,
Ludo’.


reply via email to

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