diff options
author | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2000-12-28 16:06:56 +0000 |
---|---|---|
committer | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2000-12-28 16:06:56 +0000 |
commit | fcba9b58c677407263282a4028f55c33151d2ca5 (patch) | |
tree | bfaa1e9eb744f45ddd2e4496a1468d0edecfb312 | |
parent | 23a62df4fea25cfaa41382f283aa8b2411d7015b (diff) | |
download | guile-fcba9b58c677407263282a4028f55c33151d2ca5.tar.gz |
* Get rid of the annoying variable-gets-clobbered-by-longjmp warning.
-rw-r--r-- | HACKING | 9 | ||||
-rw-r--r-- | libguile/ChangeLog | 7 | ||||
-rw-r--r-- | libguile/continuations.c | 2 |
3 files changed, 10 insertions, 8 deletions
@@ -130,13 +130,8 @@ make-stds.texi. - The Guile tree should compile without warnings under the following GCC switches, which are the default in the current configure script: - -O2 -Wall -Wpointer-arith -Wmissing-prototypes The only warnings -which can be tolerated are those about variables being clobbered by -longjmp/vfork in eval.c. The variables in question are critical to -the interpreter's performance; as far as I can tell, it is -difficult/annoying to avoid these warnings without slowing the system -down substantially. (If you can figure out a good fix, I'd be happy -to see it.) + + -O2 -Wall -Wpointer-arith -Wmissing-prototypes Note that the warnings generated vary from one version of GCC to the next, and from one architecture to the next (apparently). To provide diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 665d820d6..1c940a079 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,5 +1,12 @@ 2000-12-28 Dirk Herrmann <D.Herrmann@tu-bs.de> + * continuations.c (scm_make_continuation): Make variable cont + volatile to let the compiler know that it won't be clobbered by + longjmp. (It wouldn't be anyway, but for some reason the compiler + is not able to see that.) + +2000-12-28 Dirk Herrmann <D.Herrmann@tu-bs.de> + This patch re-introduces the unused member "documentation" of struct scm_subr_entry as requested by Mikael Djurfeldt. diff --git a/libguile/continuations.c b/libguile/continuations.c index 12d313e50..8a160e91b 100644 --- a/libguile/continuations.c +++ b/libguile/continuations.c @@ -111,7 +111,7 @@ continuation_print (SCM obj, SCM port, scm_print_state *state) SCM scm_make_continuation (int *first) { - SCM cont; + volatile SCM cont; scm_contregs *continuation; scm_contregs *rootcont = SCM_CONTREGS (scm_rootcont); long stack_size; |