https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93021
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I looked into uf2-samdx1 and when it sets the SP, it is really really bad idea because it does not copy the current stack frames and would mess up GCC knownledge of the current stack. So YES the error is still valid in this case. I think you need to rewrite these function in pure assembly; all other task switching software is written in pure assembly when doing the switching part.