clang
9.0.0
|
#include "clang/AST/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 | setVectorNumElts (const OptionalAmount &Amt) |
const OptionalAmount & | getVectorNumElts () const |
void | setFieldWidth (const OptionalAmount &Amt) |
bool | usesPositionalArg () const |
bool | hasValidLengthModifier (const TargetInfo &Target, const LangOptions &LO) 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) |
For a TypedefType QT, if it is a named integer type such as size_t, assign the appropriate value to LM and return true. More... | |
Protected Attributes | |
LengthModifier | LM |
OptionalAmount | FieldWidth |
ConversionSpecifier | CS |
OptionalAmount | VectorNumElts |
bool | UsesPositionalArg |
Positional arguments, an IEEE extension: IEEE Std 1003.1, 2004 Edition http://www.opengroup.org/onlinepubs/009695399/functions/printf.html. More... | |
unsigned | argIndex |
Definition at line 383 of file FormatString.h.
|
inline |
Definition at line 396 of file FormatString.h.
|
inline |
Definition at line 410 of file FormatString.h.
Optional< LengthModifier > FormatSpecifier::getCorrectedLengthModifier | ( | ) | const |
Definition at line 961 of file FormatString.cpp.
References clang::analyze_format_string::LengthModifier::AsLongDouble, clang::analyze_format_string::LengthModifier::AsLongLong, clang::analyze_format_string::LengthModifier::AsQuad, clang::analyze_format_string::ConversionSpecifier::nArg, and clang::analyze_format_string::LengthModifier::setKind().
|
inline |
Definition at line 422 of file FormatString.h.
|
inline |
Definition at line 418 of file FormatString.h.
|
inline |
Definition at line 414 of file FormatString.h.
|
inline |
Definition at line 430 of file FormatString.h.
bool FormatSpecifier::hasStandardConversionSpecifier | ( | const LangOptions & | LangOpt | ) | const |
Definition at line 900 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, 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::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::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 944 of file FormatString.cpp.
References clang::analyze_format_string::LengthModifier::AsLongDouble, clang::analyze_format_string::ConversionSpecifier::dArg, clang::analyze_format_string::ConversionSpecifier::iArg, 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 875 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::AsShortLong, clang::analyze_format_string::LengthModifier::AsSizeT, clang::analyze_format_string::LengthModifier::AsWide, and clang::analyze_format_string::LengthModifier::None.
bool FormatSpecifier::hasValidLengthModifier | ( | const TargetInfo & | Target, |
const LangOptions & | LO | ||
) | const |
Definition at line 716 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::AsShortLong, clang::analyze_format_string::LengthModifier::AsSizeT, clang::analyze_format_string::LengthModifier::AsWide, clang::analyze_format_string::ConversionSpecifier::cArg, clang::analyze_format_string::ConversionSpecifier::CArg, 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::TargetInfo::getTriple(), clang::analyze_format_string::ConversionSpecifier::iArg, 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 974 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(), Identifier, and clang::analyze_format_string::LengthModifier::setKind().
|
inline |
Definition at line 406 of file FormatString.h.
References i.
Referenced by clang::analyze_format_string::ParseArgPosition(), and ParseScanfSpecifier().
|
inline |
Definition at line 434 of file FormatString.h.
Referenced by clang::analyze_format_string::ParseFieldWidth(), and ParseScanfSpecifier().
|
inline |
Definition at line 400 of file FormatString.h.
Referenced by clang::analyze_format_string::ParseLengthModifier().
|
inline |
Definition at line 404 of file FormatString.h.
Referenced by clang::analyze_format_string::ParseArgPosition().
|
inline |
Definition at line 426 of file FormatString.h.
Referenced by clang::analyze_format_string::ParseVectorModifier().
|
inline |
Definition at line 438 of file FormatString.h.
References clang::Target.
Referenced by ParseScanfSpecifier().
|
protected |
Definition at line 394 of file FormatString.h.
|
protected |
Definition at line 387 of file FormatString.h.
|
protected |
Definition at line 386 of file FormatString.h.
|
protected |
Definition at line 385 of file FormatString.h.
|
protected |
Positional arguments, an IEEE extension: IEEE Std 1003.1, 2004 Edition http://www.opengroup.org/onlinepubs/009695399/functions/printf.html.
Definition at line 393 of file FormatString.h.
|
protected |
Definition at line 388 of file FormatString.h.