clang 22.0.0git
clang::analyze_format_string Namespace Reference

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)
bool parseFormatStringHasFormattingSpecifiers (const char *Begin, const char *End, const LangOptions &LO, const TargetInfo &Target)
 Return true if the given string has at least one formatting specifier.
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.
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.

Detailed Description

Common components of both fprintf and fscanf format strings.

Enumeration Type Documentation

◆ PositionContext

Enumerator
FieldWidthPos 
PrecisionPos 

Definition at line 716 of file FormatString.h.

Function Documentation

◆ ParseAmount()

OptionalAmount clang::analyze_format_string::ParseAmount ( const char *& Beg,
const char * E )

◆ ParseArgPosition()

◆ ParseFieldWidth()

bool clang::analyze_format_string::ParseFieldWidth ( FormatStringHandler & H,
FormatSpecifier & CS,
const char * Start,
const char *& Beg,
const char * E,
unsigned * argIndex )

◆ parseFormatStringHasFormattingSpecifiers()

bool clang::analyze_format_string::parseFormatStringHasFormattingSpecifiers ( const char * Begin,
const char * End,
const LangOptions & LO,
const TargetInfo & Target )

Return true if the given string has at least one formatting specifier.

Definition at line 486 of file PrintfFormatString.cpp.

References clang::analyze_format_string::SpecifierResult< T >::hasValue(), ParsePrintfSpecifier(), clang::analyze_format_string::SpecifierResult< T >::shouldStop(), and clang::Target.

Referenced by CheckFormatString().

◆ ParseFormatStringHasSArg()

◆ ParseLengthModifier()

◆ ParseNonPositionAmount()

OptionalAmount clang::analyze_format_string::ParseNonPositionAmount ( const char *& Beg,
const char * E,
unsigned & argIndex )

Definition at line 63 of file FormatString.cpp.

References clang::analyze_format_string::OptionalAmount::Arg, and ParseAmount().

Referenced by ParseFieldWidth().

◆ ParsePositionAmount()

◆ ParsePrintfString()

◆ ParseScanfString()

◆ ParseUTF8InvalidSpecifier()

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 ParsePrintfSpecifier(), and ParseScanfSpecifier().

◆ ParseVectorModifier()