Fix bugs identified by clang analyzer.
authorChris Hanson <org/chris-hanson/cph>
Sun, 6 Sep 2009 08:42:24 +0000 (01:42 -0700)
committerChris Hanson <org/chris-hanson/cph>
Sun, 6 Sep 2009 08:42:24 +0000 (01:42 -0700)
src/microcode/bignum.c
src/microcode/cmpint.c
src/microcode/findprim.c
src/microcode/gcloop.c
src/microcode/transact.c
src/microcode/utils.c
src/microcode/wind.c
src/microcode/x11base.c

index ba32c04f800c47622bd46db1b7ba9aec859176c0..bb3b8ca1b9681247e9ad9cd8e4646947231c9bf5 100644 (file)
@@ -611,7 +611,7 @@ bignum_to_double (bignum_type bignum)
   {
     bignum_length_type length = (BIGNUM_LENGTH (bignum));
     bignum_length_type index = length - 1;
-    bignum_length_type scale_words = length - 1;
+    bignum_length_type scale_words;
     bignum_digit_type msd = (BIGNUM_REF (bignum, (index)));
 #if (FLT_RADIX == 2)
     int bits_to_get = DBL_MANT_DIG; /* includes implicit 1 */
@@ -1601,8 +1601,8 @@ bignum_digit_divide (bignum_digit_type uh, bignum_digit_type ul,
 {
   bignum_digit_type guess;
   bignum_digit_type comparand;
-  bignum_digit_type v1 = (HD_HIGH (v));
-  bignum_digit_type v2 = (HD_LOW (v));
+  bignum_digit_type v1;
+  bignum_digit_type v2;
   bignum_digit_type uj;
   bignum_digit_type uj_uj1;
   bignum_digit_type q1;
index 15d82e7f70a8df415d01c58a5085412d4a833503..52e0c6ee67d82cadef3c830e88af4cec2e094cea 100644 (file)
@@ -2311,7 +2311,6 @@ make_uuo_link (SCHEME_OBJECT procedure,
 {
   SCHEME_OBJECT * cache_address = (MEMORY_LOC (block, offset));
   unsigned long frame_size = (read_uuo_frame_size (cache_address));
-  SCHEME_OBJECT orig_proc;
   trampoline_type_t kind;
   long result;
   SCHEME_OBJECT trampoline;
@@ -2319,7 +2318,6 @@ make_uuo_link (SCHEME_OBJECT procedure,
   if (REFERENCE_TRAP_P (procedure))
     return (make_fake_uuo_link (cache, block, offset));
 
-  orig_proc = procedure;
  loop:
   switch (OBJECT_TYPE (procedure))
     {
index 98da359e3b6b7bce634d212a97af630be99099ea..92469458fc7d4dcc6a56f71d329ed63f3600769e 100644 (file)
@@ -417,7 +417,7 @@ scan (void)
                  else
                    {
                      ungetc (c, input);
-                     (*scan_buffer++) = '\0';
+                     (*scan_buffer) = '\0';
                      break;
                    }
                }
@@ -519,12 +519,9 @@ print_procedure (FILE * output,
 void
 print_primitives (FILE * output, int limit)
 {
-  int last;
   int count;
   char * table_entry;
 
-  last = (limit - 1);
-
   /* Print the procedure table. */
   fprintf
     (output,
index 10d76bf68f6c34d6fe825fff831e4d0dd9f91f34..d402fe45134d60036988b0c602d443964a4d7d67 100644 (file)
@@ -119,8 +119,8 @@ static SCHEME_OBJECT * weak_chain;
 
 static void run_gc_loop (SCHEME_OBJECT * , SCHEME_OBJECT **);
 static SCHEME_OBJECT gc_transport_weak_pair (SCHEME_OBJECT);
-static void tospace_closed (void);
-static void tospace_open (void);
+static void tospace_closed (void) NORETURN;
+static void tospace_open (void) NORETURN;
 
 #ifdef ENABLE_GC_DEBUGGING_TOOLS
 #  ifndef GC_SCAN_HISTORY_SIZE
index 824dfa5715e37dc078963342e27d4080971a6780..558d24d0c64d0fc3c7dadb589eb6fe128d7537e1 100644 (file)
@@ -27,6 +27,8 @@ USA.
 #include "outf.h"
 #include "dstack.h"
 
+static void error (const char *, const char *) NORETURN;
+
 static void
 error (const char * procedure_name, const char * message)
 {
index 340c1bceddc28b4ac4b53c665651a28490b1c217..a4d9b12e2b3dd3e03060a5092e66b4ba97c6cfec 100644 (file)
@@ -39,6 +39,7 @@ SCHEME_OBJECT * history_register;
 unsigned long prev_restore_history_offset;
 
 static SCHEME_OBJECT copy_history (SCHEME_OBJECT);
+static void error_death (long, char *) NORETURN;
 \f
 /* Helper procedures for setup_interrupt, which follows. */
 
index e2e4e4dda3d697856859467bde4845db4858c61e..dfb4da4be013a700865998033484f18fcf3b2946 100644 (file)
@@ -34,6 +34,8 @@ USA.
 extern void block_signals (void);
 extern void unblock_signals (void);
 
+static void error (const char *, const char *) NORETURN;
+
 static void
 error (const char * procedure_name, const char * message)
 {
index 08ab6f4176680efd8ea2066e2eb9f88fb07b38ee..212602e81f3d1b70659cefa28ed96209edb11b32 100644 (file)
@@ -1067,8 +1067,7 @@ enum event_type
    ((arg), (1 << ((unsigned int) event_type_supremum))))
 
 #define EVENT_ENABLED(xw, type)                                                \
-  (((xw) == 0)                                                         \
-   || (((XW_EVENT_MASK (xw)) & (1 << ((unsigned int) (type)))) != 0))
+  (((XW_EVENT_MASK (xw)) & (1 << ((unsigned int) (type)))) != 0)
 
 #define EVENT_0 2
 #define EVENT_1 3
@@ -1213,6 +1212,8 @@ x_event_to_object (XEvent * event)
     = (x_window_to_xw (((event->xany) . display),
                       ((event->xany) . window)));
   SCHEME_OBJECT result = SHARP_F;
+  if (xw == 0)
+    return result;
   switch (event->type)
     {
     case KeyPress: