clang: ArgType Class Reference (original) (raw)

#include "[clang/AST/FormatString.h](FormatString%5F8h%5Fsource.html)"

Public Types
enum Kind { UnknownTy, InvalidTy, SpecificTy, ObjCPointerTy, CPointerTy, AnyCharTy, CStrTy, WCStrTy, WIntTy }
enum MatchKind { NoMatch = 0 , Match = 1 , MatchPromotion, NoMatchPromotionTypeConfusion, NoMatchPedantic, NoMatchSignedness, NoMatchTypeConfusion }
How well a given conversion specifier matches its argument. More...
Public Member Functions
ArgType (Kind K=UnknownTy, const char *N=nullptr)
ArgType (QualType T, const char *N=nullptr)
ArgType (CanQualType T)
bool isValid () const
bool isSizeT () const
bool isPtrdiffT () const
MatchKind matchesType (ASTContext &C, QualType argTy) const
MatchKind matchesArgType (ASTContext &C, const ArgType &other) const
QualType getRepresentativeType (ASTContext &C) const
ArgType makeVectorType (ASTContext &C, unsigned NumElts) const
std::string getRepresentativeTypeName (ASTContext &C) const
Static Public Member Functions
static ArgType Invalid ()
static ArgType PtrTo (const ArgType &A)
Create an ArgType which corresponds to the type pointer to A.
static ArgType makeSizeT (const ArgType &A)
Create an ArgType which corresponds to the size_t/ssize_t type.
static ArgType makePtrdiffT (const ArgType &A)
Create an ArgType which corresponds to the ptrdiff_t/unsigned ptrdiff_t type.

Definition at line 265 of file FormatString.h.

Kind

Enumerator
UnknownTy
InvalidTy
SpecificTy
ObjCPointerTy
CPointerTy
AnyCharTy
CStrTy
WCStrTy
WIntTy

Definition at line 267 of file FormatString.h.

MatchKind

How well a given conversion specifier matches its argument.

Enumerator
NoMatch The conversion specifier and the argument types are incompatible. For instance, "%d" and float.
Match The conversion specifier and the argument type are compatible. For instance, "%d" and int.
MatchPromotion The conversion specifier and the argument type are compatible because of default argument promotions. For instance, "%hhd" and int.
NoMatchPromotionTypeConfusion The conversion specifier and the argument type are compatible but still seems likely to be an error. For instanace, "%hhd" and short.
NoMatchPedantic The conversion specifier and the argument type are disallowed by the C standard, but are in practice harmless. For instance, "%p" and int*.
NoMatchSignedness The conversion specifier and the argument type have different sign.
NoMatchTypeConfusion The conversion specifier and the argument type are compatible, but still seems likely to be an error. For instance, "%hd" and _Bool.

Definition at line 271 of file FormatString.h.

ArgType() [1/3]

clang::analyze_format_string::ArgType::ArgType ( Kind K = UnknownTy, const char * N = nullptr ) inline

ArgType() [2/3]

clang::analyze_format_string::ArgType::ArgType ( QualType T, const char * N = nullptr ) inline

ArgType() [3/3]

clang::analyze_format_string::ArgType::ArgType ( CanQualType T) inline

getRepresentativeType()

getRepresentativeTypeName()

std::string ArgType::getRepresentativeTypeName ( ASTContext & C ) const

Invalid()

ArgType clang::analyze_format_string::ArgType::Invalid ( ) inlinestatic

isPtrdiffT()

bool clang::analyze_format_string::ArgType::isPtrdiffT ( ) const inline

isSizeT()

bool clang::analyze_format_string::ArgType::isSizeT ( ) const inline

isValid()

bool clang::analyze_format_string::ArgType::isValid ( ) const inline

makePtrdiffT()

ArgType clang::analyze_format_string::ArgType::makePtrdiffT ( const ArgType & A) inlinestatic

makeSizeT()

ArgType clang::analyze_format_string::ArgType::makeSizeT ( const ArgType & A) inlinestatic

makeVectorType()

matchesArgType()

matchesType()

PtrTo()

ArgType clang::analyze_format_string::ArgType::PtrTo ( const ArgType & A) inlinestatic

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