summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Blandy <jimb@red-bean.com>1996-12-18 21:42:26 +0000
committerJim Blandy <jimb@red-bean.com>1996-12-18 21:42:26 +0000
commit4d46a0279bb9dbe7e7399d6d2f1f54ccac01b987 (patch)
tree1489d4b167a2ab449f2854f9c140e1e64a5dd2b8
parent4dc2435aef1e447fe0cf370edb1db7d9f37fe385 (diff)
downloadguile-4d46a0279bb9dbe7e7399d6d2f1f54ccac01b987.tar.gz
*** empty log message ***
-rw-r--r--libguile/ChangeLog34
1 files changed, 34 insertions, 0 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index 258c3d9bd..e95de8284 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -1,3 +1,37 @@
+Wed Dec 18 14:57:57 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ Give GCC more control flow information, so it can be sure that
+ variables aren't used uninitialized.
+ * error.h (scm_error, scm_syserror, scm_syserror_msg,
+ scm_sysmissing, scm_num_overflow, scm_out_of_range,
+ scm_wrong_num_args, scm_wrong_type_arg, scm_memory_error,
+ scm_misc_error): Tell GCC that these functions never return.
+ * struct.c (scm_struct_ref, scm_struct_set_x): If we can't figure
+ out the field type, call abort if SCM_ASSERT returns, to placate
+ the optimizer.
+ * stacks.c (scm_make_stack, scm_last_stack_frame): abort if
+ scm_wta ever returns. We can't handle this case anyway, and this
+ gives the optimizer more information.
+ * unif.c (scm_uniform_vector_ref, scm_array_set_x): Abort if
+ scm_wta ever returns.
+
+ In some cases, the code is fine, but GCC isn't smart enough to
+ figure that out; this usually happens when one variable is only
+ initialized and used when a particular condition holds true, and
+ we know that condition will never change within a given invocation
+ of the function. In this case, we simply initialize the variables
+ to placate the compiler, hopefully to a value which will cause a
+ crash if it is ever actually used.
+ * print.c (scm_iprin1): Initialize mw_pos.
+ * read.c (scm_lreadrecparen): Initialize tl2, ans2.
+ * throw.c (scm_ithrow): Initialize dynpair.
+ * unif.c (scm_uniform_vector_ref): Initialize cra.
+ * struct.c (init_struct): Initialize prot.
+ * mbstrings.c (scm_print_mb_symbol): Initialize mw_pos and inc.
+
+ * strports.c (scm_eval_0str): Don't return uninitialized garbage
+ if EXPR contains no expressions.
+
Wed Dec 18 11:43:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
* eval.c, debug.h: Revert changes of Dec 16 and Nov 21. They