summaryrefslogtreecommitdiffstats
path: root/clang/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
commit8a4ad4adc13dafd7e6e63d6b222281a20f5ae30b (patch)
treecdac4e12a903061b2388df5a9f95a185166f36b7 /clang/lib
parent9f13fc7d63a93bc2e4ae9efcc685a49242d57dbb (diff)
downloadbcm5719-llvm-8a4ad4adc13dafd7e6e63d6b222281a20f5ae30b.tar.gz
bcm5719-llvm-8a4ad4adc13dafd7e6e63d6b222281a20f5ae30b.zip
Use StringRef.getAsInteger instead of temporary string + strtol. No intended functionality change.
llvm-svn: 91118
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/AST/ExprConstant.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index ea30b193094..13831dc1f52 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/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;
}
}
OpenPOWER on IntegriCloud