* Dave Anderson [2008-05-13 15:36]:
Bernhard Walle wrote:
> When crash is compiled with gcc 4.3 and -O2, the __builtin_return_address()
> causes crash to crash. See also [1] for a discussion about that.
It appears that [1] only describes a problem if you ask for more frames
than exist. Given the usage in crash, it's impossible to have a frame count
of less than 4. So it must be some other bug, no?
Yes. I only referenced to that bug to state that the behaviour is
undefined, and it's not a gcc bug per definition.
However, I tried to track down the problem a bit. In a test program, I
encountered that when __builtin_frame_address(i) is zero, then the
program crashes when __builtin_frame_address(i+1) is executed.
However, changing that in crash doesn't help. It really crashes in
__builtin_return_address(1). Tracking that down is out of my knowledge.
I used the same compiler flags in crash and the test program.
Bernhard