[PATCH] These builtin functions set errno. Mark them accordingly.

hfinkel at anl.gov hfinkel at anl.gov
Tue Dec 9 12:18:32 PST 2014


Richard, as much as I don't like this, I'd like to move forward with this. While intercepting `math_errhandling` might allow us to pretend that the functions don't set errno (and it is not clear to me that we can really make the "C++" `math_errhandling` differ from the "C" `math_errhandling`), it does not address the fact that they actually do (and, thus, can cause miscompiles if they're reordered with calls to open(), etc.). I also recognize that this is somewhat self-inducing, because if we mark the functions as non-const, then they'll become real functions which are non-const, but if we mark them as const, then some of them are directly lowered, and thus really are const. The problem is marking calls as const which really aren't -- and some of these functions are never directly handled by the backends.

>>! In D3806#16, @mcrosier wrote:
> Rebase, per Hal's request.

Thanks! We, however, need a test case.

http://reviews.llvm.org/D3806






More information about the cfe-commits mailing list