Disable tail call if the callee function contain builtin_frame_address or builtin_return_address.
Otherwise, tail call optimization will remove the frame pointer and return address restoration which will make the above two builtin functions get incorrect value.
E.g.
void *callee (char *p) { return __builtin_return_address (1); } void *caller (void) { char *save = (char*) alloca (4); return callee (save); }
Period at the end of comment.