Le 17/10/2019 à 14:07, Joerg Sonnenberger a écrit :
On Thu, Oct 17, 2019 at 12:43:48PM +0200, Rhialto wrote:
On Thu 17 Oct 2019 at 11:07:44 +0200, Maxime Villard wrote:
I guess we whould disable the messages on this particular file for now as
the others have suggested, and file a PR in LLVM/GCC, because apart from
a compiler bug I don't see what it could be.
The original error has no place in a freestanding build anyway, since
vfork (and longjmp probably too) are concepts of hosted implementations
only.
Yes and no. GCC has a hard-coded list of functions that always get the
returns_twice attribute. (v)fork is on that list, but also savectx. So
the fix is not to disable the warning, but rename the function.
Joerg
It appears that the savectx in this function is unused.
It copies %rsp and %rbp in pcb1, but nothing can be done with that. pcb1 gets
copied into pcb2, but pcb2->pcb_{rsp,rbp} get overwritten at the end of the
function.
So the savectx block can be dropped.