clang 24.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 OptionalFlag & getSuppressAssignment () const
void setConversionSpecifier (const ScanfConversionSpecifier &cs)
const ScanfConversionSpecifier & getConversionSpecifier () 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 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

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

Constructor & Destructor Documentation

◆ ScanfSpecifier()

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

Definition at line 696 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 713 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 270 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::AsDecimal128, clang::analyze_scanf::LengthModifier::AsDecimal32, clang::analyze_scanf::LengthModifier::AsDecimal64, clang::analyze_scanf::LengthModifier::AsFastIntN, clang::analyze_scanf::LengthModifier::AsInt32, clang::analyze_scanf::LengthModifier::AsInt3264, clang::analyze_scanf::LengthModifier::AsInt64, clang::analyze_scanf::LengthModifier::AsIntMax, clang::analyze_scanf::LengthModifier::AsIntN, 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::makeIntNType(), 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::Unsupported(), 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 709 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 703 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 707 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 699 of file FormatString.h.

Referenced by ParseScanfSpecifier().

◆ toString()


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