[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