This patch proposes a new function attribute, willreturn, to indicate that a call of this function will either exhibit undefined behavior or comes back to the invoking call site.
This attribute guarantees that the function doesn't have any loop, recursion or terminating function like abort, exit.
We need an argue about handling an exception and invoke.
You should allow exceptions here, I think. That would make will-return and orthogonal to nounwind (aka. no-throw).
We can also think about removing the hypen, idk what is best.