clang API Documentation

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 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 595 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::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 clang::analyze_format_string::ParseScanfString ( FormatStringHandler H,
const char *  beg,
const char *  end,
const LangOptions LO,
const TargetInfo Target 
)