clang
9.0.0
|
Common components of both fprintf and fscanf format strings. More...
Classes | |
class | ArgType |
class | ConversionSpecifier |
class | FormatSpecifier |
class | FormatStringHandler |
class | LengthModifier |
Represents the length modifier in a format string in scanf/printf. More... | |
class | OptionalAmount |
class | OptionalFlag |
Class representing optional flags with location and representation information. More... | |
class | SpecifierResult |
Enumerations | |
enum | PositionContext { FieldWidthPos = 0, PrecisionPos = 1 } |
Functions | |
bool | ParsePrintfString (FormatStringHandler &H, const char *beg, const char *end, const LangOptions &LO, const TargetInfo &Target, bool isFreeBSDKPrintf) |
bool | ParseFormatStringHasSArg (const char *beg, const char *end, const LangOptions &LO, const TargetInfo &Target) |
bool | ParseScanfString (FormatStringHandler &H, const char *beg, const char *end, const LangOptions &LO, const TargetInfo &Target) |
OptionalAmount | ParseAmount (const char *&Beg, const char *E) |
OptionalAmount | ParseNonPositionAmount (const char *&Beg, const char *E, unsigned &argIndex) |
OptionalAmount | ParsePositionAmount (FormatStringHandler &H, const char *Start, const char *&Beg, const char *E, PositionContext p) |
bool | ParseFieldWidth (FormatStringHandler &H, FormatSpecifier &CS, const char *Start, const char *&Beg, const char *E, unsigned *argIndex) |
bool | ParseArgPosition (FormatStringHandler &H, FormatSpecifier &CS, const char *Start, const char *&Beg, const char *E) |
bool | ParseVectorModifier (FormatStringHandler &H, FormatSpecifier &FS, const char *&Beg, const char *E, const LangOptions &LO) |
bool | ParseLengthModifier (FormatSpecifier &FS, const char *&Beg, const char *E, const LangOptions &LO, bool IsScanf=false) |
Returns true if a LengthModifier was parsed and installed in the FormatSpecifier& argument, and false otherwise. More... | |
bool | ParseUTF8InvalidSpecifier (const char *SpecifierBegin, const char *FmtStrEnd, unsigned &Len) |
Returns true if the invalid specifier in SpecifierBegin is a UTF-8 string; check that it won't go further than FmtStrEnd and write up the total size in Len . More... | |
Common components of both fprintf and fscanf format strings.
Enumerator | |
---|---|
FieldWidthPos | |
PrecisionPos |
Definition at line 676 of file FormatString.h.
OptionalAmount clang::analyze_format_string::ParseAmount | ( | const char *& | Beg, |
const char * | E | ||
) |
Definition at line 37 of file FormatString.cpp.
References c.
Referenced by ParseArgPosition(), ParseNonPositionAmount(), ParsePositionAmount(), ParseScanfSpecifier(), ParseVectorModifier(), and clang::UpdateOnReturn< T >::~UpdateOnReturn().
bool clang::analyze_format_string::ParseArgPosition | ( | FormatStringHandler & | H, |
FormatSpecifier & | CS, | ||
const char * | Start, | ||
const char *& | Beg, | ||
const char * | E | ||
) |
Definition at line 144 of file FormatString.cpp.
References clang::analyze_format_string::OptionalAmount::getConstantAmount(), clang::analyze_format_string::OptionalAmount::getHowSpecified(), clang::analyze_format_string::FormatStringHandler::HandleIncompleteSpecifier(), clang::analyze_format_string::FormatStringHandler::HandlePosition(), clang::analyze_format_string::FormatStringHandler::HandleZeroPosition(), ParseAmount(), clang::analyze_format_string::FormatSpecifier::setArgIndex(), and clang::analyze_format_string::FormatSpecifier::setUsesPositionalArg().
Referenced by ParsePrintfSpecifier(), ParseScanfSpecifier(), and clang::UpdateOnReturn< T >::~UpdateOnReturn().
bool clang::analyze_format_string::ParseFieldWidth | ( | FormatStringHandler & | H, |
FormatSpecifier & | CS, | ||
const char * | Start, | ||
const char *& | Beg, | ||
const char * | E, | ||
unsigned * | argIndex | ||
) |
Definition at line 122 of file FormatString.cpp.
References FieldWidthPos, clang::analyze_format_string::OptionalAmount::isInvalid(), ParseNonPositionAmount(), ParsePositionAmount(), and clang::analyze_format_string::FormatSpecifier::setFieldWidth().
Referenced by clang::UpdateOnReturn< T >::~UpdateOnReturn().
bool clang::analyze_format_string::ParseFormatStringHasSArg | ( | const char * | beg, |
const char * | end, | ||
const LangOptions & | LO, | ||
const TargetInfo & | Target | ||
) |
Definition at line 437 of file PrintfFormatString.cpp.
References clang::analyze_format_string::ArgType::AnyCharTy, 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::LengthModifier::AsWideChar, clang::analyze_format_string::ConversionSpecifier::cArg, clang::analyze_format_string::ConversionSpecifier::CArg, clang::analyze_format_string::ArgType::CPointerTy, clang::analyze_format_string::ArgType::CStrTy, clang::ASTContext::DoubleTy, clang::ASTContext::FloatTy, clang::analyze_printf::PrintfSpecifier::getConversionSpecifier(), clang::ASTContext::getIntMaxType(), clang::analyze_format_string::ConversionSpecifier::getKind(), clang::ASTContext::getPointerDiffType(), clang::ASTContext::getPointerType(), clang::ASTContext::getSignedSizeType(), clang::ASTContext::getSizeType(), clang::ASTContext::getTargetInfo(), clang::TargetInfo::getTriple(), clang::ASTContext::getUIntMaxType(), clang::ASTContext::getUnsignedPointerDiffType(), clang::analyze_format_string::SpecifierResult< T >::getValue(), clang::ASTContext::HalfTy, clang::analyze_format_string::SpecifierResult< T >::hasValue(), clang::ASTContext::IntTy, clang::analyze_format_string::ArgType::Invalid(), clang::ASTContext::LongDoubleTy, clang::ASTContext::LongLongTy, clang::ASTContext::LongTy, clang::analyze_format_string::ArgType::makePtrdiffT(), clang::analyze_format_string::ArgType::makeSizeT(), clang::analyze_format_string::ConversionSpecifier::nArg, clang::analyze_format_string::LengthModifier::None, clang::analyze_format_string::ConversionSpecifier::ObjCObjArg, clang::analyze_format_string::ArgType::ObjCPointerTy, clang::analyze_format_string::ConversionSpecifier::pArg, clang::analyze_format_string::ConversionSpecifier::PArg, ParsePrintfSpecifier(), clang::analyze_format_string::ArgType::PtrTo(), clang::analyze_format_string::ConversionSpecifier::sArg, clang::analyze_format_string::ConversionSpecifier::SArg, clang::ASTContext::ShortTy, clang::analyze_format_string::SpecifierResult< T >::shouldStop(), clang::ASTContext::SignedCharTy, clang::ASTContext::UnsignedCharTy, clang::ASTContext::UnsignedIntTy, clang::ASTContext::UnsignedLongLongTy, clang::ASTContext::UnsignedLongTy, clang::ASTContext::UnsignedShortTy, clang::analyze_format_string::ArgType::WCStrTy, clang::ASTContext::WideCharTy, clang::analyze_format_string::ArgType::WIntTy, and clang::CanQual< T >::withConst().
Referenced by clang::analyze_format_string::FormatStringHandler::HandleIncompleteScanList().
bool clang::analyze_format_string::ParseLengthModifier | ( | FormatSpecifier & | FS, |
const char *& | Beg, | ||
const char * | E, | ||
const LangOptions & | LO, | ||
bool | IsScanf = false |
||
) |
Returns true if a LengthModifier was parsed and installed in the FormatSpecifier& argument, and false otherwise.
Definition at line 211 of file FormatString.cpp.
References clang::None, and clang::analyze_format_string::FormatSpecifier::setLengthModifier().
Referenced by ParseScanfSpecifier(), and clang::UpdateOnReturn< T >::~UpdateOnReturn().
OptionalAmount clang::analyze_format_string::ParseNonPositionAmount | ( | const char *& | Beg, |
const char * | E, | ||
unsigned & | argIndex | ||
) |
Definition at line 63 of file FormatString.cpp.
References ParseAmount().
Referenced by ParseFieldWidth(), ParsePrecision(), and clang::UpdateOnReturn< T >::~UpdateOnReturn().
OptionalAmount clang::analyze_format_string::ParsePositionAmount | ( | FormatStringHandler & | H, |
const char * | Start, | ||
const char *& | Beg, | ||
const char * | E, | ||
PositionContext | p | ||
) |
Definition at line 75 of file FormatString.cpp.
References clang::analyze_format_string::OptionalAmount::getConstantAmount(), clang::analyze_format_string::OptionalAmount::getHowSpecified(), clang::analyze_format_string::FormatStringHandler::HandleIncompleteSpecifier(), clang::analyze_format_string::FormatStringHandler::HandleInvalidPosition(), clang::analyze_format_string::FormatStringHandler::HandleZeroPosition(), and ParseAmount().
Referenced by ParseFieldWidth(), ParsePrecision(), and clang::UpdateOnReturn< T >::~UpdateOnReturn().
bool clang::analyze_format_string::ParsePrintfString | ( | FormatStringHandler & | H, |
const char * | beg, | ||
const char * | end, | ||
const LangOptions & | LO, | ||
const TargetInfo & | Target, | ||
bool | isFreeBSDKPrintf | ||
) |
Definition at line 406 of file PrintfFormatString.cpp.
References clang::analyze_format_string::SpecifierResult< T >::getStart(), clang::analyze_format_string::SpecifierResult< T >::getValue(), clang::analyze_format_string::FormatStringHandler::HandlePrintfSpecifier(), clang::analyze_format_string::SpecifierResult< T >::hasValue(), ParsePrintfSpecifier(), and clang::analyze_format_string::SpecifierResult< T >::shouldStop().
Referenced by CheckFormatString(), clang::analyze_os_log::computeOSLogBufferLayout(), and clang::analyze_format_string::FormatStringHandler::HandleIncompleteScanList().
bool clang::analyze_format_string::ParseScanfString | ( | FormatStringHandler & | H, |
const char * | beg, | ||
const char * | end, | ||
const LangOptions & | LO, | ||
const TargetInfo & | Target | ||
) |
Definition at line 539 of file ScanfFormatString.cpp.
References clang::analyze_format_string::SpecifierResult< T >::getStart(), clang::analyze_format_string::SpecifierResult< T >::getValue(), clang::analyze_format_string::FormatStringHandler::HandleScanfSpecifier(), clang::analyze_format_string::SpecifierResult< T >::hasValue(), ParseScanfSpecifier(), and clang::analyze_format_string::SpecifierResult< T >::shouldStop().
Referenced by CheckFormatString(), and clang::analyze_format_string::FormatStringHandler::HandleIncompleteScanList().
bool clang::analyze_format_string::ParseUTF8InvalidSpecifier | ( | const char * | SpecifierBegin, |
const char * | FmtStrEnd, | ||
unsigned & | Len | ||
) |
Returns true if the invalid specifier in SpecifierBegin
is a UTF-8 string; check that it won't go further than FmtStrEnd
and write up the total size in Len
.
Definition at line 296 of file FormatString.cpp.
Referenced by ParseScanfSpecifier(), and clang::UpdateOnReturn< T >::~UpdateOnReturn().
bool clang::analyze_format_string::ParseVectorModifier | ( | FormatStringHandler & | H, |
FormatSpecifier & | FS, | ||
const char *& | Beg, | ||
const char * | E, | ||
const LangOptions & | LO | ||
) |
Definition at line 181 of file FormatString.cpp.
References clang::analyze_format_string::OptionalAmount::getHowSpecified(), clang::analyze_format_string::FormatStringHandler::HandleIncompleteSpecifier(), ParseAmount(), and clang::analyze_format_string::FormatSpecifier::setVectorNumElts().
Referenced by clang::UpdateOnReturn< T >::~UpdateOnReturn().