The C standards say that the compiler is allowed to optimize away
changes to local variables within a function between a call to
setjmp() and a later call to longjmp(), unless the local variables
are volatile-qualified.
The 'dict' local variable in sfm_open_reader() fits this
description but wasn't volatile-qualified. GCC in fact optimized
out the changes on my system, and this commit fixes that.
struct sfm_extension_record *extensions[32];
- struct dictionary *dict = NULL;
+ struct dictionary *volatile dict = NULL;
size_t i;
/* Create and initialize reader. */