32 const char *&Beg,
const char *E) {
34 const char *start = I - 1;
52 if (I + 1 != E && I[0] ==
'^' && I[1] ==
']') {
75 const char *&Beg,
const char *E,
82 const char *Start =
nullptr;
156 const char *conversionPosition = I++;
158 switch (*conversionPosition) {
233 if (
Target.getTriple().isOSDarwin())
237 if (
Target.getTriple().isOSDarwin())
241 if (
Target.getTriple().isOSDarwin())
259 unsigned Len = I - Beg;
273 if (!
CS.consumesDataArgument())
276 switch (
CS.getKind()) {
281 switch (
LM.getKind()) {
320 llvm_unreachable(
"Unsupported LengthModifier Type");
330 switch (
LM.getKind()) {
370 llvm_unreachable(
"Unsupported LengthModifier Type");
381 switch (
LM.getKind()) {
402 switch (
LM.getKind()) {
421 switch (
LM.getKind()) {
442 switch (
LM.getKind()) {
503 if (!ED->isComplete())
505 PT = ED->getIntegerType();
524 CAT->getZExtSize() - 1,
"", 0,
false);
532 case BuiltinType::UInt:
533 case BuiltinType::Int:
534 case BuiltinType::Float:
539 case BuiltinType::Char_U:
540 case BuiltinType::UChar:
541 case BuiltinType::Char_S:
542 case BuiltinType::SChar:
547 case BuiltinType::Short:
548 case BuiltinType::UShort:
553 case BuiltinType::Long:
554 case BuiltinType::ULong:
555 case BuiltinType::Double:
560 case BuiltinType::LongLong:
561 case BuiltinType::ULongLong:
566 case BuiltinType::LongDouble:
576 if (LangOpt.C99 || LangOpt.CPlusPlus11)
594 llvm_unreachable(
"Unexpected type");
604 if (SuppressAssignment)
618 unsigned argIndex = 0;
638 assert(I == E &&
"Format string not exhausted");
llvm::MachO::Target Target
ArgType getArgType(ASTContext &Ctx) const
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
const ConstantArrayType * getAsConstantArrayType(QualType T) const
QualType getUnsignedPointerDiffType() const
Return the unique unsigned counterpart of "ptrdiff_t" integer type.
CanQualType getIntMaxType() const
Return the unique type for "intmax_t" (C99 7.18.1.5), defined in <stdint.h>.
QualType getPointerDiffType() const
Return the unique type for "ptrdiff_t" (C99 7.17) defined in <stddef.h>.
CanQualType UnsignedLongTy
CanQualType UnsignedCharTy
CanQualType UnsignedIntTy
CanQualType UnsignedLongLongTy
CanQualType UnsignedShortTy
QualType getSizeType() const
Return the unique type for "size_t" (C99 7.17), defined in <stddef.h>.
const TargetInfo & getTargetInfo() const
QualType getSignedSizeType() const
Return the unique signed counterpart of the integer type corresponding to size_t.
QualType getWideCharType() const
Return the type of wide characters.
CanQualType getUIntMaxType() const
Return the unique type for "uintmax_t" (C99 7.18.1.5), defined in <stdint.h>.
This class is used for builtin types like 'int'.
Represents the canonical version of C arrays with a specified constant size.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
A (possibly-)qualified type.
Exposes information about the current target.
const llvm::Triple & getTriple() const
Returns the target triple of the primary target.
bool isSignedIntegerType() const
Return true if this is an integer type that is signed, according to C99 6.2.5p4 [char,...
bool isPointerType() const
QualType getPointeeType() const
If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee.
bool isAnyCharacterType() const
Determine whether this type is any of the built-in character types.
EnumDecl * getAsEnumDecl() const
Retrieves the EnumDecl this type refers to.
bool isRealFloatingType() const
Floating point categories.
bool isWideCharType() const
bool isUnsignedIntegerType() const
Return true if this is an integer type that is unsigned, according to C99 6.2.5p6 [which returns true...
const T * getAs() const
Member-template getAs<specific type>'.
static ArgType makePtrdiffT(const ArgType &A)
Create an ArgType which corresponds to the ptrdiff_t/unsigned ptrdiff_t type.
static ArgType PtrTo(const ArgType &A)
Create an ArgType which corresponds to the type pointer to A.
static ArgType Unsupported(const char *N)
static ArgType makeIntNType(ASTContext &Ctx, const LengthModifier &LengthMod, bool Signed)
static ArgType makeSizeT(const ArgType &A)
Create an ArgType which corresponds to the size_t/ssize_t type.
bool fixType(QualType QT, QualType RawQT, const LangOptions &LangOpt, ASTContext &Ctx)
const OptionalFlag & getSuppressAssignment() const
void toString(raw_ostream &os) const
void setConversionSpecifier(const ScanfConversionSpecifier &cs)
const ScanfConversionSpecifier & getConversionSpecifier() const
void setSuppressAssignment(const char *position)
ArgType getArgType(ASTContext &Ctx) const
Defines the clang::TargetInfo interface.
Pieces specific to fscanf format strings.
The JSON file list parser is used to communicate input to InstallAPI.