clang  3.9.0
Classes | Enumerations | Functions
clang::analyze_format_string Namespace Reference

Common components of both fprintf and fscanf format strings. More...

Classes

class  OptionalFlag
 Class representing optional flags with location and representation information. More...
 
class  LengthModifier
 Represents the length modifier in a format string in scanf/printf. More...
 
class  ConversionSpecifier
 
class  ArgType
 
class  OptionalAmount
 
class  FormatSpecifier
 
class  FormatStringHandler
 
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 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...
 

Detailed Description

Common components of both fprintf and fscanf format strings.

Enumeration Type Documentation

Enumerator
FieldWidthPos 
PrecisionPos 

Definition at line 603 of file FormatString.h.

Function Documentation

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

Definition at line 38 of file FormatString.cpp.

References E, and I.

Referenced by ParseArgPosition(), ParseNonPositionAmount(), ParsePositionAmount(), and ParseScanfSpecifier().

bool clang::analyze_format_string::ParseArgPosition ( FormatStringHandler H,
FormatSpecifier CS,
const char *  Start,
const char *&  Beg,
const char *  E 
)
bool clang::analyze_format_string::ParseFieldWidth ( FormatStringHandler H,
FormatSpecifier CS,
const char *  Start,
const char *&  Beg,
const char *  E,
unsigned argIndex 
)
bool clang::analyze_format_string::ParseFormatStringHasSArg ( const char *  beg,
const char *  end,
const LangOptions LO,
const TargetInfo Target 
)
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 182 of file FormatString.cpp.

References I, clang::None, and clang::analyze_format_string::FormatSpecifier::setLengthModifier().

Referenced by ParsePrintfSpecifier(), and ParseScanfSpecifier().

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

Definition at line 64 of file FormatString.cpp.

References ParseAmount().

Referenced by ParseFieldWidth(), and ParsePrecision().

OptionalAmount clang::analyze_format_string::ParsePositionAmount ( FormatStringHandler H,
const char *  Start,
const char *&  Beg,
const char *  E,
PositionContext  p 
)
bool clang::analyze_format_string::ParsePrintfString ( FormatStringHandler H,
const char *  beg,
const char *  end,
const LangOptions LO,
const TargetInfo Target,
bool  isFreeBSDKPrintf 
)
bool clang::analyze_format_string::ParseScanfString ( FormatStringHandler H,
const char *  beg,
const char *  end,
const LangOptions LO,
const TargetInfo Target 
)
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 264 of file FormatString.cpp.

Referenced by ParsePrintfSpecifier(), and ParseScanfSpecifier().