> Exception handling code can significantly increase the size of the stack
> frame and lead to quite some increase in executable size so you really
> don't want to do it for inlined functions that get called a lot.
I know that very old implementations of C++ would add to the stack (to
store basically a jmp_buf) when doing a try. However, I'm under the
impression that all modern compilers use zero overhead exceptions, where
the only overhead happens if you actually throw -- plus, as we agree, the
tables in the executable on disk. If you don't have a goof VM system,
those can hurt a lot :-)
Hmm. Everything I know about exception implementation actually comes from
my CodeWarrior days plus a bit of GCC. Could it be that MSDEV has
specialness in this area?
I just disassembled a MSDEV 7.1 compiled program, and it appears that it
actually puts all functions with exception information into a special list,
so they don't actually implement zero-overhead exceptions. Curious. Thanks
for the heads up!
Cheers,
/ h+
|