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

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

Classes

class  OptionalFlag
 
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)
 

Detailed Description

Common components of both fprintf and fscanf format strings.

Enumeration Type Documentation

Enumerator
FieldWidthPos 
PrecisionPos 

Definition at line 605 of file FormatString.h.

Function Documentation

OptionalAmount clang::analyze_format_string::ParseAmount ( const char *&  Beg,
const char *  E 
)
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 181 of file FormatString.cpp.

References 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 63 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 
)