#languages
Well, not before the compile step, but certainly before you execute.
Here's a trivial example I just tried…
main()
{
int foo;
printf("%d\n", foo);
}
(the square brackets above are actually curly braces, but CIS helpfully
translates them for us).
Then I did…
5> make test
…..
Compiling test.c
printf("%d\n", foo);
test.c 7 Warning 94: uninitialized auto variable "foo"
As you can see, it caught the use of the variable before it was
initialized.