From c93bee09ac0ebfad4efd7a7d195ce586d9ad50ed Mon Sep 17 00:00:00 2001 From: Michael Gottesman Date: Tue, 2 Jul 2013 15:50:05 +0000 Subject: [PATCH] [APFloat] Swap an early out check so we do not dereference str.end(). Originally if D.firstSigDigit == str.end(), we will have already dereferenced D.firstSigDigit in the first predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185437 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Support/APFloat.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Support/APFloat.cpp b/lib/Support/APFloat.cpp index ae4a101feba..8713ede6a17 100644 --- a/lib/Support/APFloat.cpp +++ b/lib/Support/APFloat.cpp @@ -2488,7 +2488,7 @@ APFloat::convertFromDecimalString(StringRef str, roundingMode rounding_mode) // D->firstSigDigit equals str.end(), every digit must be a zero and there can // be at most one dot. On the other hand, if we have a zero with a non-zero // exponent, then we know that D.firstSigDigit will be non-numeric. - if (decDigitValue(*D.firstSigDigit) >= 10U || D.firstSigDigit == str.end()) { + if (D.firstSigDigit == str.end() || decDigitValue(*D.firstSigDigit) >= 10U) { category = fcZero; fs = opOK;