summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/debugger
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2019-07-06 21:05:52 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2019-07-06 21:05:52 +0000
commit9e52c43090f8cd980167bbd2719878ae36bcf6b5 (patch)
tree6bce1fdee58d77561140122cc32ea388c48459df /lldb/packages/Python/lldbsuite/test/python_api/debugger
parenta7145c45a7ea138baac62f67f7730951a70c6703 (diff)
downloadbcm5719-llvm-9e52c43090f8cd980167bbd2719878ae36bcf6b5.tar.gz
bcm5719-llvm-9e52c43090f8cd980167bbd2719878ae36bcf6b5.zip
Treat the range of representable values of floating-point types as [-inf, +inf] not as [-max, +max].
Summary: Prior to r329065, we used [-max, max] as the range of representable values because LLVM's `fptrunc` did not guarantee defined behavior when truncating from a larger floating-point type to a smaller one. Now that has been fixed, we can make clang follow normal IEEE 754 semantics in this regard and take the larger range [-inf, +inf] as the range of representable values. In practice, this affects two parts of the frontend: * the constant evaluator no longer treats floating-point evaluations that result in +-inf as being undefined (because they no longer leave the range of representable values of the type) * UBSan no longer treats conversions to floating-point type that are outside the [-max, +max] range as being undefined In passing, also remove the float-divide-by-zero sanitizer from -fsanitize=undefined, on the basis that while it's undefined per C++ rules (and we disallow it in constant expressions for that reason), it is defined by Clang / LLVM / IEEE 754. Reviewers: rnk, BillyONeal Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D63793 llvm-svn: 365272
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/debugger')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud