CompuServe Messages

languages

    12-Feb-92 04:44:10
Sb: #20271-languages
Fm: John Toebes/SYSOP 70007,3467
To: Shraddhan 70374,754
Yes, the compiler can catch uninitialized variables within the scope of a subroutine. It obviously can't follow all flows, but due to the global analysis phase it can get quite close (using the REF/DEF model). There are a few pathological cases that can skip by it (such as conditional initialization of a variable) but in practice these are so rare to not be an issue. SAS/C has a concept that I introduced for the Amiga of __asm specifications for routines. You can declare an external routine as __asm and then give the register conventions for the calling sequence. This combined with the registerized parameters in general for code (using the -rr option on the compiler) can lead to some quite good code. Also, the assembler will output line number information that the debugger understands so that you can debug your assembler code at the SOURCE level – a strange concept I might add.