[PATCH] D14769: [FunctionAttrs] Calls to libcalls don't cause a function to potentially recurse

Duncan P. N. Exon Smith via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 18 04:53:32 PST 2015


dexonsmith added a subscriber: dexonsmith.
dexonsmith added a comment.

Calls to exit() can recurse because of atexit() handlers.  The same might be true of other libcalls?

Also, other noreturn functions can recurse; it's a weird path but I don't think it's malformed:
-----------------------------------------------------------------------------------------------

void bar() noreturn;
int foo() {
static bool Return = false;
if (Return) return 5;
Return = true;
bar();
}

void bar() {
sink(foo());
exit();

}
-


Repository:
  rL LLVM

http://reviews.llvm.org/D14769





More information about the llvm-commits mailing list