clang
3.7.0
|
#include <FormatString.h>
Public Member Functions | |
FormatSpecifier (bool isPrintf) | |
void | setLengthModifier (LengthModifier lm) |
void | setUsesPositionalArg () |
void | setArgIndex (unsigned i) |
unsigned | getArgIndex () const |
unsigned | getPositionalArgIndex () const |
const LengthModifier & | getLengthModifier () const |
const OptionalAmount & | getFieldWidth () const |
void | setFieldWidth (const OptionalAmount &Amt) |
bool | usesPositionalArg () const |
bool | hasValidLengthModifier (const TargetInfo &Target) const |
bool | hasStandardLengthModifier () const |
Optional< LengthModifier > | getCorrectedLengthModifier () const |
bool | hasStandardConversionSpecifier (const LangOptions &LangOpt) const |
bool | hasStandardLengthConversionCombination () const |
Static Public Member Functions | |
static bool | namedTypeToLengthModifier (QualType QT, LengthModifier &LM) |
Protected Attributes | |
LengthModifier | LM |
OptionalAmount | FieldWidth |
ConversionSpecifier | CS |
bool | UsesPositionalArg |
unsigned | argIndex |
Definition at line 336 of file FormatString.h.
|
inline |
Definition at line 347 of file FormatString.h.
|
inline |
Definition at line 360 of file FormatString.h.
References argIndex.
Optional< LengthModifier > FormatSpecifier::getCorrectedLengthModifier | ( | ) | const |
Definition at line 862 of file FormatString.cpp.
References clang::analyze_format_string::LengthModifier::AsLongDouble, clang::analyze_format_string::LengthModifier::AsLongLong, clang::analyze_format_string::LengthModifier::AsQuad, CS, clang::analyze_format_string::LengthModifier::getKind(), clang::analyze_format_string::ConversionSpecifier::getKind(), clang::analyze_format_string::ConversionSpecifier::isAnyIntArg(), LM, clang::analyze_format_string::ConversionSpecifier::nArg, clang::None, and clang::analyze_format_string::LengthModifier::setKind().
|
inline |
Definition at line 372 of file FormatString.h.
References FieldWidth.
|
inline |
Definition at line 368 of file FormatString.h.
References LM.
|
inline |
Definition at line 364 of file FormatString.h.
References argIndex.
bool FormatSpecifier::hasStandardConversionSpecifier | ( | const LangOptions & | LangOpt | ) | const |
Definition at line 802 of file FormatString.cpp.
References clang::analyze_format_string::ConversionSpecifier::aArg, clang::analyze_format_string::ConversionSpecifier::AArg, clang::analyze_format_string::ConversionSpecifier::cArg, clang::analyze_format_string::ConversionSpecifier::CArg, CS, clang::analyze_format_string::ConversionSpecifier::dArg, clang::analyze_format_string::ConversionSpecifier::DArg, clang::analyze_format_string::ConversionSpecifier::eArg, clang::analyze_format_string::ConversionSpecifier::EArg, clang::analyze_format_string::ConversionSpecifier::fArg, clang::analyze_format_string::ConversionSpecifier::FArg, clang::analyze_format_string::ConversionSpecifier::FreeBSDbArg, clang::analyze_format_string::ConversionSpecifier::FreeBSDDArg, clang::analyze_format_string::ConversionSpecifier::FreeBSDrArg, clang::analyze_format_string::ConversionSpecifier::FreeBSDyArg, clang::analyze_format_string::ConversionSpecifier::gArg, clang::analyze_format_string::ConversionSpecifier::GArg, clang::analyze_format_string::ConversionSpecifier::getKind(), clang::analyze_format_string::ConversionSpecifier::iArg, clang::analyze_format_string::ConversionSpecifier::InvalidSpecifier, clang::analyze_format_string::ConversionSpecifier::nArg, clang::analyze_format_string::ConversionSpecifier::oArg, clang::analyze_format_string::ConversionSpecifier::OArg, clang::analyze_format_string::ConversionSpecifier::ObjCObjArg, clang::analyze_format_string::ConversionSpecifier::pArg, clang::analyze_format_string::ConversionSpecifier::PercentArg, clang::analyze_format_string::ConversionSpecifier::PrintErrno, clang::analyze_format_string::ConversionSpecifier::sArg, clang::analyze_format_string::ConversionSpecifier::SArg, clang::analyze_format_string::ConversionSpecifier::ScanListArg, clang::analyze_format_string::ConversionSpecifier::uArg, clang::analyze_format_string::ConversionSpecifier::UArg, clang::analyze_format_string::ConversionSpecifier::xArg, clang::analyze_format_string::ConversionSpecifier::XArg, and clang::analyze_format_string::ConversionSpecifier::ZArg.
bool FormatSpecifier::hasStandardLengthConversionCombination | ( | ) | const |
Definition at line 845 of file FormatString.cpp.
References clang::analyze_format_string::LengthModifier::AsLongDouble, CS, clang::analyze_format_string::ConversionSpecifier::dArg, clang::analyze_format_string::LengthModifier::getKind(), clang::analyze_format_string::ConversionSpecifier::getKind(), clang::analyze_format_string::ConversionSpecifier::iArg, LM, clang::analyze_format_string::ConversionSpecifier::oArg, clang::analyze_format_string::ConversionSpecifier::uArg, clang::analyze_format_string::ConversionSpecifier::xArg, and clang::analyze_format_string::ConversionSpecifier::XArg.
bool FormatSpecifier::hasStandardLengthModifier | ( | ) | const |
Definition at line 778 of file FormatString.cpp.
References clang::analyze_format_string::LengthModifier::AsAllocate, clang::analyze_format_string::LengthModifier::AsChar, clang::analyze_format_string::LengthModifier::AsInt32, clang::analyze_format_string::LengthModifier::AsInt3264, clang::analyze_format_string::LengthModifier::AsInt64, clang::analyze_format_string::LengthModifier::AsIntMax, clang::analyze_format_string::LengthModifier::AsLong, clang::analyze_format_string::LengthModifier::AsLongDouble, clang::analyze_format_string::LengthModifier::AsLongLong, clang::analyze_format_string::LengthModifier::AsMAllocate, clang::analyze_format_string::LengthModifier::AsPtrDiff, clang::analyze_format_string::LengthModifier::AsQuad, clang::analyze_format_string::LengthModifier::AsShort, clang::analyze_format_string::LengthModifier::AsSizeT, clang::analyze_format_string::LengthModifier::AsWide, clang::analyze_format_string::LengthModifier::getKind(), LM, and clang::analyze_format_string::LengthModifier::None.
bool FormatSpecifier::hasValidLengthModifier | ( | const TargetInfo & | Target | ) | const |
Definition at line 626 of file FormatString.cpp.
References clang::analyze_format_string::ConversionSpecifier::aArg, clang::analyze_format_string::ConversionSpecifier::AArg, clang::analyze_format_string::LengthModifier::AsAllocate, clang::analyze_format_string::LengthModifier::AsChar, clang::analyze_format_string::LengthModifier::AsInt32, clang::analyze_format_string::LengthModifier::AsInt3264, clang::analyze_format_string::LengthModifier::AsInt64, clang::analyze_format_string::LengthModifier::AsIntMax, clang::analyze_format_string::LengthModifier::AsLong, clang::analyze_format_string::LengthModifier::AsLongDouble, clang::analyze_format_string::LengthModifier::AsLongLong, clang::analyze_format_string::LengthModifier::AsMAllocate, clang::analyze_format_string::LengthModifier::AsPtrDiff, clang::analyze_format_string::LengthModifier::AsQuad, clang::analyze_format_string::LengthModifier::AsShort, clang::analyze_format_string::LengthModifier::AsSizeT, clang::analyze_format_string::LengthModifier::AsWide, clang::analyze_format_string::ConversionSpecifier::cArg, clang::analyze_format_string::ConversionSpecifier::CArg, CS, clang::analyze_format_string::ConversionSpecifier::dArg, clang::analyze_format_string::ConversionSpecifier::DArg, clang::analyze_format_string::ConversionSpecifier::eArg, clang::analyze_format_string::ConversionSpecifier::EArg, clang::analyze_format_string::ConversionSpecifier::fArg, clang::analyze_format_string::ConversionSpecifier::FArg, clang::analyze_format_string::ConversionSpecifier::FreeBSDrArg, clang::analyze_format_string::ConversionSpecifier::FreeBSDyArg, clang::analyze_format_string::ConversionSpecifier::gArg, clang::analyze_format_string::ConversionSpecifier::GArg, clang::analyze_format_string::LengthModifier::getKind(), clang::analyze_format_string::ConversionSpecifier::getKind(), clang::TargetInfo::getTriple(), clang::analyze_format_string::ConversionSpecifier::iArg, LM, clang::analyze_format_string::ConversionSpecifier::nArg, clang::analyze_format_string::LengthModifier::None, clang::analyze_format_string::ConversionSpecifier::oArg, clang::analyze_format_string::ConversionSpecifier::OArg, clang::analyze_format_string::ConversionSpecifier::sArg, clang::analyze_format_string::ConversionSpecifier::SArg, clang::analyze_format_string::ConversionSpecifier::ScanListArg, clang::analyze_format_string::ConversionSpecifier::uArg, clang::analyze_format_string::ConversionSpecifier::UArg, clang::analyze_format_string::ConversionSpecifier::xArg, clang::analyze_format_string::ConversionSpecifier::XArg, and clang::analyze_format_string::ConversionSpecifier::ZArg.
|
static |
For a TypedefType QT, if it is a named integer type such as size_t, assign the appropriate value to LM and return true.
Definition at line 875 of file FormatString.cpp.
References clang::analyze_format_string::LengthModifier::AsIntMax, clang::analyze_format_string::LengthModifier::AsPtrDiff, clang::analyze_format_string::LengthModifier::AsSizeT, clang::NamedDecl::getIdentifier(), clang::IdentifierInfo::getName(), clang::TypedefNameDecl::getUnderlyingType(), and clang::analyze_format_string::LengthModifier::setKind().
|
inline |
Definition at line 356 of file FormatString.h.
References argIndex.
Referenced by clang::analyze_format_string::ParseArgPosition().
|
inline |
Definition at line 376 of file FormatString.h.
References FieldWidth.
Referenced by clang::analyze_format_string::ParseFieldWidth().
|
inline |
Definition at line 350 of file FormatString.h.
References LM.
Referenced by clang::analyze_format_string::ParseLengthModifier().
|
inline |
Definition at line 354 of file FormatString.h.
References UsesPositionalArg.
Referenced by clang::analyze_format_string::ParseArgPosition().
|
inline |
Definition at line 380 of file FormatString.h.
References UsesPositionalArg.
|
protected |
Definition at line 345 of file FormatString.h.
Referenced by getArgIndex(), getPositionalArgIndex(), and setArgIndex().
|
protected |
Definition at line 340 of file FormatString.h.
Referenced by clang::analyze_scanf::ScanfSpecifier::consumesDataArgument(), clang::analyze_printf::PrintfSpecifier::getConversionSpecifier(), clang::analyze_scanf::ScanfSpecifier::getConversionSpecifier(), getCorrectedLengthModifier(), hasStandardConversionSpecifier(), hasStandardLengthConversionCombination(), hasValidLengthModifier(), clang::analyze_printf::PrintfSpecifier::setConversionSpecifier(), and clang::analyze_scanf::ScanfSpecifier::setConversionSpecifier().
|
protected |
Definition at line 339 of file FormatString.h.
Referenced by getFieldWidth(), and setFieldWidth().
|
protected |
Definition at line 338 of file FormatString.h.
Referenced by getCorrectedLengthModifier(), getLengthModifier(), hasStandardLengthConversionCombination(), hasStandardLengthModifier(), hasValidLengthModifier(), and setLengthModifier().
|
protected |
Positional arguments, an IEEE extension: IEEE Std 1003.1, 2004 Edition http://www.opengroup.org/onlinepubs/009695399/functions/printf.html
Definition at line 344 of file FormatString.h.
Referenced by setUsesPositionalArg(), clang::analyze_printf::PrintfSpecifier::setUsesPositionalArg(), usesPositionalArg(), and clang::analyze_printf::PrintfSpecifier::usesPositionalArg().