Blob Blame History Raw
--- src/c/compiler.d.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/c/compiler.d	2021-02-01 08:18:32.319218522 -0700
@@ -3268,7 +3268,7 @@ si_valid_function_name_p(cl_object name)
 cl_object
 si_make_lambda(cl_object name, cl_object rest)
 {
-  cl_object lambda;
+  cl_object lambda = ECL_NIL;
   const cl_env_ptr the_env = ecl_process_env();
   cl_compiler_env_ptr old_c_env = the_env->c_env;
   struct cl_compiler_env new_c_env;
--- src/c/ffi.d.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/c/ffi.d	2021-02-01 08:18:32.321218518 -0700
@@ -766,7 +766,7 @@ si_load_foreign_module(cl_object filenam
 #if !defined(ENABLE_DLOPEN)
   FEerror("SI:LOAD-FOREIGN-MODULE does not work when ECL is statically linked", 0);
 #else
-  cl_object output;
+  cl_object output = ECL_NIL;
 
 # ifdef ECL_THREADS
   mp_get_lock_wait(ecl_symbol_value(@'mp::+load-compile-lock+'));
--- src/cmp/cmpcatch.lsp.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/cmp/cmpcatch.lsp	2021-02-01 08:18:32.322218515 -0700
@@ -86,6 +86,7 @@
     (let ((*unwind-exit* (cons 'FRAME *unwind-exit*))
           (*destination* 'VALUES))
       (c2expr* form))
+    (wt-nl "  next_fr = NULL;")
     (wt-nl "}")
     (wt-nl "ecl_frs_pop(cl_env_copy);")
     ;; Here we save the values of the form which might have been
--- src/cmp/cmpwt.lsp.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/cmp/cmpwt.lsp	2021-02-01 08:18:32.322218515 -0700
@@ -106,10 +106,10 @@
                     (*wt-data-column* 80)
                     (s (with-output-to-string (stream)
                          (wt-filtered-data string stream))))
-               (format stream "static const struct ecl_base_string ~A[] = {
+               (format stream "static const struct ecl_base_string ~A[] = { {
         (int8_t)t_base_string, 0, ecl_aet_bc, 0,
         ECL_NIL, (cl_index)~D, (cl_index)~D,
-        (ecl_base_char*)~A };~%"
+        (ecl_base_char*)~A } };~%"
                        name *wt-string-size* *wt-string-size* s)
                name))
            (output-c-strings (strings stream)
--- src/c/number.d.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/c/number.d	2021-02-01 08:18:32.323218513 -0700
@@ -630,6 +630,7 @@ si_complex_float(cl_object r, cl_object
     break;
   default:
     ecl_type_error(@'si::complex-float',"real part", r, @'float');
+    result = ECL_NIL;
   }
   return result;
 }
--- src/c/numbers/ceiling.d.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/c/numbers/ceiling.d	2021-02-01 08:18:32.324218511 -0700
@@ -143,7 +143,7 @@ ecl_ceiling2(cl_object x, cl_object y)
       break;
     }
     default:
-      (void)0; /*Never reached */
+      __builtin_unreachable(); /*Never reached */
     }
     break;
   case t_bignum:
@@ -187,7 +187,7 @@ ecl_ceiling2(cl_object x, cl_object y)
       break;
     }
     default:
-      (void)0; /*Never reached */
+      __builtin_unreachable(); /*Never reached */
     }
     break;
   case t_ratio:
--- src/c/num_log.d.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/c/num_log.d	2021-02-01 08:18:32.324218511 -0700
@@ -476,7 +476,7 @@ cl_object
 si_bit_array_op(cl_object o, cl_object x, cl_object y, cl_object r)
 {
   cl_fixnum i, j, n, d;
-  cl_object r0;
+  cl_object r0 = ECL_NIL;
   bit_operator op;
   bool replace = FALSE;
   int xi, yi, ri;
--- src/c/num_rand.d.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/c/num_rand.d	2021-02-01 08:18:32.325218508 -0700
@@ -211,7 +211,8 @@ init_random_state(void)
    * a lot of entropy, so use open() */
   int file_handler = open("/dev/urandom", O_RDONLY);
   if (file_handler != -1) {
-    read(file_handler, &seed, sizeof(ulong));
+    if (read(file_handler, &seed, sizeof(ulong)) < 0)
+      seed = (rand() + time(0));
     close(file_handler);
   } else
 #endif
--- src/c/printer/write_ugly.d.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/c/printer/write_ugly.d	2021-02-01 08:18:32.326218506 -0700
@@ -135,6 +135,8 @@ write_complex_float(cl_object f, cl_obje
     imag = ecl_make_long_float(cimagl(ecl_clfloat(f)));
     break;
   default:
+    real = ECL_NIL;
+    imag = ECL_NIL;
     break;
   }
   writestr_stream("#C(", stream);
--- src/h/ecl-inl.h.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/h/ecl-inl.h	2021-02-01 08:18:32.328218501 -0700
@@ -164,7 +164,7 @@
         static const struct ecl_vector name ## _data = {                \
                 (int8_t)t_vector, 0, (type), 0,                         \
                 ECL_NIL, (cl_index)(len), (cl_index)(len),              \
-                ecl_cast_ptr(cl_object*,raw), 0 };                      \
+                { ecl_cast_ptr(cl_object*,raw) }, 0 };                  \
         static const cl_object name = (cl_object)(& name ## _data)
 
 #ifdef ECL_SSE2
--- src/h/stacks.h.orig	2021-02-01 05:59:46.000000000 -0700
+++ src/h/stacks.h	2021-02-01 08:18:32.328218501 -0700
@@ -446,7 +446,7 @@ extern ECL_API ecl_frame_ptr _ecl_frs_pu
         } else {
 
 #define ECL_UNWIND_PROTECT_EXIT \
-        __unwinding=0; } \
+        __unwinding=0; __next_fr=NULL; } \
         ecl_frs_pop(__the_env); \
         __nr = ecl_stack_push_values(__the_env);