Frank H:
> As I said, GPC doesn't check for using undefined values at all.
> (Currently, and this isn't going to change soon, as this is not
> exactly trivial to implement in general ...)
I am with Frank on this. Many years ago, before Pascal existed, I used the
Watfor Fortran compiler. This compiler always checked for uninitialized
variables. The check was made by initializing all variables to the value 666
according to length (e.g., Boolean variables were set to x'66', fullword integers to
x'66666666' and so forth). Every time a value was fetched it was checked for
these values. This nearly doubled running times.
A bigger problem was that the value 666 sometimes came up naturally in the
course of computation. That would abort your run. It took a great deal of
tricky programming to prevent this from happening.
The alternative method of checking for uninitialized variables is to have a
separate set of flags, one for every variable and component of every array and
data structure. This not only costs heavily in execution time, it also costs
in storage.
Switching back and forth from checking On to checking Off might be more
complex than simply turning on and off the option. There may be consequences due
to having your variables change location.
All told, I don't think the check for uninitialized variables is worth the
effort.
Frank Rubin