zahiraam added inline comments.
================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:2321-2328
+ if ((FD->hasAttr<ConstAttr>() && !ErrnoOverriden && !OptNone) ||
((ConstWithoutErrnoAndExceptions || ConstWithoutExceptions) &&
- (!ConstWithoutErrnoAndExceptions || (!getLangOpts().MathErrno)))) {
+ (!ConstWithoutErrnoAndExceptions ||
+ (!getLangOpts().MathErrno && !ErrnoOverriden && !OptNone) ||
+ // If math-errno was enabled on command line but overriden to false
+ // via '#pragma float_control(precise, off))', and optimizations are
+ // enabled, generate intrinsics.
----------------
aaron.ballman wrote:
> I think this has gotten sufficiently complex that it might be worth splitting
> the logic out a bit more:
> ```
> bool Optimize = FD->hasAttr<ConstAttr>() && !ErrnoOverriden && !OptNone;
> if (!Optimize) Optimize = FD->hasAttr<ConstAttr>() && !ErrnoOverriden &&
> !OptNone;
> ... and so on ...
> ```
> WDYT?
I understand I need to split the logic, but I don't get your proposal here. Do
you mean?
```
bool Optimize = FD->hasAttr<ConstAttr>() && !ErrnoOverriden && !OptNone;
if (!Optimize) Optimize = !getLangOpts().MathErrno && !ErrnoOverriden &&
!OptNone;
... and so on ...
```
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151834/new/
https://reviews.llvm.org/D151834
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits