clang 22.0.0git
clang::analyze_scanf::ScanfSpecifier Class Reference

#include "clang/AST/FormatString.h"

Inheritance diagram for clang::analyze_scanf::ScanfSpecifier:
[legend]

Public Member Functions

 ScanfSpecifier ()
void setSuppressAssignment (const char *position)
const OptionalFlaggetSuppressAssignment () const
void setConversionSpecifier (const ScanfConversionSpecifier &cs)
const ScanfConversionSpecifiergetConversionSpecifier () const
bool consumesDataArgument () const
ArgType getArgType (ASTContext &Ctx) const
bool fixType (QualType QT, QualType RawQT, const LangOptions &LangOpt, ASTContext &Ctx)
void toString (raw_ostream &os) 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 ScanfSpecifier 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 672 of file FormatString.h.

Constructor & Destructor Documentation

◆ ScanfSpecifier()

clang::analyze_scanf::ScanfSpecifier::ScanfSpecifier ( )
inline

Definition at line 675 of file FormatString.h.

References false, and clang::analyze_format_string::FormatSpecifier::FormatSpecifier().

Referenced by Parse().

Member Function Documentation

◆ consumesDataArgument()

bool clang::analyze_scanf::ScanfSpecifier::consumesDataArgument ( ) const
inline

Definition at line 695 of file FormatString.h.

References clang::analyze_format_string::FormatSpecifier::CS.

◆ fixType()

bool ScanfSpecifier::fixType ( QualType QT,
QualType RawQT,
const LangOptions & LangOpt,
ASTContext & Ctx )

◆ getArgType()

ArgType ScanfSpecifier::getArgType ( ASTContext & Ctx) const

Definition at line 226 of file ScanfFormatString.cpp.

References ConversionSpecifier::AArg, ConversionSpecifier::aArg, clang::analyze_scanf::ArgType::AnyCharTy, clang::analyze_scanf::LengthModifier::AsAllocate, clang::analyze_scanf::LengthModifier::AsChar, clang::analyze_scanf::LengthModifier::AsInt32, clang::analyze_scanf::LengthModifier::AsInt3264, clang::analyze_scanf::LengthModifier::AsInt64, clang::analyze_scanf::LengthModifier::AsIntMax, clang::analyze_scanf::LengthModifier::AsLong, clang::analyze_scanf::LengthModifier::AsLongDouble, clang::analyze_scanf::LengthModifier::AsLongLong, clang::analyze_scanf::LengthModifier::AsMAllocate, clang::analyze_scanf::LengthModifier::AsPtrDiff, clang::analyze_scanf::LengthModifier::AsQuad, clang::analyze_scanf::LengthModifier::AsShort, clang::analyze_scanf::LengthModifier::AsShortLong, clang::analyze_scanf::LengthModifier::AsSizeT, clang::analyze_scanf::LengthModifier::AsWide, ConversionSpecifier::bArg, ConversionSpecifier::CArg, ConversionSpecifier::cArg, clang::analyze_scanf::ArgType::CPointerTy, clang::analyze_format_string::FormatSpecifier::CS, clang::analyze_scanf::ArgType::CStrTy, ConversionSpecifier::DArg, ConversionSpecifier::dArg, clang::ASTContext::DoubleTy, ConversionSpecifier::EArg, ConversionSpecifier::eArg, ConversionSpecifier::FArg, ConversionSpecifier::fArg, clang::ASTContext::FloatTy, ConversionSpecifier::GArg, ConversionSpecifier::gArg, getConversionSpecifier(), clang::ASTContext::getIntMaxType(), clang::ASTContext::getPointerDiffType(), clang::ASTContext::getSignedSizeType(), clang::ASTContext::getSizeType(), clang::ASTContext::getTargetInfo(), clang::TargetInfo::getTriple(), clang::ASTContext::getUIntMaxType(), clang::ASTContext::getUnsignedPointerDiffType(), clang::ASTContext::getWideCharType(), ConversionSpecifier::iArg, clang::ASTContext::IntTy, clang::analyze_scanf::ArgType::Invalid(), clang::analyze_format_string::FormatSpecifier::LM, clang::ASTContext::LongDoubleTy, clang::ASTContext::LongLongTy, clang::ASTContext::LongTy, clang::analyze_scanf::ArgType::makePtrdiffT(), clang::analyze_scanf::ArgType::makeSizeT(), ConversionSpecifier::nArg, clang::analyze_scanf::LengthModifier::None, ConversionSpecifier::OArg, ConversionSpecifier::oArg, ConversionSpecifier::pArg, clang::analyze_scanf::ArgType::PtrTo(), ConversionSpecifier::SArg, ConversionSpecifier::sArg, ConversionSpecifier::ScanListArg, clang::ASTContext::ShortTy, clang::ASTContext::SignedCharTy, ConversionSpecifier::UArg, ConversionSpecifier::uArg, clang::ASTContext::UnsignedCharTy, clang::ASTContext::UnsignedIntTy, clang::ASTContext::UnsignedLongLongTy, clang::ASTContext::UnsignedLongTy, clang::ASTContext::UnsignedShortTy, clang::analyze_scanf::ArgType::WCStrTy, ConversionSpecifier::XArg, and ConversionSpecifier::xArg.

Referenced by fixType().

◆ getConversionSpecifier()

const ScanfConversionSpecifier & clang::analyze_scanf::ScanfSpecifier::getConversionSpecifier ( ) const
inline

Definition at line 691 of file FormatString.h.

References clang::cast(), and clang::analyze_format_string::FormatSpecifier::CS.

Referenced by getArgType().

◆ getSuppressAssignment()

const OptionalFlag & clang::analyze_scanf::ScanfSpecifier::getSuppressAssignment ( ) const
inline

Definition at line 683 of file FormatString.h.

Referenced by ParseScanfSpecifier().

◆ Parse()

ScanfSpecifier clang::analyze_scanf::ScanfSpecifier::Parse ( const char * beg,
const char * end )
static

References ScanfSpecifier().

◆ setConversionSpecifier()

void clang::analyze_scanf::ScanfSpecifier::setConversionSpecifier ( const ScanfConversionSpecifier & cs)
inline

Definition at line 687 of file FormatString.h.

References clang::analyze_format_string::FormatSpecifier::CS.

Referenced by ParseScanfSpecifier().

◆ setSuppressAssignment()

void clang::analyze_scanf::ScanfSpecifier::setSuppressAssignment ( const char * position)
inline

Definition at line 679 of file FormatString.h.

Referenced by ParseScanfSpecifier().

◆ toString()


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