http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60109
--- Comment #1 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- This is an unresolvable problem. If we made __builtin_frame_address(N > 0) always return 0, then some useful use cases for debugging would be excluded. On the other hand, it is impossible to know whether it will return a useful value in other cases, since it is dependent on all code being: a) built with the same instruction set (arm or thumb) b) Having a consistent use of the frame pointer. My inclination is to resolve this as "won't fix".