Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 gcl (2.6.12-126) unstable; urgency=medium
 .
   * Version_2.6.13pre126
Author: Camm Maguire <camm@debian.org>

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2022-11-09

--- gcl-2.6.12.orig/git.tag
+++ gcl-2.6.12/git.tag
@@ -1,2 +1,2 @@
-"Version_2_6_13pre125"
+"Version_2_6_13pre126"
 
--- gcl-2.6.12.orig/h/compprotos.h
+++ gcl-2.6.12/h/compprotos.h
@@ -179,5 +179,6 @@ void gcl_init_or_load1(void (*)(void),co
 char *gcl_gets(char *,int);
 int gcl_puts(const char *);
 int endp_error(object);
-object Icall_gen_error_handler(object,object,object,object,ufixnum,...) __attribute__((noreturn));
+object Icall_gen_error_handler(object,object,object,object,ufixnum,...);
+object Icall_gen_error_handler_noreturn(object,object,object,object,ufixnum,...) __attribute__((noreturn));
 object file_stream(object);
--- gcl-2.6.12.orig/h/error.h
+++ gcl-2.6.12/h/error.h
@@ -2,7 +2,7 @@
 #define ERROR_H
 
 #define Icall_error_handler(a_,b_,c_,d_...)			\
-  Icall_gen_error_handler(Cnil,null_string,a_,b_,c_,##d_)
+  Icall_gen_error_handler_noreturn(Cnil,null_string,a_,b_,c_,##d_)
 #define Icall_continue_error_handler(a_,b_,c_,d_,e_...) \
   Icall_gen_error_handler(Ct,a_,b_,c_,d_,##e_)
 
--- gcl-2.6.12.orig/o/error.c
+++ gcl-2.6.12/o/error.c
@@ -126,12 +126,11 @@ ihs_top_function_name(ihs_ptr h)
 	return(Cnil);
 }
 
-object
-Icall_gen_error_handler(object ci,object cs,object en,object es,ufixnum n,...) { 
+static object
+Icall_gen_error_handler_ap(object ci,object cs,object en,object es,ufixnum n,va_list ap) {
 
   object *b;
   ufixnum i;
-  va_list ap;
 
   n+=5;
   b=alloca(n*sizeof(*b));
@@ -141,17 +140,47 @@ Icall_gen_error_handler(object ci,object
   b[3] = cs;
   b[4] = es;
    
-  va_start(ap,n);
   for (i=5;i<n;i++)
     b[i]= va_arg(ap,object);
-  va_end(ap);
 
   IapplyVector(sSuniversal_error_handler,n,b);
 
+  return Cnil;
+
+}
+
+object
+Icall_gen_error_handler(object ci,object cs,object en,object es,ufixnum n,...) {
+
+  object x;
+  va_list ap;
+
+  va_start(ap,n);
+
+  x=Icall_gen_error_handler_ap(ci,cs,en,es,n,ap);
+
+  va_end(ap);
+
+  return x;
+
+}
+
+object
+Icall_gen_error_handler_noreturn(object ci,object cs,object en,object es,ufixnum n,...) {
+
+  va_list ap;
+
+  va_start(ap,n);
+
+  Icall_gen_error_handler_ap(ci,cs,en,es,n,ap);
+
+  va_end(ap);
+
   while (1);
 
 }
 
+
 /*
 	Lisp interface to IHS
 */
