diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2009-12-11 13:26:32 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2009-12-11 13:26:32 +0000 |
commit | 8a4ad4adc13dafd7e6e63d6b222281a20f5ae30b (patch) | |
tree | cdac4e12a903061b2388df5a9f95a185166f36b7 /clang/lib | |
parent | 9f13fc7d63a93bc2e4ae9efcc685a49242d57dbb (diff) | |
download | bcm5719-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.cpp | 12 |
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; } } |