https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70220
--- Comment #15 from Wink Saville <wink at saville dot com> --- (In reply to H.J. Lu from comment #14) > (In reply to Wink Saville from comment #13) > > > Compiler should be free to use rbp in anyway it sees fit. Spec shouldn't > > > say anything other than rbp is special to compiler. > > > > If the compiler does decide to change rbp it must save original value, > > correct? > > Yes. But you don't know how/when it happens. For the debugger use case and maybe for the thread context switch I need access to all registers original values, rbp included. I'd like to propose, for the narrow case of using the "all" parameter we specify that the compiler will either always not use rbp or that it always saves rbp at a known location. In all other cases rbp is unavailable for use by C code.