clang 23.0.0git
PrintfSpecifier Class Reference

#include "clang/AST/FormatString.h"

Inheritance diagram for PrintfSpecifier:
[legend]

Public Member Functions

 PrintfSpecifier ()
void setConversionSpecifier (const PrintfConversionSpecifier &cs)
void setHasThousandsGrouping (const char *position)
void setIsLeftJustified (const char *position)
void setHasPlusPrefix (const char *position)
void setHasSpacePrefix (const char *position)
void setHasAlternativeForm (const char *position)
void setHasLeadingZeros (const char *position)
void setHasObjCTechnicalTerm (const char *position)
void setIsPrivate (const char *position)
void setIsPublic (const char *position)
void setIsSensitive (const char *position)
void setUsesPositionalArg ()
const PrintfConversionSpecifier & getConversionSpecifier () const
void setPrecision (const OptionalAmount &Amt)
const OptionalAmountgetPrecision () const
bool consumesDataArgument () const
ArgType getArgType (ASTContext &Ctx, bool IsObjCLiteral) const
 Returns the builtin type that a data argument paired with this format specifier should have.
const OptionalFlaghasThousandsGrouping () const
const OptionalFlagisLeftJustified () const
const OptionalFlaghasPlusPrefix () const
const OptionalFlaghasAlternativeForm () const
const OptionalFlaghasLeadingZeros () const
const OptionalFlaghasSpacePrefix () const
const OptionalFlaghasObjCTechnicalTerm () const
const OptionalFlagisPrivate () const
const OptionalFlagisPublic () const
const OptionalFlagisSensitive () const
bool usesPositionalArg () const
StringRef getMaskType () const
void setMaskType (StringRef S)
bool fixType (QualType QT, const LangOptions &LangOpt, ASTContext &Ctx, bool IsObjCLiteral)
 Changes the specifier and length according to a QualType, retaining any flags or options.
void toString (raw_ostream &os) const
bool hasValidPlusPrefix () const
bool hasValidAlternativeForm () const
bool hasValidLeadingZeros () const
bool hasValidSpacePrefix () const
bool hasValidLeftJustified () const
bool hasValidThousandsGroupingPrefix () const
bool hasValidPrecision () const
bool hasValidFieldWidth () const
Public Member Functions inherited from clang::analyze_format_string::FormatSpecifier
 FormatSpecifier (bool isPrintf)
void setLengthModifier (LengthModifier lm)
void setUsesPositionalArg ()
void setArgIndex (unsigned i)
unsigned getArgIndex () const
unsigned getPositionalArgIndex () const
const LengthModifiergetLengthModifier () const
const OptionalAmountgetFieldWidth () const
void setVectorNumElts (const OptionalAmount &Amt)
const OptionalAmountgetVectorNumElts () const
void setFieldWidth (const OptionalAmount &Amt)
bool usesPositionalArg () const
bool hasValidLengthModifier (const TargetInfo &Target, const LangOptions &LO) const
bool hasStandardLengthModifier () const
std::optional< LengthModifiergetCorrectedLengthModifier () const
bool hasStandardConversionSpecifier (const LangOptions &LangOpt) const
bool hasStandardLengthConversionCombination () const

Static Public Member Functions

static PrintfSpecifier Parse (const char *beg, const char *end)
Static Public Member Functions inherited from clang::analyze_format_string::FormatSpecifier
static bool namedTypeToLengthModifier (ASTContext &Ctx, QualType QT, LengthModifier &LM)
 For a TypedefType QT, if it is a named integer type such as size_t, assign the appropriate value to LM and return true.

Additional Inherited Members

Protected Attributes inherited from clang::analyze_format_string::FormatSpecifier
LengthModifier LM
OptionalAmount FieldWidth
ConversionSpecifier CS
OptionalAmount VectorNumElts
bool UsesPositionalArg
 Positional arguments, an IEEE extension: IEEE Std 1003.1, 2004 Edition http://www.opengroup.org/onlinepubs/009695399/functions/printf.html.
unsigned argIndex

Detailed Description

Definition at line 513 of file FormatString.h.

Constructor & Destructor Documentation

◆ PrintfSpecifier()

clang::analyze_printf::PrintfSpecifier::PrintfSpecifier ( )
inline

Definition at line 530 of file FormatString.h.

Member Function Documentation

◆ consumesDataArgument()

bool clang::analyze_printf::PrintfSpecifier::consumesDataArgument ( ) const
inline

Definition at line 582 of file FormatString.h.

◆ fixType()

bool PrintfSpecifier::fixType ( QualType QT,
const LangOptions & LangOpt,
ASTContext & Ctx,
bool IsObjCLiteral )

Changes the specifier and length according to a QualType, retaining any flags or options.

Returns true on success, or false when a conversion was not successful.

Definition at line 800 of file PrintfFormatString.cpp.

◆ getArgType()

ArgType PrintfSpecifier::getArgType ( ASTContext & Ctx,
bool IsObjCLiteral ) const

Returns the builtin type that a data argument paired with this format specifier should have.

This method will return null if the format specifier does not have a matching data argument or the matching argument matches more than one type.

Definition at line 787 of file PrintfFormatString.cpp.

◆ getConversionSpecifier()

const PrintfConversionSpecifier & clang::analyze_printf::PrintfSpecifier::getConversionSpecifier ( ) const
inline

Definition at line 571 of file FormatString.h.

◆ getMaskType()

StringRef clang::analyze_printf::PrintfSpecifier::getMaskType ( ) const
inline

Definition at line 609 of file FormatString.h.

◆ getPrecision()

const OptionalAmount & clang::analyze_printf::PrintfSpecifier::getPrecision ( ) const
inline

Definition at line 580 of file FormatString.h.

◆ hasAlternativeForm()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::hasAlternativeForm ( ) const
inline

Definition at line 598 of file FormatString.h.

◆ hasLeadingZeros()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::hasLeadingZeros ( ) const
inline

Definition at line 599 of file FormatString.h.

◆ hasObjCTechnicalTerm()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::hasObjCTechnicalTerm ( ) const
inline

Definition at line 601 of file FormatString.h.

◆ hasPlusPrefix()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::hasPlusPrefix ( ) const
inline

Definition at line 597 of file FormatString.h.

◆ hasSpacePrefix()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::hasSpacePrefix ( ) const
inline

Definition at line 600 of file FormatString.h.

◆ hasThousandsGrouping()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::hasThousandsGrouping ( ) const
inline

Definition at line 593 of file FormatString.h.

◆ hasValidAlternativeForm()

bool PrintfSpecifier::hasValidAlternativeForm ( ) const

Definition at line 1097 of file PrintfFormatString.cpp.

◆ hasValidFieldWidth()

bool PrintfSpecifier::hasValidFieldWidth ( ) const

Definition at line 1269 of file PrintfFormatString.cpp.

◆ hasValidLeadingZeros()

bool PrintfSpecifier::hasValidLeadingZeros ( ) const

Definition at line 1130 of file PrintfFormatString.cpp.

◆ hasValidLeftJustified()

bool PrintfSpecifier::hasValidLeftJustified ( ) const

Definition at line 1196 of file PrintfFormatString.cpp.

◆ hasValidPlusPrefix()

bool PrintfSpecifier::hasValidPlusPrefix ( ) const

Definition at line 1069 of file PrintfFormatString.cpp.

◆ hasValidPrecision()

bool PrintfSpecifier::hasValidPrecision ( ) const

Definition at line 1230 of file PrintfFormatString.cpp.

◆ hasValidSpacePrefix()

bool PrintfSpecifier::hasValidSpacePrefix ( ) const

Definition at line 1168 of file PrintfFormatString.cpp.

◆ hasValidThousandsGroupingPrefix()

bool PrintfSpecifier::hasValidThousandsGroupingPrefix ( ) const

Definition at line 1210 of file PrintfFormatString.cpp.

◆ isLeftJustified()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::isLeftJustified ( ) const
inline

Definition at line 596 of file FormatString.h.

◆ isPrivate()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::isPrivate ( ) const
inline

Definition at line 604 of file FormatString.h.

◆ isPublic()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::isPublic ( ) const
inline

Definition at line 605 of file FormatString.h.

◆ isSensitive()

const OptionalFlag & clang::analyze_printf::PrintfSpecifier::isSensitive ( ) const
inline

Definition at line 606 of file FormatString.h.

◆ Parse()

PrintfSpecifier clang::analyze_printf::PrintfSpecifier::Parse ( const char * beg,
const char * end )
static

◆ setConversionSpecifier()

void clang::analyze_printf::PrintfSpecifier::setConversionSpecifier ( const PrintfConversionSpecifier & cs)
inline

Definition at line 540 of file FormatString.h.

◆ setHasAlternativeForm()

void clang::analyze_printf::PrintfSpecifier::setHasAlternativeForm ( const char * position)
inline

Definition at line 553 of file FormatString.h.

◆ setHasLeadingZeros()

void clang::analyze_printf::PrintfSpecifier::setHasLeadingZeros ( const char * position)
inline

Definition at line 556 of file FormatString.h.

◆ setHasObjCTechnicalTerm()

void clang::analyze_printf::PrintfSpecifier::setHasObjCTechnicalTerm ( const char * position)
inline

Definition at line 559 of file FormatString.h.

◆ setHasPlusPrefix()

void clang::analyze_printf::PrintfSpecifier::setHasPlusPrefix ( const char * position)
inline

Definition at line 547 of file FormatString.h.

◆ setHasSpacePrefix()

void clang::analyze_printf::PrintfSpecifier::setHasSpacePrefix ( const char * position)
inline

Definition at line 550 of file FormatString.h.

◆ setHasThousandsGrouping()

void clang::analyze_printf::PrintfSpecifier::setHasThousandsGrouping ( const char * position)
inline

Definition at line 541 of file FormatString.h.

◆ setIsLeftJustified()

void clang::analyze_printf::PrintfSpecifier::setIsLeftJustified ( const char * position)
inline

Definition at line 544 of file FormatString.h.

◆ setIsPrivate()

void clang::analyze_printf::PrintfSpecifier::setIsPrivate ( const char * position)
inline

Definition at line 562 of file FormatString.h.

◆ setIsPublic()

void clang::analyze_printf::PrintfSpecifier::setIsPublic ( const char * position)
inline

Definition at line 563 of file FormatString.h.

◆ setIsSensitive()

void clang::analyze_printf::PrintfSpecifier::setIsSensitive ( const char * position)
inline

Definition at line 564 of file FormatString.h.

◆ setMaskType()

void clang::analyze_printf::PrintfSpecifier::setMaskType ( StringRef S)
inline

Definition at line 610 of file FormatString.h.

◆ setPrecision()

void clang::analyze_printf::PrintfSpecifier::setPrecision ( const OptionalAmount & Amt)
inline

Definition at line 575 of file FormatString.h.

◆ setUsesPositionalArg()

void clang::analyze_printf::PrintfSpecifier::setUsesPositionalArg ( )
inline

Definition at line 567 of file FormatString.h.

◆ toString()

void PrintfSpecifier::toString ( raw_ostream & os) const

Definition at line 1032 of file PrintfFormatString.cpp.

◆ usesPositionalArg()

bool clang::analyze_printf::PrintfSpecifier::usesPositionalArg ( ) const
inline

Definition at line 607 of file FormatString.h.


The documentation for this class was generated from the following files: