clang 22.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 526 of file FormatString.h.

Constructor & Destructor Documentation

◆ PrintfSpecifier()

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

Definition at line 543 of file FormatString.h.

Member Function Documentation

◆ consumesDataArgument()

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

Definition at line 599 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 750 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 736 of file PrintfFormatString.cpp.

◆ getConversionSpecifier()

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

Definition at line 586 of file FormatString.h.

◆ getMaskType()

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

Definition at line 624 of file FormatString.h.

◆ getPrecision()

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

Definition at line 595 of file FormatString.h.

◆ hasAlternativeForm()

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

Definition at line 615 of file FormatString.h.

◆ hasLeadingZeros()

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

Definition at line 616 of file FormatString.h.

◆ hasObjCTechnicalTerm()

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

Definition at line 618 of file FormatString.h.

◆ hasPlusPrefix()

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

Definition at line 614 of file FormatString.h.

◆ hasSpacePrefix()

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

Definition at line 617 of file FormatString.h.

◆ hasThousandsGrouping()

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

Definition at line 610 of file FormatString.h.

◆ hasValidAlternativeForm()

bool PrintfSpecifier::hasValidAlternativeForm ( ) const

Definition at line 1037 of file PrintfFormatString.cpp.

◆ hasValidFieldWidth()

bool PrintfSpecifier::hasValidFieldWidth ( ) const

Definition at line 1209 of file PrintfFormatString.cpp.

◆ hasValidLeadingZeros()

bool PrintfSpecifier::hasValidLeadingZeros ( ) const

Definition at line 1070 of file PrintfFormatString.cpp.

◆ hasValidLeftJustified()

bool PrintfSpecifier::hasValidLeftJustified ( ) const

Definition at line 1136 of file PrintfFormatString.cpp.

◆ hasValidPlusPrefix()

bool PrintfSpecifier::hasValidPlusPrefix ( ) const

Definition at line 1009 of file PrintfFormatString.cpp.

◆ hasValidPrecision()

bool PrintfSpecifier::hasValidPrecision ( ) const

Definition at line 1170 of file PrintfFormatString.cpp.

◆ hasValidSpacePrefix()

bool PrintfSpecifier::hasValidSpacePrefix ( ) const

Definition at line 1108 of file PrintfFormatString.cpp.

◆ hasValidThousandsGroupingPrefix()

bool PrintfSpecifier::hasValidThousandsGroupingPrefix ( ) const

Definition at line 1150 of file PrintfFormatString.cpp.

◆ isLeftJustified()

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

Definition at line 613 of file FormatString.h.

◆ isPrivate()

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

Definition at line 619 of file FormatString.h.

◆ isPublic()

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

Definition at line 620 of file FormatString.h.

◆ isSensitive()

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

Definition at line 621 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 553 of file FormatString.h.

◆ setHasAlternativeForm()

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

Definition at line 568 of file FormatString.h.

◆ setHasLeadingZeros()

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

Definition at line 571 of file FormatString.h.

◆ setHasObjCTechnicalTerm()

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

Definition at line 574 of file FormatString.h.

◆ setHasPlusPrefix()

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

Definition at line 562 of file FormatString.h.

◆ setHasSpacePrefix()

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

Definition at line 565 of file FormatString.h.

◆ setHasThousandsGrouping()

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

Definition at line 556 of file FormatString.h.

◆ setIsLeftJustified()

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

Definition at line 559 of file FormatString.h.

◆ setIsPrivate()

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

Definition at line 577 of file FormatString.h.

◆ setIsPublic()

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

Definition at line 578 of file FormatString.h.

◆ setIsSensitive()

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

Definition at line 579 of file FormatString.h.

◆ setMaskType()

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

Definition at line 625 of file FormatString.h.

◆ setPrecision()

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

Definition at line 590 of file FormatString.h.

◆ setUsesPositionalArg()

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

Definition at line 582 of file FormatString.h.

◆ toString()

void PrintfSpecifier::toString ( raw_ostream & os) const

Definition at line 977 of file PrintfFormatString.cpp.

◆ usesPositionalArg()

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

Definition at line 622 of file FormatString.h.


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