diff options
Diffstat (limited to 'lib/Analysis/ScanfFormatString.cpp')
| -rw-r--r-- | lib/Analysis/ScanfFormatString.cpp | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/Analysis/ScanfFormatString.cpp b/lib/Analysis/ScanfFormatString.cpp index 534225985460..8398a4b82d5a 100644 --- a/lib/Analysis/ScanfFormatString.cpp +++ b/lib/Analysis/ScanfFormatString.cpp @@ -251,8 +251,7 @@ ArgType ScanfSpecifier::getArgType(ASTContext &Ctx) const {          case LengthModifier::AsIntMax:            return ArgType::PtrTo(ArgType(Ctx.getIntMaxType(), "intmax_t"));          case LengthModifier::AsSizeT: -          // FIXME: ssize_t. -          return ArgType(); +          return ArgType::PtrTo(ArgType(Ctx.getSignedSizeType(), "ssize_t"));          case LengthModifier::AsPtrDiff:            return ArgType::PtrTo(ArgType(Ctx.getPointerDiffType(), "ptrdiff_t"));          case LengthModifier::AsLongDouble: @@ -292,8 +291,8 @@ ArgType ScanfSpecifier::getArgType(ASTContext &Ctx) const {          case LengthModifier::AsSizeT:            return ArgType::PtrTo(ArgType(Ctx.getSizeType(), "size_t"));          case LengthModifier::AsPtrDiff: -          // FIXME: Unsigned version of ptrdiff_t? -          return ArgType(); +          return ArgType::PtrTo( +              ArgType(Ctx.getUnsignedPointerDiffType(), "unsigned ptrdiff_t"));          case LengthModifier::AsLongDouble:            // GNU extension.            return ArgType::PtrTo(Ctx.UnsignedLongLongTy); @@ -386,7 +385,7 @@ ArgType ScanfSpecifier::getArgType(ASTContext &Ctx) const {          case LengthModifier::AsIntMax:            return ArgType::PtrTo(ArgType(Ctx.getIntMaxType(), "intmax_t"));          case LengthModifier::AsSizeT: -          return ArgType(); // FIXME: ssize_t +          return ArgType::PtrTo(ArgType(Ctx.getSignedSizeType(), "ssize_t"));          case LengthModifier::AsPtrDiff:            return ArgType::PtrTo(ArgType(Ctx.getPointerDiffType(), "ptrdiff_t"));          case LengthModifier::AsLongDouble:  | 
