pspp-cvs
[Top][All Lists]
Advanced

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

[Pspp-cvs] pspp/src data/any-reader.c data/any-writer.c da...


From: Ben Pfaff
Subject: [Pspp-cvs] pspp/src data/any-reader.c data/any-writer.c da...
Date: Sat, 08 Jul 2006 03:05:52 +0000

CVSROOT:        /cvsroot/pspp
Module name:    pspp
Changes by:     Ben Pfaff <blp> 06/07/08 03:05:52

Modified files:
        src/data       : any-reader.c any-writer.c category.c category.h 
                         data-out.c file-handle-def.c format.c 
                         missing-values.c sys-file-reader.c variable.c 
        src/language   : command.c line-buffer.c 
        src/language/data-io: data-list.c data-reader.c file-handle.q 
                              get.c inpt-pgm.c list.q matrix-data.c 
                              print.c 
        src/language/dictionary: modify-variables.c numeric.c vector.c 
        src/language/expressions: evaluate.c evaluate.inc.pl optimize.c 
                                  optimize.inc.pl parse.c 
        src/language/lexer: lexer.c q2c.c 
        src/language/stats: aggregate.c crosstabs.q flip.c frequencies.q 
                            t-test.q 
        src/language/utilities: set.q 
        src/language/xforms: recode.c 
        src/libpspp    : ChangeLog array.c automake.mk message.c 
                         message.h pool.c 
        src/math       : design-matrix.c sort.c 
        src/output     : afm.c ascii.c html.c manager.c postscript.c 
                         table.c 
        src/output/charts: plot-chart.c 
        src/ui/terminal: ChangeLog command-line.c main.c 
Added files:
        src/libpspp    : assertion.h 

Log message:
        Apply patch #5225, assertions.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/any-reader.c?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/any-writer.c?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/category.c?cvsroot=pspp&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/category.h?cvsroot=pspp&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/data-out.c?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/file-handle-def.c?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/format.c?cvsroot=pspp&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/missing-values.c?cvsroot=pspp&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/sys-file-reader.c?cvsroot=pspp&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/variable.c?cvsroot=pspp&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/command.c?cvsroot=pspp&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/line-buffer.c?cvsroot=pspp&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/data-list.c?cvsroot=pspp&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/data-reader.c?cvsroot=pspp&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/file-handle.q?cvsroot=pspp&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/get.c?cvsroot=pspp&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/inpt-pgm.c?cvsroot=pspp&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/list.q?cvsroot=pspp&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/matrix-data.c?cvsroot=pspp&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/print.c?cvsroot=pspp&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/dictionary/modify-variables.c?cvsroot=pspp&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/dictionary/numeric.c?cvsroot=pspp&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/dictionary/vector.c?cvsroot=pspp&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/expressions/evaluate.c?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/expressions/evaluate.inc.pl?cvsroot=pspp&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/expressions/optimize.c?cvsroot=pspp&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/expressions/optimize.inc.pl?cvsroot=pspp&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/expressions/parse.c?cvsroot=pspp&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/lexer/lexer.c?cvsroot=pspp&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/lexer/q2c.c?cvsroot=pspp&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/aggregate.c?cvsroot=pspp&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/crosstabs.q?cvsroot=pspp&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/flip.c?cvsroot=pspp&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/frequencies.q?cvsroot=pspp&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/stats/t-test.q?cvsroot=pspp&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/utilities/set.q?cvsroot=pspp&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/xforms/recode.c?cvsroot=pspp&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/pspp/src/libpspp/ChangeLog?cvsroot=pspp&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/pspp/src/libpspp/array.c?cvsroot=pspp&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pspp/src/libpspp/automake.mk?cvsroot=pspp&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/pspp/src/libpspp/message.c?cvsroot=pspp&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/pspp/src/libpspp/message.h?cvsroot=pspp&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/pspp/src/libpspp/pool.c?cvsroot=pspp&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pspp/src/libpspp/assertion.h?cvsroot=pspp&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/pspp/src/math/design-matrix.c?cvsroot=pspp&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pspp/src/math/sort.c?cvsroot=pspp&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/pspp/src/output/afm.c?cvsroot=pspp&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pspp/src/output/ascii.c?cvsroot=pspp&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/pspp/src/output/html.c?cvsroot=pspp&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/pspp/src/output/manager.c?cvsroot=pspp&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/pspp/src/output/postscript.c?cvsroot=pspp&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/pspp/src/output/table.c?cvsroot=pspp&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/pspp/src/output/charts/plot-chart.c?cvsroot=pspp&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/terminal/ChangeLog?cvsroot=pspp&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/terminal/command-line.c?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/terminal/main.c?cvsroot=pspp&r1=1.13&r2=1.14

Patches:
Index: data/any-reader.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/any-reader.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- data/any-reader.c   17 Apr 2006 01:54:15 -0000      1.5
+++ data/any-reader.c   8 Jul 2006 03:05:51 -0000       1.6
@@ -24,6 +24,7 @@
 #include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include "file-handle-def.h"
 #include "file-name.h"
@@ -139,7 +140,7 @@
       return make_any_reader (SCRATCH_FILE,
                               scratch_reader_open (handle, dict));
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Reads a single case from READER into C.
@@ -158,7 +159,7 @@
     case SCRATCH_FILE:
       return scratch_reader_read_case (reader->private, c);
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Returns true if an I/O error has occurred on READER, false
@@ -177,7 +178,7 @@
     case SCRATCH_FILE:
       return scratch_reader_error (reader->private);
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Closes READER. */
@@ -202,7 +203,7 @@
       break;
 
     default:
-      abort ();
+      NOT_REACHED ();
     }
 
   free (reader);

Index: data/any-writer.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/any-writer.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- data/any-writer.c   17 Apr 2006 01:54:15 -0000      1.5
+++ data/any-writer.c   8 Jul 2006 03:05:51 -0000       1.6
@@ -24,6 +24,7 @@
 #include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include "file-handle-def.h"
 #include "file-name.h"
@@ -85,7 +86,7 @@
                                                                   dict));
     }
 
-  abort ();
+  NOT_REACHED ();
 }
 
 /* If PRIVATE is non-null, creates and returns a new any_writer,
@@ -162,7 +163,7 @@
     case SCRATCH_FILE:
       return scratch_writer_write_case (writer->private, c);
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Returns true if an I/O error has occurred on WRITER, false
@@ -181,7 +182,7 @@
     case SCRATCH_FILE:
       return scratch_writer_error (writer->private);
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Closes WRITER.
@@ -209,7 +210,7 @@
       break;
       
     default:
-      abort ();
+      NOT_REACHED ();
     }
 
   free (writer);

Index: data/category.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/category.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- data/category.c     25 Mar 2006 22:46:21 -0000      1.3
+++ data/category.c     8 Jul 2006 03:05:51 -0000       1.4
@@ -32,12 +32,16 @@
   'cat_var'.
 */
 #include <config.h>
+
+#include "category.h"
+
+#include <assert.h>
 #include <stdlib.h>
+#include <string.h>
+
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
-#include "category.h"
 #include "cat-routines.h"
-#include <string.h>
 #include "variable.h"
 
 #define N_INITIAL_CATEGORIES 1

Index: data/category.h
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/category.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- data/category.h     4 Mar 2006 01:11:57 -0000       1.1
+++ data/category.h     8 Jul 2006 03:05:51 -0000       1.2
@@ -37,7 +37,7 @@
 #define CAT_H
 #define CAT_VALUE_NOT_FOUND -2
 #include <stdbool.h>
-
+#include <stddef.h>
 
 union value;
 struct variable ; 

Index: data/data-out.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/data-out.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- data/data-out.c     7 May 2006 02:18:32 -0000       1.5
+++ data/data-out.c     8 Jul 2006 03:05:51 -0000       1.6
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 #include <time.h>
 #include "calendar.h"
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include "format.h"
 #include <libpspp/magic.h>
@@ -101,12 +102,10 @@
           break;
 
         case FMT_A:
-          assert (0);
-          abort ();
+          NOT_REACHED ();
 
         case FMT_AHEX:
-          assert (0);
-          abort ();
+          NOT_REACHED ();
 
         case FMT_IB:
           ok = convert_IB (s, fp, number);
@@ -159,8 +158,7 @@
           break;
 
         default:
-          assert (0);
-          abort ();
+          NOT_REACHED ();
         }
     }
   else 
@@ -179,8 +177,7 @@
           break;
 
         default:
-          assert (0);
-          abort ();
+          NOT_REACHED ();
         }
     }
 
@@ -751,7 +748,7 @@
       }
       break;
     default:
-      assert (0);
+      NOT_REACHED ();
     }
 
   if (buf[0] == 0)

Index: data/file-handle-def.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/file-handle-def.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- data/file-handle-def.c      17 Apr 2006 01:54:15 -0000      1.5
+++ data/file-handle-def.c      8 Jul 2006 03:05:51 -0000       1.6
@@ -18,16 +18,19 @@
    02110-1301, USA. */
 
 #include <config.h>
+
 #include "file-handle-def.h"
-#include <libpspp/message.h>
+
+#include <assert.h>
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
+
 #include <libpspp/alloc.h>
 #include <libpspp/compiler.h>
-#include "file-name.h"
-#include <libpspp/message.h>
 #include <libpspp/magic.h>
+#include <libpspp/message.h>
+#include "file-name.h"
 #include "variable.h"
 #include "scratch-handle.h"
 

Index: data/format.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/format.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- data/format.c       19 Jun 2006 10:16:51 -0000      1.6
+++ data/format.c       8 Jul 2006 03:05:51 -0000       1.7
@@ -20,6 +20,7 @@
 #include <config.h>
 #include "format.h"
 #include <ctype.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <stdlib.h>
 #include <libpspp/compiler.h>
@@ -280,7 +281,7 @@
     case FMT_CCC:
     case FMT_CCD:
     case FMT_CCE:
-      assert (0);
+      NOT_REACHED ();
     case FMT_Z:
     case FMT_A:
       /* nothing is necessary */
@@ -314,7 +315,7 @@
       /* nothing is necessary */
       break;
     default:
-      assert (0);
+      NOT_REACHED ();
     }
 
   assert (check_output_specifier (output, 0));

Index: data/missing-values.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/missing-values.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- data/missing-values.c       15 Mar 2006 03:29:10 -0000      1.2
+++ data/missing-values.c       8 Jul 2006 03:05:51 -0000       1.3
@@ -21,6 +21,7 @@
 #include "missing-values.h"
 #include <assert.h>
 #include <stdlib.h>
+#include <libpspp/assertion.h>
 #include <libpspp/str.h>
 
 
@@ -90,7 +91,7 @@
     case MV_RANGE_1:
       return false;
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Attempts to add S to the set of string missing values MV.  S
@@ -139,7 +140,7 @@
     case MV_RANGE_1:
       return false;
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Returns true if MV contains an individual value,
@@ -159,7 +160,7 @@
     case MV_RANGE:
       return false;
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Removes one individual value from MV and stores it in *V.
@@ -224,7 +225,7 @@
     case MV_3:
       return false;
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Removes the numeric range from MV and stores it in *LOW and
@@ -275,7 +276,7 @@
     case MV_RANGE_1:
       return true;
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Returns true if S contains only spaces between indexes
@@ -398,7 +399,7 @@
     case MV_RANGE_1:
       return v[0].f == d || (v[1].f <= d && d <= v[2].f);
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Returns true if S[] is a missing value in MV, false otherwise.
@@ -425,9 +426,9 @@
               || !memcmp (v[2].s, s, mv->width));
     case MV_RANGE:
     case MV_RANGE_1:
-      abort ();
+      NOT_REACHED ();
     }
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Returns true if MV is a set of numeric missing values and V is

Index: data/sys-file-reader.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/sys-file-reader.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- data/sys-file-reader.c      5 Jul 2006 02:52:35 -0000       1.21
+++ data/sys-file-reader.c      8 Jul 2006 03:05:51 -0000       1.22
@@ -26,6 +26,7 @@
 #include <minmax.h>
 
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/compiler.h>
 #include <libpspp/magic.h>
@@ -1619,7 +1620,7 @@
       p = r->x;
     }
 
-  abort ();
+  NOT_REACHED ();
 
  success:
   /* We have filled up an entire record.  Update state and return

Index: data/variable.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/variable.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- data/variable.c     7 May 2006 02:18:32 -0000       1.8
+++ data/variable.c     8 Jul 2006 03:05:51 -0000       1.9
@@ -19,6 +19,7 @@
 
 #include <config.h>
 #include "variable.h"
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <stdlib.h>
 #include <libpspp/alloc.h>
@@ -346,8 +347,7 @@
     case DC_SCRATCH:
       return _("scratch");
     default:
-      assert (0);
-      abort ();
+      NOT_REACHED ();
     }
 }
 

Index: language/command.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/command.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- language/command.c  28 Jun 2006 18:40:21 -0000      1.13
+++ language/command.c  8 Jul 2006 03:05:51 -0000       1.14
@@ -34,6 +34,7 @@
 #include <language/lexer/lexer.h>
 #include <language/line-buffer.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
@@ -421,7 +422,7 @@
   for (cmd = commands; cmd < commands + command_cnt; cmd++) 
     if (!strcmp (cmd->name, name))
       return cmd;
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Frees the WORD_CNT words in WORDS. */
@@ -595,7 +596,7 @@
       else if (allowed_cnt == 3)
         s = xasprintf (_("%s, %s, or %s"), allowed[0], allowed[1], allowed[2]);
       else
-        abort ();
+        NOT_REACHED ();
 
       msg (SE, _("%s is allowed only %s."), command->name, s);
 

Index: language/line-buffer.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/line-buffer.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- language/line-buffer.c      4 Jul 2006 04:39:04 -0000       1.14
+++ language/line-buffer.c      8 Jul 2006 03:05:51 -0000       1.15
@@ -31,6 +31,7 @@
 #include <language/command.h>
 #include <language/lexer/lexer.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>
@@ -493,7 +494,7 @@
       return s->u.interactive (line, get_prompt_style ());
     }
 
-  abort ();
+  NOT_REACHED ();
 }
 
 /* Reads a single line into LINE.

Index: language/data-io/data-list.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/data-list.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- language/data-io/data-list.c        27 Jun 2006 19:09:21 -0000      1.17
+++ language/data-io/data-list.c        8 Jul 2006 03:05:51 -0000       1.18
@@ -41,6 +41,7 @@
 #include <language/lexer/lexer.h>
 #include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
@@ -999,7 +1000,7 @@
       retval = read_from_data_list_list (dls, c);
       break;
     default:
-      abort ();
+      NOT_REACHED ();
     }
   dfm_pop (dls->reader);
 

Index: language/data-io/data-reader.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/data-reader.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- language/data-io/data-reader.c      9 Jun 2006 22:51:24 -0000       1.11
+++ language/data-io/data-reader.c      8 Jul 2006 03:05:51 -0000       1.12
@@ -34,6 +34,7 @@
 #include <language/lexer/lexer.h>
 #include <language/line-buffer.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>
 
@@ -224,7 +225,7 @@
         }
     }
   else
-    abort ();
+    NOT_REACHED ();
 
   r->where.line_number++;
 

Index: language/data-io/file-handle.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/file-handle.q,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- language/data-io/file-handle.q      28 Jun 2006 02:21:28 -0000      1.6
+++ language/data-io/file-handle.q      8 Jul 2006 03:05:51 -0000       1.7
@@ -27,6 +27,7 @@
 #include <language/command.h>
 #include <language/lexer/lexer.h>
 #include <language/line-buffer.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/magic.h>
 #include <libpspp/str.h>
@@ -109,7 +110,7 @@
         properties.record_width = cmd.n_lrecl[0];
       break;
     default:
-      assert (0);
+      NOT_REACHED ();
     }
 
   if (cmd.mode != FH_SCRATCH)
@@ -154,7 +155,7 @@
     case FH_REF_SCRATCH:
       return _("scratch file");
     default:
-      abort ();
+      NOT_REACHED ();
     }
 }
 

Index: language/data-io/get.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/get.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- language/data-io/get.c      2 Jul 2006 04:25:12 -0000       1.14
+++ language/data-io/get.c      8 Jul 2006 03:05:51 -0000       1.15
@@ -41,6 +41,7 @@
 #include <language/lexer/lexer.h>
 #include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/hash.h>
 #include <libpspp/message.h>
@@ -843,7 +844,7 @@
           saw_table = true;
         }
       else
-        assert (0);
+        NOT_REACHED ();
       lex_match ('=');
 
       file->by = NULL;
@@ -1169,7 +1170,7 @@
     if (iter->handle == NULL)
       {
         if (!mtf_delete_file_in_place (mtf, &iter))
-          abort ();
+          NOT_REACHED ();
         break;
       }
   

Index: language/data-io/inpt-pgm.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/inpt-pgm.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- language/data-io/inpt-pgm.c 28 Jun 2006 05:49:03 -0000      1.11
+++ language/data-io/inpt-pgm.c 8 Jul 2006 03:05:51 -0000       1.12
@@ -37,6 +37,7 @@
 #include <language/expressions/public.h>
 #include <language/lexer/lexer.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
@@ -205,7 +206,7 @@
         memset (case_data_rw (c, i)->s, ' ', sizeof case_data_rw (c, i)->s);
         break;
       default:
-        assert (0);
+        NOT_REACHED ();
       }
 }
 
@@ -229,7 +230,7 @@
         memset (case_data_rw (c, i)->s, ' ', sizeof case_data_rw (c, i)->s);
         break;
       default:
-        assert (0);
+        NOT_REACHED ();
       }
 }
 

Index: language/data-io/list.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/list.q,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- language/data-io/list.q     5 Jul 2006 05:14:30 -0000       1.14
+++ language/data-io/list.q     8 Jul 2006 03:05:51 -0000       1.15
@@ -269,7 +269,7 @@
          fputs ("  </TR>\n", x->file);
        }
       else
-       assert (0);
+       NOT_REACHED ();
     }
 }
 
@@ -387,7 +387,7 @@
          }
       }
     else
-      assert (0);
+      NOT_REACHED ();
   
   free (cmd.v_variables);
 }
@@ -718,7 +718,7 @@
        fputs ("  </TR>\n", x->file);
       }
     else
-      assert (0);
+      NOT_REACHED ();
 
   return true;
 }

Index: language/data-io/matrix-data.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/matrix-data.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- language/data-io/matrix-data.c      27 Jun 2006 19:09:21 -0000      1.9
+++ language/data-io/matrix-data.c      8 Jul 2006 03:05:51 -0000       1.10
@@ -36,6 +36,7 @@
 #include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
@@ -754,7 +755,7 @@
       printf (" '%.*s'", token->length, token->string);
       break;
     default:
-      assert (0);
+      NOT_REACHED ();
     }
   fflush (stdout);
 }
@@ -1066,16 +1067,14 @@
              n_cols = mx->n_continuous;
              break;
            default:
-             assert (0);
-              abort ();
+              NOT_REACHED ();
            }
          break;
        case 2:
          n_cols = 1;
          break;
        default:
-         assert (0);
-          abort ();
+          NOT_REACHED ();
        }
 
       {
@@ -1935,13 +1934,11 @@
          n_cols = mx->n_continuous;
          break;
        default:
-         assert (0);
-          abort ();
+          NOT_REACHED ();
        }
       break;
     default:
-      assert (0);
-      abort ();
+      NOT_REACHED ();
     }
   c->n_rows[wr->content]++;
 

Index: language/data-io/print.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/print.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- language/data-io/print.c    27 Jun 2006 19:09:21 -0000      1.10
+++ language/data-io/print.c    8 Jul 2006 03:05:51 -0000       1.11
@@ -34,6 +34,7 @@
 #include <language/lexer/lexer.h>
 #include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
@@ -838,7 +839,7 @@
       case PRT_SPACE:
        break;
       case PRT_ERROR:
-       assert (0);
+        NOT_REACHED ();
       }
 
   if (fh != NULL)
@@ -883,8 +884,7 @@
          break;
        case PRT_ERROR:
         default:
-         assert (0);
-          abort ();
+          NOT_REACHED ();
        }
       if (pot_w > w)
        w = pot_w;
@@ -958,8 +958,7 @@
        break;
 
       case PRT_ERROR:
-       assert (0);
-       break;
+        NOT_REACHED ();
       }
 
   if (t->writer != NULL && dfm_write_error (t->writer))
@@ -988,8 +987,7 @@
          /* nothing to do */
          break;
        case PRT_ERROR:
-         assert (0);
-         break;
+         NOT_REACHED ();
        }
       n = i->next;
       free (i);

Index: language/dictionary/modify-variables.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/dictionary/modify-variables.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- language/dictionary/modify-variables.c      27 Jun 2006 19:09:22 -0000      
1.6
+++ language/dictionary/modify-variables.c      8 Jul 2006 03:05:51 -0000       
1.7
@@ -28,6 +28,7 @@
 #include <language/lexer/lexer.h>
 #include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/array.h>
 #include <libpspp/bit-vector.h>
 #include <libpspp/compiler.h>
@@ -259,7 +260,7 @@
                               compare_variables_given_ordering,
                               &forward_positional_ordering)
               != drop_cnt)
-            assert (0);
+            NOT_REACHED ();
 
           free (keep_vars);
           free (all_vars);
@@ -420,7 +421,7 @@
                       keep_vars,
                       compare_variables_given_ordering,
                       &forward_positional_ordering) != keep_cnt)
-    assert (0);
+    NOT_REACHED ();
 
   /* Copy variables into var_renaming array. */
   var_renaming = xnmalloc (keep_cnt, sizeof *var_renaming);
@@ -514,7 +515,7 @@
   /* Do renaming. */
   if (dict_rename_vars (d, rename_vars, rename_new_names, rename_cnt,
                         NULL) == 0)
-    assert (0);
+    NOT_REACHED ();
 
   /* Clean up. */
   for (i = 0; i < vm->rename_cnt; i++)

Index: language/dictionary/numeric.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/dictionary/numeric.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- language/dictionary/numeric.c       27 Jun 2006 19:09:22 -0000      1.9
+++ language/dictionary/numeric.c       8 Jul 2006 03:05:51 -0000       1.10
@@ -27,7 +27,7 @@
 #include <language/command.h>
 #include <language/lexer/lexer.h>
 #include <language/lexer/variable-parser.h>
-#include <libpspp/message.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>
 
@@ -151,8 +151,7 @@
          width = f.w / 2;
          break;
        default:
-         assert (0);
-          abort ();
+          NOT_REACHED ();
        }
 
       /* Create each variable. */

Index: language/dictionary/vector.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/dictionary/vector.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- language/dictionary/vector.c        27 Jun 2006 19:09:22 -0000      1.6
+++ language/dictionary/vector.c        8 Jul 2006 03:05:51 -0000       1.7
@@ -28,6 +28,7 @@
 #include <language/lexer/lexer.h>
 #include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/misc.h>
 #include <libpspp/str.h>
@@ -177,7 +178,7 @@
                  v[i] = dict_create_var_assert (default_dict, name, 0);
                }
               if (!dict_create_vector (default_dict, cp, v, nv))
-                assert (0);
+                NOT_REACHED ();
              cp += strlen (cp) + 1;
            }
           free (v);

Index: language/expressions/evaluate.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/expressions/evaluate.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- language/expressions/evaluate.c     9 Jun 2006 22:51:24 -0000       1.5
+++ language/expressions/evaluate.c     8 Jul 2006 03:05:51 -0000       1.6
@@ -22,6 +22,7 @@
 
 #include <ctype.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include "helpers.h"
 #include "evaluate.h"
@@ -67,7 +68,7 @@
 #include "evaluate.inc"
           
        default:
-         abort ();
+         NOT_REACHED ();
        }
     }
 }
@@ -233,7 +234,7 @@
         }
 
       default:
-        assert (0);
+        NOT_REACHED ();
       }
 
   expr_free (expr);
@@ -299,7 +300,7 @@
           fprintf (stderr, "i<%d>", op->integer);
           break;
         default:
-          abort ();
+          NOT_REACHED ();
         } 
     }
   fprintf (stderr, "\n");

Index: language/expressions/evaluate.inc.pl
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/expressions/evaluate.inc.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- language/expressions/evaluate.inc.pl        4 Mar 2006 01:11:57 -0000       
1.1
+++ language/expressions/evaluate.inc.pl        8 Jul 2006 03:05:51 -0000       
1.2
@@ -6,7 +6,7 @@
 
        if ($op->{UNIMPLEMENTED}) {
            print "case $opname:\n";
-           print "  abort ();\n\n";
+           print "  NOT_REACHED ();\n\n";
            next;
        }
 

Index: language/expressions/optimize.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/expressions/optimize.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- language/expressions/optimize.c     9 Jun 2006 22:51:24 -0000       1.3
+++ language/expressions/optimize.c     8 Jul 2006 03:05:51 -0000       1.4
@@ -24,6 +24,7 @@
 #include <errno.h>
 #include <stdlib.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <data/calendar.h>
 #include <data/data-in.h>
 #include <libpspp/message.h>
@@ -157,12 +158,10 @@
 #include "optimize.inc"
 
     default:
-      assert (0);
+      NOT_REACHED ();
     }
 
-  /* Not reached. */
-  assert (0);
-  abort ();
+  NOT_REACHED ();
 }
 
 static double
@@ -302,7 +301,7 @@
       break;
 
     default:
-      abort ();
+      NOT_REACHED ();
     }
 }
 
@@ -363,7 +362,7 @@
   else if (is_composite (n->type))
     flatten_composite (n, e);
   else 
-    abort ();
+    NOT_REACHED ();
 }
 
 static union operation_data *

Index: language/expressions/optimize.inc.pl
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/expressions/optimize.inc.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- language/expressions/optimize.inc.pl        4 Mar 2006 01:11:57 -0000       
1.1
+++ language/expressions/optimize.inc.pl        8 Jul 2006 03:05:51 -0000       
1.2
@@ -6,7 +6,7 @@
 
        if (!$op->{OPTIMIZABLE} || $op->{UNIMPLEMENTED}) {
            print "case $opname:\n";
-           print "  abort ();\n\n";
+           print "  NOT_REACHED ();\n\n";
            next;
        }
 

Index: language/expressions/parse.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/expressions/parse.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- language/expressions/parse.c        27 Jun 2006 19:09:22 -0000      1.11
+++ language/expressions/parse.c        8 Jul 2006 03:05:51 -0000       1.12
@@ -31,6 +31,7 @@
 #include "helpers.h"
 #include <language/lexer/lexer.h>
 #include <language/lexer/variable-parser.h>
+#include <libpspp/assertion.h>
 #include <libpspp/misc.h>
 #include <libpspp/pool.h>
 #include <data/settings.h>
@@ -167,7 +168,7 @@
       return &not_on_stack;
           
     default:
-      abort ();
+      NOT_REACHED ();
     }
 }
 
@@ -271,7 +272,7 @@
       break;
 
     default:
-      abort ();
+      NOT_REACHED ();
     }
   
   return true;
@@ -345,7 +346,7 @@
       break;
 
     case OP_format:
-      abort ();
+      NOT_REACHED ();
 
     case OP_ni_format:
       if ((*node)->type == OP_format
@@ -399,7 +400,7 @@
       break;
 
     default:
-      abort ();
+      NOT_REACHED ();
     }
 
   if (do_coercion) 
@@ -1282,7 +1283,7 @@
   else if (is_composite (n->type))
     return operations[n->type].returns;
   else
-    abort ();
+    NOT_REACHED ();
 }
 
 static const char *

Index: language/lexer/lexer.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/lexer/lexer.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- language/lexer/lexer.c      9 Jun 2006 22:51:24 -0000       1.6
+++ language/lexer/lexer.c      8 Jul 2006 03:05:51 -0000       1.7
@@ -27,6 +27,7 @@
 #include <stdarg.h>
 #include <stdlib.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <language/command.h>
 #include <libpspp/message.h>
 #include <language/line-buffer.h>
@@ -934,7 +935,7 @@
        }
     }
        
-  assert (0);
+  NOT_REACHED ();
 }
 
 /* Really weird functions. */
@@ -1018,7 +1019,7 @@
       chars_per_byte = 2;
       break;
     default:
-      abort ();
+      NOT_REACHED ();
     }
   
   byte_cnt = ds_length (&tokstr) / chars_per_byte;

Index: language/lexer/q2c.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/lexer/q2c.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- language/lexer/q2c.c        5 Jul 2006 05:14:31 -0000       1.13
+++ language/lexer/q2c.c        8 Jul 2006 03:05:51 -0000       1.14
@@ -27,6 +27,7 @@
 #include <time.h>
 #include <errno.h>
 #include <unistd.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/str.h>
 #include "exit.h"
@@ -1321,7 +1322,7 @@
                break;
 
              default:
-               assert (0);
+               NOT_REACHED ();
              }
          }
       }
@@ -1709,7 +1710,7 @@
       dump (0, "goto lossage;");
       dump (-1, "default:");
       indent ();
-      dump (0, "assert (0);");
+      dump (0, "NOT_REACHED ();");
       dump (-1, "}");
       outdent ();
     }
@@ -1775,7 +1776,7 @@
       dump (0, "break;");
       dump (-1, "default:");
       indent ();
-      dump (0, "assert (0);");
+      dump (0, "NOT_REACHED ();");
       dump (-1, "}");
       outdent ();
     }
@@ -2030,6 +2031,7 @@
 
          dump (0, "#include <stdlib.h>");
          dump (0, "#include <libpspp/alloc.h>");
+         dump (0, "#include <libpspp/assertion.h>");
          dump (0, "#include <libpspp/message.h>");
          dump (0, "#include <language/lexer/lexer.h>");
          dump (0, "#include <language/lexer/variable-parser.h>");

Index: language/stats/aggregate.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/aggregate.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- language/stats/aggregate.c  27 Jun 2006 19:09:22 -0000      1.12
+++ language/stats/aggregate.c  8 Jul 2006 03:05:51 -0000       1.13
@@ -38,7 +38,7 @@
 #include <language/lexer/variable-parser.h>
 #include <language/stats/sort-criteria.h>
 #include <libpspp/alloc.h>
-#include <libpspp/message.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/misc.h>
 #include <libpspp/pool.h>
@@ -892,7 +892,7 @@
                caught earlier.  Nothing to do. */
             break;
          default:
-           assert (0);
+           NOT_REACHED ();
          }
     } else {
       switch (iter->function)
@@ -904,7 +904,7 @@
          iter->int1++;
          break;
        default:
-         assert (0);
+         NOT_REACHED ();
        }
     }
 }
@@ -1033,7 +1033,7 @@
            v->f = i->int1;
            break;
          default:
-           assert (0);
+           NOT_REACHED ();
          }
       }
   }

Index: language/stats/crosstabs.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/crosstabs.q,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- language/stats/crosstabs.q  5 Jul 2006 05:14:31 -0000       1.12
+++ language/stats/crosstabs.q  8 Jul 2006 03:05:51 -0000       1.13
@@ -47,6 +47,7 @@
 #include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/hash.h>
 #include <libpspp/magic.h>
@@ -1799,8 +1800,7 @@
                                 * (1. - col_tot[c] / W)));
                    break;
                  default:
-                   assert (0);
-                    abort ();
+                    NOT_REACHED ();
                  }
 
                 format_cell_entry (table, c, i, v, suffix, mark_missing);
@@ -1855,8 +1855,7 @@
                 v = 0.;
                 break;
               default:
-                assert (0);
-                abort ();
+                NOT_REACHED ();
               }
 
             format_cell_entry (table, n_cols, 0, v, suffix, mark_missing);
@@ -1911,8 +1910,7 @@
              case CRS_CL_ASRESIDUAL:
                continue;
              default:
-               assert (0);
-                abort ();
+                NOT_REACHED ();
              }
 
             format_cell_entry (table, c, i, v, suffix, mark_missing);

Index: language/stats/flip.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/flip.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- language/stats/flip.c       27 Jun 2006 19:09:22 -0000      1.10
+++ language/stats/flip.c       8 Jul 2006 03:05:51 -0000       1.11
@@ -41,6 +41,7 @@
 #include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
 #include <libpspp/misc.h>
@@ -538,7 +539,7 @@
           else if (feof (flip->file))
             msg (SE, _("Unexpected end of file reading FLIP temporary file."));
           else
-            abort ();
+            NOT_REACHED ();
           ok = false;
           break;
         }

Index: language/stats/frequencies.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/frequencies.q,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- language/stats/frequencies.q        5 Jul 2006 05:14:31 -0000       1.12
+++ language/stats/frequencies.q        8 Jul 2006 03:05:51 -0000       1.13
@@ -557,7 +557,7 @@
            ft->out_of_range += weight;
          break;
        default:
-         assert (0);
+          NOT_REACHED ();
        }
     }
   return true;
@@ -645,7 +645,7 @@
              dump_full (v);
            break;
          default:
-           assert (0);
+            NOT_REACHED ();
          }
       else
        dumped_freq_tab = 0;
@@ -706,7 +706,7 @@
     case FRQ_AFREQ | (ALPHA << 16):     return compare_freq_alpha_a;
     case FRQ_DFREQ | (NUMERIC << 16):   return compare_freq_numeric_d;
     case FRQ_DFREQ | (ALPHA << 16):     return compare_freq_alpha_d;
-    default: assert (0);
+    default: NOT_REACHED ();
     }
 
   return 0;

Index: language/stats/t-test.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/stats/t-test.q,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- language/stats/t-test.q     5 Jul 2006 05:14:31 -0000       1.9
+++ language/stats/t-test.q     8 Jul 2006 03:05:51 -0000       1.10
@@ -36,6 +36,7 @@
 #include <language/dictionary/split-file.h>
 #include <language/lexer/lexer.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/hash.h>
 #include <libpspp/magic.h>
@@ -623,7 +624,7 @@
        ssbox_paired_init(ssb,cmd);
        break;
       default:
-       assert(0);
+       NOT_REACHED ();
       }
 }
 
@@ -937,7 +938,7 @@
        trbox_paired_init(trb,cmd);
        break;
       default:
-       assert(0);
+        NOT_REACHED ();
       }
 }
 
@@ -1970,7 +1971,7 @@
       flag = which_group(g,p);
     }
   else
-    assert(0);
+    NOT_REACHED ();
 
   return flag;
 }

Index: language/utilities/set.q
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/utilities/set.q,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- language/utilities/set.q    28 Jun 2006 02:21:28 -0000      1.9
+++ language/utilities/set.q    8 Jul 2006 03:05:52 -0000       1.10
@@ -110,6 +110,8 @@
      xsort=xsort:yes/no.
 */
 
+/* (headers) */
+
 /* (declarations) */
 
 /* (_functions) */

Index: language/xforms/recode.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/xforms/recode.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- language/xforms/recode.c    27 Jun 2006 19:09:22 -0000      1.8
+++ language/xforms/recode.c    8 Jul 2006 03:05:52 -0000       1.9
@@ -34,6 +34,7 @@
 #include <language/lexer/variable-parser.h>
 #include <language/lexer/range-parser.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/magic.h>
 #include <libpspp/message.h>
@@ -560,7 +561,7 @@
           match = true;
           break;
         default:
-          abort ();
+          NOT_REACHED ();
         }
 
       if (match)
@@ -609,7 +610,7 @@
             break;
           }
         default:
-          abort ();
+          NOT_REACHED ();
         }
 
       if (match)

Index: libpspp/ChangeLog
===================================================================
RCS file: /cvsroot/pspp/pspp/src/libpspp/ChangeLog,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- libpspp/ChangeLog   3 Jul 2006 01:38:24 -0000       1.31
+++ libpspp/ChangeLog   8 Jul 2006 03:05:52 -0000       1.32
@@ -1,3 +1,18 @@
+Fri Jul  7 20:01:26 2006  Ben Pfaff  <address@hidden>
+
+       * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add assertion.h.
+       
+       * assertion.h: New file.  Replaced usage of assert(0) and abort()
+       with NOT_REACHED() from this file throughout the source tree.
+
+       * message.c: (request_bug_report_and_abort) Revise message printed
+       to include request to include lines above the message, which
+       should include an assertion failure message in many cases.
+       (msg_assert_fail) Removed.
+
+       * message.h: (assert) Removed.
+       (request_bug_report_and_abort) Mark NO_RETURN.
+
 Mon Jul  3 09:36:42 WST 2006 John Darrington <address@hidden>
 
        * i18n.c: Made character conversion tolerant of failure to create the 

Index: libpspp/array.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/libpspp/array.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- libpspp/array.c     7 May 2006 10:11:51 -0000       1.3
+++ libpspp/array.c     8 Jul 2006 03:05:52 -0000       1.4
@@ -96,14 +96,8 @@
 #include <stdlib.h>
 #include <string.h>
 #include "alloc.h"
+#include <libpspp/assertion.h>
 
-/* Some of the assertions in this file are very expensive.  We
-   don't use them by default. */
-#ifdef EXTRA_CHECKS
-#define expensive_assert(X) assert(X)
-#else
-#define expensive_assert(X) ((void) 0)
-#endif
 #include "message.h"
 
 /* Finds an element in ARRAY, which contains COUNT elements of

Index: libpspp/automake.mk
===================================================================
RCS file: /cvsroot/pspp/pspp/src/libpspp/automake.mk,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- libpspp/automake.mk 1 Jul 2006 22:34:27 -0000       1.12
+++ libpspp/automake.mk 8 Jul 2006 03:05:52 -0000       1.13
@@ -6,6 +6,7 @@
 src_libpspp_libpspp_a_SOURCES = \
        src/libpspp/array.c \
        src/libpspp/array.h \
+       src/libpspp/assertion.h \
        src/libpspp/alloc.c \
        src/libpspp/alloc.h \
        src/libpspp/bit-vector.h \

Index: libpspp/message.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/libpspp/message.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- libpspp/message.c   4 Jul 2006 04:39:04 -0000       1.4
+++ libpspp/message.c   8 Jul 2006 03:05:52 -0000       1.5
@@ -25,6 +25,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 
 #include <libpspp/alloc.h>
 #include <libpspp/version.h>
@@ -122,58 +123,30 @@
 }
 
 void 
-request_bug_report_and_abort(const char *msg )
+request_bug_report_and_abort (const char *msg)
 {
-  fprintf(stderr,
-         "******************************************************************\n"
-         "You have discovered a bug in PSPP.\n\n"
-         "  Please report this, by sending "
-         "an email to " PACKAGE_BUGREPORT ",\n"
-         "explaining what you were doing when this happened, and including\n"
-         "a sample of your input file which caused it.\n");
-
-  fprintf(stderr,
-         "Also, please copy the following lines into your bug report:\n\n"
-         "bare_version:        %s\n" 
-         "version:             %s\n"
-         "stat_version:        %s\n"
-         "host_system:         %s\n"
-         "build_system:        %s\n"
-         "default_config_path: %s\n"
-         "include_path:        %s\n"
-         "locale_dir:          %s\n"
-         "compiler version:    %s\n"
-         ,
-
-         bare_version,         
-         version,
-         stat_version,
-         host_system,        
-         build_system,
-         default_config_path,
-         include_path, 
-         locale_dir,
+  fprintf (stderr, "******************************************************\n");
+  fprintf (stderr, "You have discovered a bug in PSPP.  Please report this\n");
+  fprintf (stderr, "to " PACKAGE_BUGREPORT ".  Please include this entire\n");
+  fprintf (stderr, "message, *plus* several lines of output just above it.\n");
+  fprintf (stderr, "For the best chance at having the bug fixed, also\n");
+  fprintf (stderr, "include the syntax file that triggered it and a sample\n");
+  fprintf (stderr, "of any data file used for input.\n");
+  fprintf (stderr, "proximate cause:     %s\n", msg);
+  fprintf (stderr, "version:             %s\n", stat_version);
+  fprintf (stderr, "host_system:         %s\n", host_system);
+  fprintf (stderr, "build_system:        %s\n", build_system);
+  fprintf (stderr, "default_config_path: %s\n", default_config_path);
+  fprintf (stderr, "include_path:        %s\n", include_path);
+  fprintf (stderr, "locale_dir:          %s\n", locale_dir);
+  fprintf (stderr, "compiler version:    %s\n",
 #ifdef __VERSION__
          __VERSION__
 #else
          "Unknown"
 #endif
          );     
+  fprintf (stderr, "******************************************************\n");
 
-  if ( msg )
-    fprintf(stderr,"Diagnosis: %s\n",msg);
-
-  fprintf(stderr,
-    "******************************************************************\n");
-
-  abort();
+  _exit (EXIT_FAILURE);
 }
-
-void 
-msg_assert_fail(const char *expr, const char *file, int line)
-{
-  char msg[256];
-  snprintf(msg,256,"Assertion failed: %s:%d; (%s)",file,line,expr);
-  request_bug_report_and_abort( msg );
-}
-

Index: libpspp/message.h
===================================================================
RCS file: /cvsroot/pspp/pspp/src/libpspp/message.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- libpspp/message.h   4 Jul 2006 04:39:04 -0000       1.11
+++ libpspp/message.h   8 Jul 2006 03:05:52 -0000       1.12
@@ -107,15 +107,6 @@
 
 
 /* Used in panic situations only. */
-void request_bug_report_and_abort (const char *msg);
-
-void msg_assert_fail (const char *expr, const char *file, int line);
-
-#undef __STRING
-#define __STRING(x) #x
-#undef assert
-                              
-#define assert(expr) ( (void) ( expr ? (void) 0 : \
-              msg_assert_fail(__STRING(expr), __FILE__, __LINE__)) )
+void request_bug_report_and_abort (const char *msg) NO_RETURN;
 
 #endif /* message.h */

Index: libpspp/pool.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/libpspp/pool.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- libpspp/pool.c      8 May 2006 01:18:10 -0000       1.3
+++ libpspp/pool.c      8 Jul 2006 03:05:52 -0000       1.4
@@ -21,6 +21,7 @@
 #include "pool.h"
 #include <stdlib.h>
 #include "alloc.h"
+#include <libpspp/assertion.h>
 #include "message.h"
 #include "size_max.h"
 #include "str.h"
@@ -915,7 +916,7 @@
       gizmo->p.registered.free (gizmo->p.registered.p);
       break;
     default:
-      assert (0);
+      NOT_REACHED ();
     }
 }
 

Index: math/design-matrix.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/math/design-matrix.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- math/design-matrix.c        15 Mar 2006 03:29:11 -0000      1.2
+++ math/design-matrix.c        8 Jul 2006 03:05:52 -0000       1.3
@@ -21,14 +21,19 @@
   Create design matrices for procedures that need them.
 */
 #include <config.h>
+
+#include "design-matrix.h"
+
+#include <assert.h>
+#include <math.h>
 #include <stdlib.h>
+#include <string.h>
+
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
 #include <data/variable.h>
 #include <data/category.h>
-#include "design-matrix.h"
-#include <string.h>
-#include <math.h>
+
 #include <gsl/gsl_machine.h>
 #include <gsl/gsl_vector.h>
 #include <gsl/gsl_matrix.h>

Index: math/sort.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/math/sort.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- math/sort.c 10 May 2006 04:11:07 -0000      1.10
+++ math/sort.c 8 Jul 2006 03:05:52 -0000       1.11
@@ -37,6 +37,7 @@
 #include <language/expressions/public.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
+#include <libpspp/assertion.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
 #include <libpspp/misc.h>
@@ -173,7 +174,7 @@
             {
               bool ok = casereader_read_xfer (reader, &cases[i].c);
               if (!ok)
-                abort ();
+                NOT_REACHED ();
               cases[i].idx = i;
             }
 
@@ -183,7 +184,7 @@
           for (i = 0; i < case_cnt; i++)
             casefile_append_xfer (dst, &cases[i].c);
           if (casefile_error (dst))
-            abort ();
+            NOT_REACHED ();
 
           free (cases);
         }

Index: output/afm.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/output/afm.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- output/afm.c        9 Jun 2006 22:51:24 -0000       1.3
+++ output/afm.c        8 Jul 2006 03:05:52 -0000       1.4
@@ -31,6 +31,7 @@
 #include <setjmp.h>
 #include "error.h"
 #include "minmax.h"
+#include <libpspp/assertion.h>
 #include <libpspp/pool.h>
 #include <libpspp/str.h>
 
@@ -1146,7 +1147,7 @@
           break;
       
         default:
-          abort ();
+          NOT_REACHED ();
         }
       binary_finish (&e);
     }

Index: output/ascii.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/output/ascii.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- output/ascii.c      9 Jun 2006 22:51:24 -0000       1.9
+++ output/ascii.c      8 Jul 2006 03:05:52 -0000       1.10
@@ -26,6 +26,7 @@
 
 #include <data/file-name.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <libpspp/pool.h>
 #include <libpspp/start-date.h>
@@ -323,7 +324,7 @@
            this->width = arg;
            break;
          default:
-           abort ();
+           NOT_REACHED ();
          }
       }
       break;
@@ -365,7 +366,7 @@
            x->tab_width = arg;
            break;
          default:
-           abort ();
+           NOT_REACHED ();
          }
       }
       break;
@@ -395,12 +396,12 @@
             x->squeeze_blank_lines = setting;
             break;
          default:
-           abort ();
+           NOT_REACHED ();
          }
       }
       break;
     default:
-      abort ();
+      NOT_REACHED ();
     }
 
   return true;
@@ -511,7 +512,7 @@
       x += width - length;
       break;
     default:
-      abort ();
+      NOT_REACHED ();
     }
 
   if (y >= this->length || x >= this->width)

Index: output/html.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/output/html.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- output/html.c       3 Jul 2006 17:39:07 -0000       1.12
+++ output/html.c       8 Jul 2006 03:05:52 -0000       1.13
@@ -27,6 +27,7 @@
 #include <unistd.h>
 
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <data/file-name.h>
 #include "error.h"
@@ -183,11 +184,11 @@
           error (0, 0, _("`chart-files' value must contain `#'"));
           break;
         default:
-          abort ();
+          NOT_REACHED ();
         }
       break;
     default:
-      abort ();
+      NOT_REACHED ();
     }
   
   return true;
@@ -212,7 +213,7 @@
       link_image (x->file, ((struct chart *)s->ext)->file_name);
       break;
     default:
-      abort ();
+      NOT_REACHED ();
     }
 }
 

Index: output/manager.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/output/manager.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- output/manager.c    14 May 2006 20:11:50 -0000      1.8
+++ output/manager.c    8 Jul 2006 03:05:52 -0000       1.9
@@ -21,6 +21,7 @@
 #include "manager.h"
 #include <stdio.h>
 #include <stdlib.h>
+#include <libpspp/assertion.h>
 #include "output.h"
 
 /* Table. */
@@ -110,7 +111,7 @@
        {
          printf ("headers: (l,r)=(%d,%d), (t,b)=(%d,%d) in table size 
(%d,%d)\n",
                  hl, hr, ht, hb, nc, nr);
-         abort ();
+         NOT_REACHED ();
        }
       else if (hl + hr == nc)
        printf ("warning: headers (l,r)=(%d,%d) in table width %d\n", hl, hr, 
nc);

Index: output/postscript.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/output/postscript.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- output/postscript.c 9 Jun 2006 22:51:24 -0000       1.18
+++ output/postscript.c 8 Jul 2006 03:05:52 -0000       1.19
@@ -27,6 +27,7 @@
 #include <unistd.h>
 
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/bit-vector.h>
 #include <libpspp/compiler.h>
 #include <libpspp/freaderror.h>
@@ -374,7 +375,7 @@
            this->font_height = arg;
            break;
          default:
-           abort ();
+           NOT_REACHED ();
          }
       }
       break;
@@ -400,7 +401,7 @@
            x->line_width = dimension;
            break;
          default:
-           abort ();
+           NOT_REACHED ();
          }
       }
       break;
@@ -417,7 +418,7 @@
       }
       break;
     default:
-      abort ();
+      NOT_REACHED ();
     }
 
   return true;
@@ -608,8 +609,7 @@
     case SOM_CHART:
       break;
     default:
-      abort ();
-      break;
+      NOT_REACHED ();
     }
 }
 

Index: output/table.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/output/table.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- output/table.c      2 Jul 2006 05:44:25 -0000       1.9
+++ output/table.c      8 Jul 2006 03:05:52 -0000       1.10
@@ -24,6 +24,7 @@
 #include <limits.h>
 #include <stdlib.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/compiler.h>
 #include <data/format.h>
 #include <libpspp/magic.h>
@@ -305,7 +306,7 @@
              x2, t->col_ofs, x2 + t->col_ofs,
              y2, t->row_ofs, y2 + t->row_ofs,
              t->nc, t->nr);
-      abort ();
+      NOT_REACHED ();
     }
 #endif
 
@@ -804,12 +805,12 @@
   if (row < -1 || row >= t->nr)
     {
       printf ("tab_offset(): row=%d in %d-row table\n", row, t->nr);
-      abort ();
+      NOT_REACHED ();
     }
   if (col < -1 || col >= t->nc)
     {
       printf ("tab_offset(): col=%d in %d-column table\n", col, t->nc);
-      abort ();
+      NOT_REACHED ();
     }
 #endif
 
@@ -870,7 +871,7 @@
     case TAL_2:
       return OUTP_L_DOUBLE;
     default:
-      abort ();
+      NOT_REACHED ();
     }
 }
 
@@ -1256,7 +1257,7 @@
     case TAB_CENTER:
       return OUTP_CENTER;
     default:
-      abort ();
+      NOT_REACHED ();
     }
 }
 
@@ -1275,7 +1276,7 @@
     case TAL_2:
       return OUTP_L_DOUBLE;
     default:
-      abort ();
+      NOT_REACHED ();
     }
 }
 

Index: output/charts/plot-chart.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/output/charts/plot-chart.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- output/charts/plot-chart.c  4 Apr 2006 12:43:22 -0000       1.3
+++ output/charts/plot-chart.c  8 Jul 2006 03:05:52 -0000       1.4
@@ -36,6 +36,7 @@
 
 #include <libpspp/str.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <output/manager.h>
 #include <output/output.h>
 
@@ -76,7 +77,7 @@
   else if (orientation == TICK_ORDINATE ) 
       pl_flinerel_r(chart->lp, 0, position, -tickSize, position);
   else
-    assert(0);
+    NOT_REACHED ();
 
   if ( label ) {
     char buf[10];

Index: ui/terminal/ChangeLog
===================================================================
RCS file: /cvsroot/pspp/pspp/src/ui/terminal/ChangeLog,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- ui/terminal/ChangeLog       28 Jun 2006 05:49:03 -0000      1.12
+++ ui/terminal/ChangeLog       8 Jul 2006 03:05:52 -0000       1.13
@@ -1,3 +1,8 @@
+Fri Jul  7 20:03:42 2006  Ben Pfaff  <address@hidden>
+
+       * main.c: (main) Register SIGABRT with bug_handler also.
+       (bug_handler) Handle SIGABRT also.
+
 Tue Jun 27 22:44:56 2006  Ben Pfaff  <address@hidden>
 
        Fix regression in command name completion reported by John

Index: ui/terminal/command-line.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/ui/terminal/command-line.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- ui/terminal/command-line.c  25 Apr 2006 18:03:03 -0000      1.5
+++ ui/terminal/command-line.c  8 Jul 2006 03:05:52 -0000       1.6
@@ -26,6 +26,7 @@
 #include <getopt.h>
 #include <stdlib.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <libpspp/copyleft.h>
 #include <libpspp/message.h>
 #include <language/line-buffer.h>
@@ -180,7 +181,7 @@
        case 0:
          break;
        default:
-         assert (0);
+         NOT_REACHED ();
        }
     }
 

Index: ui/terminal/main.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/ui/terminal/main.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- ui/terminal/main.c  28 Jun 2006 05:49:03 -0000      1.13
+++ ui/terminal/main.c  8 Jul 2006 03:05:52 -0000       1.14
@@ -75,6 +75,7 @@
 int
 main (int argc, char **argv)
 {
+  signal (SIGABRT, bug_handler);
   signal (SIGSEGV, bug_handler);
   signal (SIGFPE, bug_handler);
   signal (SIGINT, interrupt_handler);
@@ -149,15 +150,14 @@
 {
   switch (sig) 
     {
+    case SIGABRT:
+      request_bug_report_and_abort("Assertion Failure/Abort");
     case SIGFPE:
       request_bug_report_and_abort("Floating Point Exception");
-      break;
     case SIGSEGV:
       request_bug_report_and_abort("Segmentation Violation");
-      break;
     default:
-      request_bug_report_and_abort("");
-      break;
+      request_bug_report_and_abort("Unknown");
     }
 }
 

Index: libpspp/assertion.h
===================================================================
RCS file: libpspp/assertion.h
diff -N libpspp/assertion.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ libpspp/assertion.h 8 Jul 2006 03:05:52 -0000       1.1
@@ -0,0 +1,42 @@
+/* PSPP - computes sample statistics.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   Written by John Darrington <address@hidden>
+   and Ben Pfaff <address@hidden>.
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA. */
+
+#ifndef __PSPP_ASSERT_H
+#define __PSPP_ASSERT_H
+
+#include <stdlib.h>
+#include "compiler.h"
+
+#define NOT_REACHED() do { assert (0); abort (); } while (0)
+
+#endif 
+
+#include <assert.h>
+
+#ifndef ASSERT_LEVEL
+#define ASSERT_LEVEL 2
+#endif
+
+#undef expensive_assert
+#if ASSERT_LEVEL >= 5
+#define expensive_assert(EXPR) assert (EXPR)
+#else
+#define expensive_assert(EXPR) ((void) 0)
+#endif




reply via email to

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