Rename analyze_format_string::ArgTypeResult to ArgType
Also remove redundant constructors and unused member functions. llvm-svn: 161403
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
#include "clang/Analysis/Analyses/FormatString.h"
|
||||
#include "FormatStringParsing.h"
|
||||
|
||||
using clang::analyze_format_string::ArgTypeResult;
|
||||
using clang::analyze_format_string::ArgType;
|
||||
using clang::analyze_format_string::FormatStringHandler;
|
||||
using clang::analyze_format_string::LengthModifier;
|
||||
using clang::analyze_format_string::OptionalAmount;
|
||||
@@ -241,20 +241,20 @@ bool clang::analyze_format_string::ParsePrintfString(FormatStringHandler &H,
|
||||
// Methods on PrintfSpecifier.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
ArgTypeResult PrintfSpecifier::getArgType(ASTContext &Ctx,
|
||||
bool IsObjCLiteral) const {
|
||||
ArgType PrintfSpecifier::getArgType(ASTContext &Ctx,
|
||||
bool IsObjCLiteral) const {
|
||||
const PrintfConversionSpecifier &CS = getConversionSpecifier();
|
||||
|
||||
if (!CS.consumesDataArgument())
|
||||
return ArgTypeResult::Invalid();
|
||||
return ArgType::Invalid();
|
||||
|
||||
if (CS.getKind() == ConversionSpecifier::cArg)
|
||||
switch (LM.getKind()) {
|
||||
case LengthModifier::None: return Ctx.IntTy;
|
||||
case LengthModifier::AsLong:
|
||||
return ArgTypeResult(ArgTypeResult::WIntTy, "wint_t");
|
||||
return ArgType(ArgType::WIntTy, "wint_t");
|
||||
default:
|
||||
return ArgTypeResult::Invalid();
|
||||
return ArgType::Invalid();
|
||||
}
|
||||
|
||||
if (CS.isIntArg())
|
||||
@@ -263,22 +263,22 @@ ArgTypeResult PrintfSpecifier::getArgType(ASTContext &Ctx,
|
||||
// GNU extension.
|
||||
return Ctx.LongLongTy;
|
||||
case LengthModifier::None: return Ctx.IntTy;
|
||||
case LengthModifier::AsChar: return ArgTypeResult::AnyCharTy;
|
||||
case LengthModifier::AsChar: return ArgType::AnyCharTy;
|
||||
case LengthModifier::AsShort: return Ctx.ShortTy;
|
||||
case LengthModifier::AsLong: return Ctx.LongTy;
|
||||
case LengthModifier::AsLongLong:
|
||||
case LengthModifier::AsQuad:
|
||||
return Ctx.LongLongTy;
|
||||
case LengthModifier::AsIntMax:
|
||||
return ArgTypeResult(Ctx.getIntMaxType(), "intmax_t");
|
||||
return ArgType(Ctx.getIntMaxType(), "intmax_t");
|
||||
case LengthModifier::AsSizeT:
|
||||
// FIXME: How to get the corresponding signed version of size_t?
|
||||
return ArgTypeResult();
|
||||
return ArgType();
|
||||
case LengthModifier::AsPtrDiff:
|
||||
return ArgTypeResult(Ctx.getPointerDiffType(), "ptrdiff_t");
|
||||
return ArgType(Ctx.getPointerDiffType(), "ptrdiff_t");
|
||||
case LengthModifier::AsAllocate:
|
||||
case LengthModifier::AsMAllocate:
|
||||
return ArgTypeResult::Invalid();
|
||||
return ArgType::Invalid();
|
||||
}
|
||||
|
||||
if (CS.isUIntArg())
|
||||
@@ -294,16 +294,16 @@ ArgTypeResult PrintfSpecifier::getArgType(ASTContext &Ctx,
|
||||
case LengthModifier::AsQuad:
|
||||
return Ctx.UnsignedLongLongTy;
|
||||
case LengthModifier::AsIntMax:
|
||||
return ArgTypeResult(Ctx.getUIntMaxType(), "uintmax_t");
|
||||
return ArgType(Ctx.getUIntMaxType(), "uintmax_t");
|
||||
case LengthModifier::AsSizeT:
|
||||
return ArgTypeResult(Ctx.getSizeType(), "size_t");
|
||||
return ArgType(Ctx.getSizeType(), "size_t");
|
||||
case LengthModifier::AsPtrDiff:
|
||||
// FIXME: How to get the corresponding unsigned
|
||||
// version of ptrdiff_t?
|
||||
return ArgTypeResult();
|
||||
return ArgType();
|
||||
case LengthModifier::AsAllocate:
|
||||
case LengthModifier::AsMAllocate:
|
||||
return ArgTypeResult::Invalid();
|
||||
return ArgType::Invalid();
|
||||
}
|
||||
|
||||
if (CS.isDoubleArg()) {
|
||||
@@ -317,29 +317,29 @@ ArgTypeResult PrintfSpecifier::getArgType(ASTContext &Ctx,
|
||||
if (LM.getKind() == LengthModifier::AsWideChar) {
|
||||
if (IsObjCLiteral)
|
||||
return Ctx.getPointerType(Ctx.UnsignedShortTy.withConst());
|
||||
return ArgTypeResult(ArgTypeResult::WCStrTy, "wchar_t *");
|
||||
return ArgType(ArgType::WCStrTy, "wchar_t *");
|
||||
}
|
||||
return ArgTypeResult::CStrTy;
|
||||
return ArgType::CStrTy;
|
||||
case ConversionSpecifier::SArg:
|
||||
if (IsObjCLiteral)
|
||||
return Ctx.getPointerType(Ctx.UnsignedShortTy.withConst());
|
||||
return ArgTypeResult(ArgTypeResult::WCStrTy, "wchar_t *");
|
||||
return ArgType(ArgType::WCStrTy, "wchar_t *");
|
||||
case ConversionSpecifier::CArg:
|
||||
if (IsObjCLiteral)
|
||||
return Ctx.UnsignedShortTy;
|
||||
return ArgTypeResult(Ctx.WCharTy, "wchar_t");
|
||||
return ArgType(Ctx.WCharTy, "wchar_t");
|
||||
case ConversionSpecifier::pArg:
|
||||
return ArgTypeResult::CPointerTy;
|
||||
return ArgType::CPointerTy;
|
||||
case ConversionSpecifier::nArg:
|
||||
return Ctx.getPointerType(Ctx.IntTy);
|
||||
case ConversionSpecifier::ObjCObjArg:
|
||||
return ArgTypeResult::ObjCPointerTy;
|
||||
return ArgType::ObjCPointerTy;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// FIXME: Handle other cases.
|
||||
return ArgTypeResult();
|
||||
return ArgType();
|
||||
}
|
||||
|
||||
bool PrintfSpecifier::fixType(QualType QT, const LangOptions &LangOpt,
|
||||
@@ -457,7 +457,7 @@ bool PrintfSpecifier::fixType(QualType QT, const LangOptions &LangOpt,
|
||||
namedTypeToLengthModifier(QT, LM);
|
||||
|
||||
// If fixing the length modifier was enough, we are done.
|
||||
const analyze_printf::ArgTypeResult &ATR = getArgType(Ctx, IsObjCLiteral);
|
||||
const analyze_printf::ArgType &ATR = getArgType(Ctx, IsObjCLiteral);
|
||||
if (hasValidLengthModifier() && ATR.isValid() && ATR.matchesType(Ctx, QT))
|
||||
return true;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user