|
clang 22.0.0git
|
#include "clang/AST/FormatString.h"
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.
| Enumerator | |
|---|---|
| UnknownTy | |
| InvalidTy | |
| SpecificTy | |
| ObjCPointerTy | |
| CPointerTy | |
| AnyCharTy | |
| CStrTy | |
| WCStrTy | |
| WIntTy | |
Definition at line 267 of file FormatString.h.
How well a given conversion specifier matches its argument.
Definition at line 271 of file FormatString.h.
|
inline |
Definition at line 306 of file FormatString.h.
References UnknownTy.
Referenced by Invalid(), makePtrdiffT(), makeSizeT(), makeVectorType(), matchesArgType(), and PtrTo().
Definition at line 307 of file FormatString.h.
References SpecificTy.
|
inline |
Definition at line 308 of file FormatString.h.
References SpecificTy.
| QualType ArgType::getRepresentativeType | ( | ASTContext & | C | ) | const |
Definition at line 772 of file FormatString.cpp.
References AnyCharTy, clang::C, CPointerTy, CStrTy, clang::Type::getCanonicalTypeInternal(), InvalidTy, ObjCPointerTy, SpecificTy, UnknownTy, WCStrTy, and WIntTy.
Referenced by getRepresentativeTypeName().
| std::string ArgType::getRepresentativeTypeName | ( | ASTContext & | C | ) | const |
Definition at line 812 of file FormatString.cpp.
References clang::C, clang::QualType::getAsString(), and getRepresentativeType().
|
inlinestatic |
Definition at line 310 of file FormatString.h.
References ArgType(), and InvalidTy.
Referenced by makeVectorType().
|
inline |
Definition at line 315 of file FormatString.h.
|
inline |
Definition at line 313 of file FormatString.h.
|
inline |
Definition at line 311 of file FormatString.h.
References InvalidTy.
Referenced by clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), and clang::analyze_printf::PrintfSpecifier::getArgType().
Create an ArgType which corresponds to the ptrdiff_t/unsigned ptrdiff_t type.
Definition at line 334 of file FormatString.h.
References ArgType().
Create an ArgType which corresponds to the size_t/ssize_t type.
Definition at line 326 of file FormatString.h.
References ArgType().
| ArgType ArgType::makeVectorType | ( | ASTContext & | C, |
| unsigned | NumElts ) const |
Definition at line 763 of file FormatString.cpp.
References ArgType(), clang::C, and Invalid().
Referenced by clang::analyze_printf::PrintfSpecifier::getArgType().
| analyze_format_string::ArgType::MatchKind ArgType::matchesArgType | ( | ASTContext & | C, |
| const ArgType & | other ) const |
Definition at line 683 of file FormatString.cpp.
References ArgType(), clang::C, clang::Type::getAs(), integerTypeMatch(), clang::BuiltinType::isInteger(), Match, matchesSizeTPtrdiffT(), NoMatch, and clang::Other.
| clang::analyze_format_string::ArgType::MatchKind ArgType::matchesType | ( | ASTContext & | C, |
| QualType | argTy ) const |
Definition at line 388 of file FormatString.cpp.
References AnyCharTy, clang::C, clang::Type::canDecayToPointerType(), CPointerTy, CStrTy, clang::Type::getAs(), clang::Type::getAsEnumDecl(), clang::PointerType::getPointeeType(), clang::Type::getPointeeType(), clang::Type::hasSignedIntegerRepresentation(), InvalidTy, clang::Type::isBlockPointerType(), clang::Type::isCharType(), clang::QualType::isConstQualified(), clang::Type::isNullPtrType(), clang::Type::isObjCObjectPointerType(), clang::Type::isSaturatedFixedPointType(), clang::Type::isStructureType(), clang::Type::isVoidType(), Match, matchesSizeTPtrdiffT(), MatchPromotion, NoMatch, NoMatchPedantic, NoMatchPromotionTypeConfusion, NoMatchSignedness, NoMatchTypeConfusion, ObjCPointerTy, SpecificTy, UnknownTy, WCStrTy, and WIntTy.
Referenced by clang::analyze_printf::PrintfSpecifier::fixType(), and clang::analyze_scanf::ScanfSpecifier::fixType().
Create an ArgType which corresponds to the type pointer to A.
Definition at line 318 of file FormatString.h.