From 88f2d6c167a575e5d9c62ecb211ff4d825b09ed3 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Tue, 25 Nov 2008 19:00:29 +0000 Subject: convertToSignExtendedInteger should return opInvalidOp instead of asserting if sematics of float does not allow arithmetics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60042 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Support/APFloat.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/Support/APFloat.cpp') diff --git a/lib/Support/APFloat.cpp b/lib/Support/APFloat.cpp index a65e55afb5..128fee4f01 100644 --- a/lib/Support/APFloat.cpp +++ b/lib/Support/APFloat.cpp @@ -117,6 +117,11 @@ namespace { && "Compile-time arithmetic does not support these semantics"); } + static inline bool + isArithmeticOk(const llvm::fltSemantics &semantics) { + return semantics.arithmeticOK; + } + /* Return the value of a decimal exponent of the form [+-]ddddddd. @@ -1787,7 +1792,8 @@ APFloat::convertToSignExtendedInteger(integerPart *parts, unsigned int width, const integerPart *src; unsigned int dstPartsCount, truncatedBits; - assertArithmeticOK(*semantics); + if (!isArithmeticOk(*semantics)) + return opInvalidOp; *isExact = false; -- cgit v1.2.3