26 using namespace clang;
33 const char *&Beg,
const char *
E) {
35 const char *start = I - 1;
53 if (I + 1 !=
E && I[0] ==
'^' && I[1] ==
']') {
84 const char *Start =
nullptr;
88 for ( ; I !=
E ; ++I) {
123 FS.setSuppressAssignment(I);
135 FS.setFieldWidth(Amt);
158 const char *conversionPosition = I++;
160 switch (*conversionPosition) {
189 if (
Target.getTriple().isOSDarwin())
193 if (
Target.getTriple().isOSDarwin())
197 if (
Target.getTriple().isOSDarwin())
202 if (k == ScanfConversionSpecifier::ScanListArg) {
206 FS.setConversionSpecifier(CS);
208 && !FS.usesPositionalArg())
209 FS.setArgIndex(argIndex++);
214 if (k == ScanfConversionSpecifier::InvalidSpecifier) {
215 unsigned Len = I - Beg;
218 FS.setConversionSpecifier(CS);
237 switch (LM.getKind()) {
268 llvm_unreachable(
"Unsupported LengthModifier Type");
278 switch (LM.getKind()) {
310 llvm_unreachable(
"Unsupported LengthModifier Type");
321 switch (LM.getKind()) {
336 switch (LM.getKind()) {
355 switch (LM.getKind()) {
376 switch (LM.getKind()) {
430 if (!ETy->getDecl()->isComplete())
432 PT = ETy->getDecl()->getIntegerType();
451 CAT->getZExtSize() - 1,
"", 0,
false);
459 case BuiltinType::UInt:
460 case BuiltinType::Int:
466 case BuiltinType::Char_U:
467 case BuiltinType::UChar:
468 case BuiltinType::Char_S:
469 case BuiltinType::SChar:
474 case BuiltinType::Short:
475 case BuiltinType::UShort:
480 case BuiltinType::Long:
481 case BuiltinType::ULong:
482 case BuiltinType::Double:
487 case BuiltinType::LongLong:
488 case BuiltinType::ULongLong:
493 case BuiltinType::LongDouble:
503 if (LangOpt.C99 || LangOpt.CPlusPlus11)
504 namedTypeToLengthModifier(PT, LM);
521 llvm_unreachable(
"Unexpected type");
529 if (usesPositionalArg())
530 os << getPositionalArgIndex() <<
"$";
531 if (SuppressAssignment)
534 FieldWidth.toString(os);
545 unsigned argIndex = 0;
565 assert(I ==
E &&
"Format string not exhausted");
enum clang::sema::@1659::IndirectLocalPathEntry::EntryKind Kind
llvm::MachO::Target Target
__device__ __2f16 float c
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
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>.
const ConstantArrayType * getAsConstantArrayType(QualType T) const
QualType getPointerDiffType() const
Return the unique type for "ptrdiff_t" (C99 7.17) defined in <stddef.h>.
CanQualType UnsignedLongTy
CanQualType getSizeType() const
Return the unique type for "size_t" (C99 7.17), defined in <stddef.h>.
CanQualType UnsignedCharTy
CanQualType UnsignedIntTy
CanQualType UnsignedLongLongTy
CanQualType UnsignedShortTy
const TargetInfo & getTargetInfo() const
QualType getWideCharType() const
Return the type of wide characters.
CanQualType getSignedSizeType() const
Return the unique signed counterpart of the integer type corresponding to size_t.
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.
A helper class that allows the use of isa/cast/dyncast to detect TagType objects of enums.
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.
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>'.
Defines the clang::TargetInfo interface.
Pieces specific to fscanf format strings.
std::string toString(const til::SExpr *E)
The JSON file list parser is used to communicate input to InstallAPI.