__attribute__((returns_twice))

Specifies that a function may return more than one time because of multithreaded or non-linear execution.

Syntax
  function-declaration  __attribute__((returns_twice));
  
  function-definition  __attribute__((returns_twice));
  
Remarks

This attribute specifies to the compiler that the program's flow of execution might enter and leave a function without explicit function calls and returns. For example, the standard library's setjmp() function allows a program to change its execution flow arbitrarily.

With this information, the compiler limits optimizations that require explicit program flow.