clang 24.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 OptionalAmount & getPrecision () 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 OptionalFlag & hasThousandsGrouping () const
const OptionalFlag & isLeftJustified () const
const OptionalFlag & hasPlusPrefix () const
const OptionalFlag & hasAlternativeForm () const
const OptionalFlag & hasLeadingZeros () const
const OptionalFlag & hasSpacePrefix () const
const OptionalFlag & hasObjCTechnicalTerm () const
const OptionalFlag & isPrivate () const
const OptionalFlag & isPublic () const
const OptionalFlag & isSensitive () 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 LengthModifier & getLengthModifier () const
const OptionalAmount & getFieldWidth () const
void setVectorNumElts (const OptionalAmount &Amt)
const OptionalAmount & getVectorNumElts () const
void setFieldWidth (const OptionalAmount &Amt)
bool usesPositionalArg () const
bool hasValidLengthModifier (const TargetInfo &Target, const LangOptions &LO) const
bool hasStandardLengthModifier () const
std::optional< LengthModifier > getCorrectedLengthModifier () const
bool hasStandardConversionSpecifier (const LangOptions &LangOpt) const
bool hasStandardLengthConversionCombination () const

Additional Inherited Members

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.
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 549 of file FormatString.h.

Constructor & Destructor Documentation

◆ PrintfSpecifier()

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

Definition at line 566 of file FormatString.h.

Member Function Documentation

◆ consumesDataArgument()

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

Definition at line 616 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 830 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 817 of file PrintfFormatString.cpp.

◆ getConversionSpecifier()

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

Definition at line 605 of file FormatString.h.

◆ getMaskType()

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

Definition at line 643 of file FormatString.h.

◆ getPrecision()

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

Definition at line 614 of file FormatString.h.

◆ hasAlternativeForm()

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

Definition at line 632 of file FormatString.h.

◆ hasLeadingZeros()

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

Definition at line 633 of file FormatString.h.

◆ hasObjCTechnicalTerm()

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

Definition at line 635 of file FormatString.h.

◆ hasPlusPrefix()

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

Definition at line 631 of file FormatString.h.

◆ hasSpacePrefix()

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

Definition at line 634 of file FormatString.h.

◆ hasThousandsGrouping()

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

Definition at line 627 of file FormatString.h.

◆ hasValidAlternativeForm()

bool PrintfSpecifier::hasValidAlternativeForm ( ) const

Definition at line 1133 of file PrintfFormatString.cpp.

◆ hasValidFieldWidth()

bool PrintfSpecifier::hasValidFieldWidth ( ) const

Definition at line 1305 of file PrintfFormatString.cpp.

◆ hasValidLeadingZeros()

bool PrintfSpecifier::hasValidLeadingZeros ( ) const

Definition at line 1166 of file PrintfFormatString.cpp.

◆ hasValidLeftJustified()

bool PrintfSpecifier::hasValidLeftJustified ( ) const

Definition at line 1232 of file PrintfFormatString.cpp.

◆ hasValidPlusPrefix()

bool PrintfSpecifier::hasValidPlusPrefix ( ) const

Definition at line 1105 of file PrintfFormatString.cpp.

◆ hasValidPrecision()

bool PrintfSpecifier::hasValidPrecision ( ) const

Definition at line 1266 of file PrintfFormatString.cpp.

◆ hasValidSpacePrefix()

bool PrintfSpecifier::hasValidSpacePrefix ( ) const

Definition at line 1204 of file PrintfFormatString.cpp.

◆ hasValidThousandsGroupingPrefix()

bool PrintfSpecifier::hasValidThousandsGroupingPrefix ( ) const

Definition at line 1246 of file PrintfFormatString.cpp.

◆ isLeftJustified()

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

Definition at line 630 of file FormatString.h.

◆ isPrivate()

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

Definition at line 638 of file FormatString.h.

◆ isPublic()

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

Definition at line 639 of file FormatString.h.

◆ isSensitive()

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

Definition at line 640 of file FormatString.h.

◆ setConversionSpecifier()

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

Definition at line 574 of file FormatString.h.

◆ setHasAlternativeForm()

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

Definition at line 587 of file FormatString.h.

◆ setHasLeadingZeros()

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

Definition at line 590 of file FormatString.h.

◆ setHasObjCTechnicalTerm()

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

Definition at line 593 of file FormatString.h.

◆ setHasPlusPrefix()

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

Definition at line 581 of file FormatString.h.

◆ setHasSpacePrefix()

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

Definition at line 584 of file FormatString.h.

◆ setHasThousandsGrouping()

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

Definition at line 575 of file FormatString.h.

◆ setIsLeftJustified()

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

Definition at line 578 of file FormatString.h.

◆ setIsPrivate()

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

Definition at line 596 of file FormatString.h.

◆ setIsPublic()

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

Definition at line 597 of file FormatString.h.

◆ setIsSensitive()

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

Definition at line 598 of file FormatString.h.

◆ setMaskType()

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

Definition at line 644 of file FormatString.h.

◆ setPrecision()

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

Definition at line 609 of file FormatString.h.

◆ setUsesPositionalArg()

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

Definition at line 601 of file FormatString.h.

◆ toString()

void PrintfSpecifier::toString ( raw_ostream & os) const

Definition at line 1068 of file PrintfFormatString.cpp.

◆ usesPositionalArg()

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

Definition at line 641 of file FormatString.h.


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