aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2009-12-11 13:26:32 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2009-12-11 13:26:32 +0000
commit330358056acf05445273f4f4004dfd283a2ecc4d (patch)
treea616eaca2fed256b58e244d4701c072b4542286a /lib
parent3a1737030e3c8d209987325c61dacb8e4a65123b (diff)
Use StringRef.getAsInteger instead of temporary string + strtol. No intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91118 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/AST/ExprConstant.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index ea30b19309..13831dc1f5 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -1548,16 +1548,10 @@ bool FloatExprEvaluator::VisitCallExpr(const CallExpr *E) {
if (!S->isWide()) {
const llvm::fltSemantics &Sem =
Info.Ctx.getFloatTypeSemantics(E->getType());
- llvm::SmallString<16> s;
- s.append(S->getStrData(), S->getStrData() + S->getByteLength());
- s += '\0';
- long l;
- char *endp;
- l = strtol(&s[0], &endp, 0);
- if (endp != s.end()-1)
+ unsigned Type = 0;
+ if (!S->getString().empty() && S->getString().getAsInteger(0, Type))
return false;
- unsigned type = (unsigned int)l;;
- Result = llvm::APFloat::getNaN(Sem, false, type);
+ Result = llvm::APFloat::getNaN(Sem, false, Type);
return true;
}
}