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