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()) {
314 llvm_unreachable(
"Unsupported LengthModifier Type");
324 switch (
LM.getKind()) {
358 llvm_unreachable(
"Unsupported LengthModifier Type");
369 switch (
LM.getKind()) {
384 switch (
LM.getKind()) {
403 switch (
LM.getKind()) {
424 switch (
LM.getKind()) {
479 if (!ED->isComplete())
481 PT = ED->getIntegerType();
500 CAT->getZExtSize() - 1,
"", 0,
false);
508 case BuiltinType::UInt:
509 case BuiltinType::Int:
510 case BuiltinType::Float:
515 case BuiltinType::Char_U:
516 case BuiltinType::UChar:
517 case BuiltinType::Char_S:
518 case BuiltinType::SChar:
523 case BuiltinType::Short:
524 case BuiltinType::UShort:
529 case BuiltinType::Long:
530 case BuiltinType::ULong:
531 case BuiltinType::Double:
536 case BuiltinType::LongLong:
537 case BuiltinType::ULongLong:
542 case BuiltinType::LongDouble:
552 if (LangOpt.C99 || LangOpt.CPlusPlus11)
570 llvm_unreachable(
"Unexpected type");
580 if (SuppressAssignment)
594 unsigned argIndex = 0;
614 assert(I == E &&
"Format string not exhausted");
llvm::MachO::Target Target
__device__ __2f16 float c
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 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.