|
clang 23.0.0git
|
#include "clang/AST/FormatString.h"
Static Public Member Functions | |
| static PrintfSpecifier | 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 |
Definition at line 549 of file FormatString.h.
|
inline |
Definition at line 566 of file FormatString.h.
References clang::analyze_format_string::FormatSpecifier::FormatSpecifier(), and true.
Referenced by Parse().
|
inline |
Definition at line 618 of file FormatString.h.
References clang::analyze_format_string::ConversionSpecifier::consumesDataArgument(), and getConversionSpecifier().
| 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.
References clang::analyze_printf::LengthModifier::AsChar, clang::analyze_printf::LengthModifier::AsLong, clang::analyze_printf::LengthModifier::AsLongDouble, clang::analyze_printf::LengthModifier::AsLongLong, clang::analyze_printf::LengthModifier::AsShort, clang::analyze_printf::LengthModifier::AsShortLong, clang::analyze_printf::LengthModifier::AsWideChar, ConversionSpecifier::cArg, clang::analyze_format_string::FormatSpecifier::CS, ConversionSpecifier::DArg, clang::analyze_format_string::ConversionSpecifier::dArg, ConversionSpecifier::dArg, ConversionSpecifier::fArg, getArgType(), clang::Type::getAs(), clang::Type::getAsEnumDecl(), clang::VectorType::getElementType(), clang::BuiltinType::getKind(), clang::VectorType::getNumElements(), clang::Type::getPointeeType(), clang::ASTContext::getTargetInfo(), clang::analyze_format_string::FormatSpecifier::hasValidLengthModifier(), ConversionSpecifier::iArg, clang::Type::isAnyCharacterType(), clang::Type::isCharType(), clang::Type::isObjCRetainableType(), clang::Type::isPointerType(), clang::Type::isRealFloatingType(), clang::Type::isSignedIntegerType(), clang::Type::isUnsignedIntegerType(), clang::analyze_format_string::ArgType::isValid(), clang::Type::isWideCharType(), clang::analyze_format_string::FormatSpecifier::LM, clang::analyze_format_string::ArgType::matchesType(), clang::analyze_format_string::FormatSpecifier::namedTypeToLengthModifier(), ConversionSpecifier::nArg, clang::analyze_printf::LengthModifier::None, clang::analyze_printf::OptionalAmount::NotSpecified, ConversionSpecifier::ObjCObjArg, ConversionSpecifier::sArg, ConversionSpecifier::UArg, clang::analyze_format_string::ConversionSpecifier::uArg, ConversionSpecifier::uArg, and clang::analyze_format_string::FormatSpecifier::VectorNumElts.
| 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.
References clang::analyze_format_string::FormatSpecifier::CS, getConversionSpecifier(), clang::analyze_printf::ArgType::Invalid(), clang::analyze_format_string::ArgType::isValid(), clang::analyze_format_string::ArgType::makeVectorType(), and clang::analyze_format_string::FormatSpecifier::VectorNumElts.
Referenced by fixType().
|
inline |
Definition at line 607 of file FormatString.h.
References clang::cast(), and clang::analyze_format_string::FormatSpecifier::CS.
Referenced by consumesDataArgument(), getArgType(), libc_func_matchers::hasUnsafeFormatOrSArg(), and clang::analyze_format_string::ParseFormatStringHasSArg().
|
inline |
Definition at line 645 of file FormatString.h.
|
inline |
Definition at line 616 of file FormatString.h.
Referenced by libc_func_matchers::hasUnsafeFormatOrSArg().
|
inline |
Definition at line 634 of file FormatString.h.
|
inline |
Definition at line 635 of file FormatString.h.
|
inline |
Definition at line 637 of file FormatString.h.
|
inline |
Definition at line 633 of file FormatString.h.
|
inline |
Definition at line 636 of file FormatString.h.
|
inline |
Definition at line 629 of file FormatString.h.
| bool PrintfSpecifier::hasValidAlternativeForm | ( | ) | const |
Definition at line 1127 of file PrintfFormatString.cpp.
References ConversionSpecifier::AArg, ConversionSpecifier::aArg, ConversionSpecifier::BArg, ConversionSpecifier::bArg, clang::analyze_format_string::FormatSpecifier::CS, ConversionSpecifier::EArg, ConversionSpecifier::eArg, ConversionSpecifier::FArg, ConversionSpecifier::fArg, ConversionSpecifier::FreeBSDrArg, ConversionSpecifier::FreeBSDyArg, ConversionSpecifier::GArg, ConversionSpecifier::gArg, ConversionSpecifier::KArg, ConversionSpecifier::kArg, ConversionSpecifier::OArg, ConversionSpecifier::oArg, ConversionSpecifier::RArg, ConversionSpecifier::rArg, ConversionSpecifier::XArg, and ConversionSpecifier::xArg.
| bool PrintfSpecifier::hasValidFieldWidth | ( | ) | const |
Definition at line 1299 of file PrintfFormatString.cpp.
References clang::analyze_format_string::FormatSpecifier::CS, clang::analyze_format_string::FormatSpecifier::FieldWidth, ConversionSpecifier::nArg, and clang::analyze_printf::OptionalAmount::NotSpecified.
| bool PrintfSpecifier::hasValidLeadingZeros | ( | ) | const |
Definition at line 1160 of file PrintfFormatString.cpp.
References ConversionSpecifier::AArg, ConversionSpecifier::aArg, ConversionSpecifier::BArg, ConversionSpecifier::bArg, clang::analyze_format_string::FormatSpecifier::CS, ConversionSpecifier::DArg, ConversionSpecifier::dArg, ConversionSpecifier::EArg, ConversionSpecifier::eArg, ConversionSpecifier::FArg, ConversionSpecifier::fArg, ConversionSpecifier::FreeBSDrArg, ConversionSpecifier::FreeBSDyArg, ConversionSpecifier::GArg, ConversionSpecifier::gArg, ConversionSpecifier::iArg, ConversionSpecifier::KArg, ConversionSpecifier::kArg, ConversionSpecifier::OArg, ConversionSpecifier::oArg, ConversionSpecifier::RArg, ConversionSpecifier::rArg, ConversionSpecifier::UArg, ConversionSpecifier::uArg, ConversionSpecifier::XArg, and ConversionSpecifier::xArg.
| bool PrintfSpecifier::hasValidLeftJustified | ( | ) | const |
Definition at line 1226 of file PrintfFormatString.cpp.
References clang::analyze_format_string::FormatSpecifier::CS, and ConversionSpecifier::nArg.
| bool PrintfSpecifier::hasValidPlusPrefix | ( | ) | const |
Definition at line 1099 of file PrintfFormatString.cpp.
References ConversionSpecifier::AArg, ConversionSpecifier::aArg, clang::analyze_format_string::FormatSpecifier::CS, ConversionSpecifier::DArg, ConversionSpecifier::dArg, ConversionSpecifier::EArg, ConversionSpecifier::eArg, ConversionSpecifier::FArg, ConversionSpecifier::fArg, ConversionSpecifier::FreeBSDrArg, ConversionSpecifier::FreeBSDyArg, ConversionSpecifier::GArg, ConversionSpecifier::gArg, ConversionSpecifier::iArg, ConversionSpecifier::kArg, and ConversionSpecifier::rArg.
| bool PrintfSpecifier::hasValidPrecision | ( | ) | const |
Definition at line 1260 of file PrintfFormatString.cpp.
References ConversionSpecifier::AArg, ConversionSpecifier::aArg, ConversionSpecifier::BArg, ConversionSpecifier::bArg, clang::analyze_format_string::FormatSpecifier::CS, ConversionSpecifier::DArg, ConversionSpecifier::dArg, ConversionSpecifier::EArg, ConversionSpecifier::eArg, ConversionSpecifier::FArg, ConversionSpecifier::fArg, ConversionSpecifier::FreeBSDrArg, ConversionSpecifier::FreeBSDyArg, ConversionSpecifier::GArg, ConversionSpecifier::gArg, ConversionSpecifier::iArg, ConversionSpecifier::KArg, ConversionSpecifier::kArg, clang::analyze_printf::OptionalAmount::NotSpecified, ConversionSpecifier::OArg, ConversionSpecifier::oArg, ConversionSpecifier::PArg, ConversionSpecifier::RArg, ConversionSpecifier::rArg, ConversionSpecifier::sArg, ConversionSpecifier::UArg, ConversionSpecifier::uArg, ConversionSpecifier::XArg, and ConversionSpecifier::xArg.
| bool PrintfSpecifier::hasValidSpacePrefix | ( | ) | const |
Definition at line 1198 of file PrintfFormatString.cpp.
References ConversionSpecifier::AArg, ConversionSpecifier::aArg, clang::analyze_format_string::FormatSpecifier::CS, ConversionSpecifier::DArg, ConversionSpecifier::dArg, ConversionSpecifier::EArg, ConversionSpecifier::eArg, ConversionSpecifier::FArg, ConversionSpecifier::fArg, ConversionSpecifier::FreeBSDrArg, ConversionSpecifier::FreeBSDyArg, ConversionSpecifier::GArg, ConversionSpecifier::gArg, ConversionSpecifier::iArg, ConversionSpecifier::kArg, and ConversionSpecifier::rArg.
| bool PrintfSpecifier::hasValidThousandsGroupingPrefix | ( | ) | const |
Definition at line 1240 of file PrintfFormatString.cpp.
References clang::analyze_format_string::FormatSpecifier::CS, ConversionSpecifier::DArg, ConversionSpecifier::dArg, ConversionSpecifier::FArg, ConversionSpecifier::fArg, ConversionSpecifier::GArg, ConversionSpecifier::gArg, ConversionSpecifier::iArg, ConversionSpecifier::UArg, and ConversionSpecifier::uArg.
|
inline |
Definition at line 632 of file FormatString.h.
|
inline |
Definition at line 640 of file FormatString.h.
|
inline |
Definition at line 641 of file FormatString.h.
|
inline |
Definition at line 642 of file FormatString.h.
|
static |
References PrintfSpecifier().
|
inline |
Definition at line 576 of file FormatString.h.
References clang::analyze_format_string::FormatSpecifier::CS.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 589 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 592 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 595 of file FormatString.h.
Referenced by ParseObjCFlags().
|
inline |
Definition at line 583 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 586 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 577 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 580 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 598 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 599 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 600 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 646 of file FormatString.h.
Referenced by ParsePrintfSpecifier().
|
inline |
Definition at line 611 of file FormatString.h.
References clang::analyze_format_string::OptionalAmount::setUsesDotPrefix().
Referenced by ParsePrecision().
|
inline |
Definition at line 603 of file FormatString.h.
References clang::analyze_format_string::FormatSpecifier::UsesPositionalArg.
| void PrintfSpecifier::toString | ( | raw_ostream & | os | ) | const |
Definition at line 1062 of file PrintfFormatString.cpp.
References clang::analyze_format_string::FormatSpecifier::CS, clang::analyze_format_string::FormatSpecifier::FieldWidth, clang::analyze_format_string::FormatSpecifier::getPositionalArgIndex(), clang::analyze_format_string::FormatSpecifier::LM, usesPositionalArg(), and clang::analyze_format_string::FormatSpecifier::VectorNumElts.
|
inline |
Definition at line 643 of file FormatString.h.
References clang::analyze_format_string::FormatSpecifier::UsesPositionalArg.
Referenced by ParsePrintfSpecifier(), and toString().