Also note that GCC-4 by default rolls up functions it thinks it
can inline on a file-by-file basis. So if function A calls function B
and GCC thinks it can inline function B in function A, whether or
not you've told it to, it will. You'll then get an error for function
B but the gdb backtrace will list the problem as being in function A.
I've noticed this when trying to debug kernels. I personally think
its a mistake, along with the idiotic default numeric optimizations
that break bounds checks.
-Matt