<short summary of the patch>
authorCamm Maguire <camm@debian.org>
Sun, 13 Nov 2022 12:55:14 +0000 (12:55 +0000)
committerCamm Maguire <camm@debian.org>
Sun, 13 Nov 2022 12:55:14 +0000 (12:55 +0000)
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

Gbp-Pq: Name Version_2_6_13pre126

git.tag
h/compprotos.h
h/error.h
o/error.c

diff --git a/git.tag b/git.tag
index 76d0cd49fba13d2a9866440e8388bb0f536ac6c0..f4a20189bf6919994b2d7ac848853cb8bfa32689 100644 (file)
--- a/git.tag
+++ b/git.tag
@@ -1,2 +1,2 @@
-"Version_2_6_13pre125"
+"Version_2_6_13pre126"
 
index 80c7f56b91f533470cd43985d04b49767bf6faf4..f7cfe054d0c9974a5e40c6ab80e11cad55c3f1f6 100644 (file)
@@ -179,5 +179,6 @@ void gcl_init_or_load1(void (*)(void),const char *);
 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);
index 4d951f2653b6e2e6c4e1e85b961395e49691998a..a206163dbf2b836d4a6e26fb20709fc19c306de9 100644 (file)
--- a/h/error.h
+++ b/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_)
 
index 484892d469b833c91d9985ad9cc280584bf0b464..98834fa614544f54e27bb061393eec99cc8b8752 100755 (executable)
--- a/o/error.c
+++ b/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 cs,object en,object es,ufixnum n,...) {
   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
 */