|
clang 22.0.0git
|
FunctionType - C99 6.7.5.3 - Function Declarators. More...
#include "clang/AST/TypeBase.h"
Classes | |
| struct | ExceptionType |
| A simple holder for a QualType representing a type in an exception specification. More... | |
| class | ExtInfo |
| A class which abstracts out some details necessary for making a call. More... | |
| class | ExtParameterInfo |
| Interesting information about a specific parameter that can't simply be reflected in parameter's type. More... | |
| struct | FunctionTypeArmAttributes |
| A holder for Arm type attributes as described in the Arm C/C++ Language extensions which are not particularly common to all types and therefore accounted separately from FunctionTypeBitfields. More... | |
| struct | FunctionTypeExtraAttributeInfo |
A holder for extra information from attributes which aren't part of an AttributedType. More... | |
| struct | FunctionTypeExtraBitfields |
| A simple holder for various uncommon bits which do not fit in FunctionTypeBitfields. More... | |
Public Types | |
| enum | AArch64SMETypeAttributes : uint16_t { SME_NormalFunction = 0 , SME_PStateSMEnabledMask = 1 << 0 , SME_PStateSMCompatibleMask = 1 << 1 , SME_ZAShift = 2 , SME_ZAMask = 0b111 << SME_ZAShift , SME_ZT0Shift = 5 , SME_ZT0Mask = 0b111 << SME_ZT0Shift , SME_AgnosticZAStateShift = 8 , SME_AgnosticZAStateMask = 1 << SME_AgnosticZAStateShift , SME_AttributeMask } |
| The AArch64 SME ACLE (Arm C/C++ Language Extensions) define a number of function type attributes that can be set on function types, including function pointers. More... | |
| enum | ArmStateValue : unsigned { ARM_None = 0 , ARM_Preserves = 1 , ARM_In = 2 , ARM_Out = 3 , ARM_InOut = 4 } |
| Public Types inherited from clang::Type | |
| enum | TypeClass |
| enum | ScalarTypeKind { STK_CPointer , STK_BlockPointer , STK_ObjCObjectPointer , STK_MemberPointer , STK_Bool , STK_Integral , STK_Floating , STK_IntegralComplex , STK_FloatingComplex , STK_FixedPoint } |
Public Member Functions | |
| QualType | getReturnType () const |
| bool | getHasRegParm () const |
| unsigned | getRegParmType () const |
| bool | getNoReturnAttr () const |
| Determine whether this function type includes the GNU noreturn attribute. | |
| bool | getCFIUncheckedCalleeAttr () const |
| Determine whether this is a function prototype that includes the cfi_unchecked_callee attribute. | |
| bool | getCmseNSCallAttr () const |
| CallingConv | getCallConv () const |
| ExtInfo | getExtInfo () const |
| bool | isConst () const |
| bool | isVolatile () const |
| bool | isRestrict () const |
| QualType | getCallResultType (const ASTContext &Context) const |
| Determine the type of an expression that calls a function of this type. | |
| Public Member Functions inherited from clang::Type | |
| Type (const Type &)=delete | |
| Type (Type &&)=delete | |
| Type & | operator= (const Type &)=delete |
| Type & | operator= (Type &&)=delete |
| TypeClass | getTypeClass () const |
| bool | isFromAST () const |
| Whether this type comes from an AST file. | |
| bool | containsUnexpandedParameterPack () const |
| Whether this type is or contains an unexpanded parameter pack, used to support C++0x variadic templates. | |
| bool | isCanonicalUnqualified () const |
| Determines if this type would be canonical if it had no further qualification. | |
| QualType | getLocallyUnqualifiedSingleStepDesugaredType () const |
| Pull a single level of sugar off of this locally-unqualified type. | |
| bool | isSizelessType () const |
| As an extension, we classify types as one of "sized" or "sizeless"; every type is one or the other. | |
| bool | isSizelessBuiltinType () const |
| bool | isSizelessVectorType () const |
| Returns true for all scalable vector types. | |
| bool | isSVESizelessBuiltinType () const |
| Returns true for SVE scalable vector types. | |
| bool | isRVVSizelessBuiltinType () const |
| Returns true for RVV scalable vector types. | |
| bool | isWebAssemblyExternrefType () const |
| Check if this is a WebAssembly Externref Type. | |
| bool | isWebAssemblyTableType () const |
| Returns true if this is a WebAssembly table type: either an array of reference types, or a pointer to a reference type (which can only be created by array to pointer decay). | |
| bool | isSveVLSBuiltinType () const |
| Determines if this is a sizeless type supported by the 'arm_sve_vector_bits' type attribute, which can be applied to a single SVE vector or predicate, excluding tuple types such as svint32x4_t. | |
| QualType | getSveEltType (const ASTContext &Ctx) const |
| Returns the representative type for the element of an SVE builtin type. | |
| bool | isRVVVLSBuiltinType () const |
| Determines if this is a sizeless type supported by the 'riscv_rvv_vector_bits' type attribute, which can be applied to a single RVV vector or mask. | |
| QualType | getRVVEltType (const ASTContext &Ctx) const |
| Returns the representative type for the element of an RVV builtin type. | |
| QualType | getSizelessVectorEltType (const ASTContext &Ctx) const |
| Returns the representative type for the element of a sizeless vector builtin type. | |
| bool | isIncompleteType (NamedDecl **Def=nullptr) const |
| Types are partitioned into 3 broad categories (C99 6.2.5p1): object types, function types, and incomplete types. | |
| bool | isIncompleteOrObjectType () const |
| Return true if this is an incomplete or object type, in other words, not a function type. | |
| bool | isAlwaysIncompleteType () const |
| bool | isObjectType () const |
| Determine whether this type is an object type. | |
| bool | isLiteralType (const ASTContext &Ctx) const |
| Return true if this is a literal type (C++11 [basic.types]p10) | |
| bool | isStructuralType () const |
| Determine if this type is a structural type, per C++20 [temp.param]p7. | |
| bool | isStandardLayoutType () const |
| Test if this type is a standard-layout type. | |
| bool | isBuiltinType () const |
| Helper methods to distinguish type categories. | |
| bool | isSpecificBuiltinType (unsigned K) const |
| Test for a particular builtin type. | |
| bool | isPlaceholderType () const |
| Test for a type which does not represent an actual type-system type but is instead used as a placeholder for various convenient purposes within Clang. | |
| const BuiltinType * | getAsPlaceholderType () const |
| bool | isSpecificPlaceholderType (unsigned K) const |
| Test for a specific placeholder type. | |
| bool | isNonOverloadPlaceholderType () const |
| Test for a placeholder type other than Overload; see BuiltinType::isNonOverloadPlaceholderType. | |
| bool | isIntegerType () const |
| isIntegerType() does not include complex integers (a GCC extension). | |
| bool | isEnumeralType () const |
| bool | isScopedEnumeralType () const |
| Determine whether this type is a scoped enumeration type. | |
| bool | isBooleanType () const |
| bool | isCharType () const |
| bool | isWideCharType () const |
| bool | isChar8Type () const |
| bool | isChar16Type () const |
| bool | isChar32Type () const |
| bool | isAnyCharacterType () const |
| Determine whether this type is any of the built-in character types. | |
| bool | isUnicodeCharacterType () const |
| bool | isIntegralType (const ASTContext &Ctx) const |
| Determine whether this type is an integral type. | |
| bool | isIntegralOrEnumerationType () const |
| Determine whether this type is an integral or enumeration type. | |
| bool | isIntegralOrUnscopedEnumerationType () const |
| Determine whether this type is an integral or unscoped enumeration type. | |
| bool | isUnscopedEnumerationType () const |
| bool | isRealFloatingType () const |
| Floating point categories. | |
| bool | isComplexType () const |
| isComplexType() does not include complex integers (a GCC extension). | |
| bool | isAnyComplexType () const |
| bool | isFloatingType () const |
| bool | isHalfType () const |
| bool | isFloat16Type () const |
| bool | isFloat32Type () const |
| bool | isDoubleType () const |
| bool | isBFloat16Type () const |
| bool | isMFloat8Type () const |
| bool | isFloat128Type () const |
| bool | isIbm128Type () const |
| bool | isRealType () const |
| bool | isArithmeticType () const |
| bool | isVoidType () const |
| bool | isScalarType () const |
| bool | isAggregateType () const |
| Determines whether the type is a C++ aggregate type or C aggregate or union type. | |
| bool | isFundamentalType () const |
| Tests whether the type is categorized as a fundamental type. | |
| bool | isCompoundType () const |
| Tests whether the type is categorized as a compound type. | |
| bool | isFunctionType () const |
| bool | isFunctionNoProtoType () const |
| bool | isFunctionProtoType () const |
| bool | isPointerType () const |
| bool | isPointerOrReferenceType () const |
| bool | isSignableType (const ASTContext &Ctx) const |
| bool | isSignablePointerType () const |
| bool | isSignableIntegerType (const ASTContext &Ctx) const |
| bool | isAnyPointerType () const |
| bool | isCountAttributedType () const |
| bool | isCFIUncheckedCalleeFunctionType () const |
| bool | hasPointeeToToCFIUncheckedCalleeFunctionType () const |
| bool | isBlockPointerType () const |
| bool | isVoidPointerType () const |
| bool | isReferenceType () const |
| bool | isLValueReferenceType () const |
| bool | isRValueReferenceType () const |
| bool | isObjectPointerType () const |
| bool | isFunctionPointerType () const |
| bool | isFunctionReferenceType () const |
| bool | isMemberPointerType () const |
| bool | isMemberFunctionPointerType () const |
| bool | isMemberDataPointerType () const |
| bool | isArrayType () const |
| bool | isConstantArrayType () const |
| bool | isIncompleteArrayType () const |
| bool | isVariableArrayType () const |
| bool | isArrayParameterType () const |
| bool | isDependentSizedArrayType () const |
| bool | isRecordType () const |
| bool | isClassType () const |
| bool | isStructureType () const |
| bool | isStructureTypeWithFlexibleArrayMember () const |
| bool | isObjCBoxableRecordType () const |
| bool | isInterfaceType () const |
| bool | isStructureOrClassType () const |
| bool | isUnionType () const |
| bool | isComplexIntegerType () const |
| bool | isVectorType () const |
| bool | isExtVectorType () const |
| bool | isExtVectorBoolType () const |
| bool | isPackedVectorBoolType (const ASTContext &ctx) const |
| bool | isSubscriptableVectorType () const |
| bool | isMatrixType () const |
| bool | isConstantMatrixType () const |
| bool | isDependentAddressSpaceType () const |
| bool | isObjCObjectPointerType () const |
| bool | isObjCRetainableType () const |
| bool | isObjCLifetimeType () const |
| Returns true if objects of this type have lifetime semantics under ARC. | |
| bool | isObjCIndirectLifetimeType () const |
| bool | isObjCNSObjectType () const |
| bool | isObjCIndependentClassType () const |
| bool | isObjCObjectType () const |
| bool | isObjCQualifiedInterfaceType () const |
| bool | isObjCQualifiedIdType () const |
| bool | isObjCQualifiedClassType () const |
| bool | isObjCObjectOrInterfaceType () const |
| bool | isObjCIdType () const |
| bool | isDecltypeType () const |
| bool | isObjCInertUnsafeUnretainedType () const |
| Was this type written with the special inert-in-ARC __unsafe_unretained qualifier? | |
| bool | isObjCIdOrObjectKindOfType (const ASTContext &ctx, const ObjCObjectType *&bound) const |
| Whether the type is Objective-C 'id' or a __kindof type of an object type, e.g., __kindof NSView * or __kindof id <NSCopying>. | |
| bool | isObjCClassType () const |
| bool | isObjCClassOrClassKindOfType () const |
| Whether the type is Objective-C 'Class' or a __kindof type of an Class type, e.g., __kindof Class <NSCopying>. | |
| bool | isBlockCompatibleObjCPointerType (ASTContext &ctx) const |
| bool | isObjCSelType () const |
| bool | isObjCBuiltinType () const |
| bool | isObjCARCBridgableType () const |
| Determine whether the given type T is a "bridgable" Objective-C type, which is either an Objective-C object pointer type or an. | |
| bool | isCARCBridgableType () const |
| Determine whether the given type T is a "bridgeable" C type. | |
| bool | isTemplateTypeParmType () const |
| bool | isNullPtrType () const |
| bool | isNothrowT () const |
| bool | isAlignValT () const |
| bool | isStdByteType () const |
| bool | isAtomicType () const |
| bool | isUndeducedAutoType () const |
| bool | isTypedefNameType () const |
| Determines whether this type is written as a typedef-name. | |
| bool | isImageType () const |
| bool | isSamplerT () const |
| bool | isEventT () const |
| bool | isClkEventT () const |
| bool | isQueueT () const |
| bool | isReserveIDT () const |
| bool | isOCLIntelSubgroupAVCType () const |
| bool | isOCLExtOpaqueType () const |
| bool | isPipeType () const |
| bool | isBitIntType () const |
| bool | isOpenCLSpecificType () const |
| bool | isHLSLSpecificType () const |
| bool | isHLSLBuiltinIntangibleType () const |
| bool | isHLSLAttributedResourceType () const |
| bool | isHLSLInlineSpirvType () const |
| bool | isHLSLResourceRecord () const |
| bool | isHLSLResourceRecordArray () const |
| bool | isHLSLIntangibleType () const |
| bool | isObjCARCImplicitlyUnretainedType () const |
| Determines if this type, which must satisfy isObjCLifetimeType(), is implicitly __unsafe_unretained rather than implicitly __strong. | |
| bool | isCUDADeviceBuiltinSurfaceType () const |
| Check if the type is the CUDA device builtin surface type. | |
| bool | isCUDADeviceBuiltinTextureType () const |
| Check if the type is the CUDA device builtin texture type. | |
| Qualifiers::ObjCLifetime | getObjCARCImplicitLifetime () const |
| Return the implicit lifetime for this type, which must not be dependent. | |
| ScalarTypeKind | getScalarTypeKind () const |
| Given that this is a scalar type, classify it. | |
| TypeDependence | getDependence () const |
| bool | containsErrors () const |
| Whether this type is an error type. | |
| bool | isDependentType () const |
| Whether this type is a dependent type, meaning that its definition somehow depends on a template parameter (C++ [temp.dep.type]). | |
| bool | isInstantiationDependentType () const |
| Determine whether this type is an instantiation-dependent type, meaning that the type involves a template parameter (even if the definition does not actually depend on the type substituted for that template parameter). | |
| bool | isUndeducedType () const |
| Determine whether this type is an undeduced type, meaning that it somehow involves a C++11 'auto' type or similar which has not yet been deduced. | |
| bool | isVariablyModifiedType () const |
| Whether this type is a variably-modified type (C99 6.7.5). | |
| bool | hasSizedVLAType () const |
| Whether this type involves a variable-length array type with a definite size. | |
| bool | hasUnnamedOrLocalType () const |
| Whether this type is or contains a local or unnamed type. | |
| bool | isOverloadableType () const |
| Determines whether this is a type for which one can define an overloaded operator. | |
| bool | isElaboratedTypeSpecifier () const |
| Determine wither this type is a C++ elaborated-type-specifier. | |
| bool | canDecayToPointerType () const |
| Determines whether this type can decay to a pointer type. | |
| bool | hasPointerRepresentation () const |
| Whether this type is represented natively as a pointer. | |
| bool | hasObjCPointerRepresentation () const |
| Whether this type can represent an objective pointer type for the purpose of GC'ability. | |
| bool | hasIntegerRepresentation () const |
| Determine whether this type has an integer representation of some sort, e.g., it is an integer type or a vector. | |
| bool | hasSignedIntegerRepresentation () const |
| Determine whether this type has an signed integer representation of some sort, e.g., it is an signed integer type or a vector. | |
| bool | hasUnsignedIntegerRepresentation () const |
| Determine whether this type has an unsigned integer representation of some sort, e.g., it is an unsigned integer type or a vector. | |
| bool | hasFloatingRepresentation () const |
| Determine whether this type has a floating-point representation of some sort, e.g., it is a floating-point type or a vector thereof. | |
| bool | hasBooleanRepresentation () const |
| Determine whether this type has a boolean representation – i.e., it is a boolean type, an enum type whose underlying type is a boolean type, or a vector of booleans. | |
| const RecordType * | getAsStructureType () const |
| const RecordType * | getAsUnionType () const |
| NOTE: getAs*ArrayType are methods on ASTContext. | |
| const ComplexType * | getAsComplexIntegerType () const |
| const ObjCObjectType * | getAsObjCInterfaceType () const |
| const ObjCObjectPointerType * | getAsObjCInterfacePointerType () const |
| const ObjCObjectPointerType * | getAsObjCQualifiedIdType () const |
| const ObjCObjectPointerType * | getAsObjCQualifiedClassType () const |
| const ObjCObjectType * | getAsObjCQualifiedInterfaceType () const |
| CXXRecordDecl * | getAsCXXRecordDecl () const |
| Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or because it is the injected-class-name type of a class template or class template partial specialization. | |
| CXXRecordDecl * | castAsCXXRecordDecl () const |
| RecordDecl * | getAsRecordDecl () const |
| Retrieves the RecordDecl this type refers to. | |
| RecordDecl * | castAsRecordDecl () const |
| EnumDecl * | getAsEnumDecl () const |
| Retrieves the EnumDecl this type refers to. | |
| EnumDecl * | castAsEnumDecl () const |
| TagDecl * | getAsTagDecl () const |
| Retrieves the TagDecl that this type refers to, either because the type is a TagType or because it is the injected-class-name type of a class template or class template partial specialization. | |
| TagDecl * | castAsTagDecl () const |
| const CXXRecordDecl * | getPointeeCXXRecordDecl () const |
| If this is a pointer or reference to a RecordType, return the CXXRecordDecl that the type refers to. | |
| DeducedType * | getContainedDeducedType () const |
| Get the DeducedType whose type will be deduced for a variable with an initializer of this type. | |
| AutoType * | getContainedAutoType () const |
| Get the AutoType whose type will be deduced for a variable with an initializer of this type. | |
| bool | hasAutoForTrailingReturnType () const |
| Determine whether this type was written with a leading 'auto' corresponding to a trailing return type (possibly for a nested function type within a pointer to function type or similar). | |
| template<typename T> | |
| const T * | getAs () const |
| Member-template getAs<specific type>'. | |
| template<typename T> | |
| const T * | getAsCanonical () const |
| If this type is canonically the specified type, return its canonical type cast to that specified type, otherwise returns null. | |
| template<typename T> | |
| const T * | castAsCanonical () const |
| Return this type's canonical type cast to the specified type. | |
| const TemplateSpecializationType * | getAsNonAliasTemplateSpecializationType () const |
| Look through sugar for an instance of TemplateSpecializationType which is not a type alias, or null if there is no such type. | |
| const TemplateSpecializationType * | castAsNonAliasTemplateSpecializationType () const |
| template<typename T> | |
| const T * | getAsAdjusted () const |
| Member-template getAsAdjusted<specific type>. | |
| const ArrayType * | getAsArrayTypeUnsafe () const |
| A variant of getAs<> for array types which silently discards qualifiers from the outermost type. | |
| template<typename T> | |
| const T * | castAs () const |
| Member-template castAs<specific type>. | |
| const ArrayType * | castAsArrayTypeUnsafe () const |
| A variant of castAs<> for array type which silently discards qualifiers from the outermost type. | |
| NestedNameSpecifier | getPrefix () const |
| If this type represents a qualified-id, this returns its nested name specifier. | |
| bool | hasAttr (attr::Kind AK) const |
| Determine whether this type had the specified attribute applied to it (looking through top-level type sugar). | |
| const Type * | getBaseElementTypeUnsafe () const |
| Get the base element type of this type, potentially discarding type qualifiers. | |
| const Type * | getArrayElementTypeNoTypeQual () const |
| If this is an array type, return the element type of the array, potentially with type qualifiers missing. | |
| const Type * | getPointeeOrArrayElementType () const |
| If this is a pointer type, return the pointee type. | |
| QualType | getPointeeType () const |
| If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee. | |
| const Type * | getUnqualifiedDesugaredType () const |
| Return the specified type with any "sugar" removed from the type, removing any typedefs, typeofs, etc., as well as any qualifiers. | |
| bool | isSignedIntegerType () const |
| Return true if this is an integer type that is signed, according to C99 6.2.5p4 [char, signed char, short, int, long..], or an enum decl which has a signed representation. | |
| bool | isUnsignedIntegerType () const |
| Return true if this is an integer type that is unsigned, according to C99 6.2.5p6 [which returns true for _Bool], or an enum decl which has an unsigned representation. | |
| bool | isSignedIntegerOrEnumerationType () const |
| Determines whether this is an integer type that is signed or an enumeration types whose underlying type is a signed integer type. | |
| bool | isUnsignedIntegerOrEnumerationType () const |
| Determines whether this is an integer type that is unsigned or an enumeration types whose underlying type is a unsigned integer type. | |
| bool | isFixedPointType () const |
| Return true if this is a fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169. | |
| bool | isFixedPointOrIntegerType () const |
| Return true if this is a fixed point or integer type. | |
| bool | isConvertibleToFixedPointType () const |
| Return true if this can be converted to (or from) a fixed point type. | |
| bool | isSaturatedFixedPointType () const |
| Return true if this is a saturated fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169. | |
| bool | isUnsaturatedFixedPointType () const |
| Return true if this is a saturated fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169. | |
| bool | isSignedFixedPointType () const |
| Return true if this is a fixed point type that is signed according to ISO/IEC JTC1 SC22 WG14 N1169. | |
| bool | isUnsignedFixedPointType () const |
| Return true if this is a fixed point type that is unsigned according to ISO/IEC JTC1 SC22 WG14 N1169. | |
| bool | isConstantSizeType () const |
| Return true if this is not a variable sized type, according to the rules of C99 6.7.5p3. | |
| bool | isSpecifierType () const |
| Returns true if this type can be represented by some set of type specifiers. | |
| Linkage | getLinkage () const |
| Determine the linkage of this type. | |
| Visibility | getVisibility () const |
| Determine the visibility of this type. | |
| bool | isVisibilityExplicit () const |
| Return true if the visibility was explicitly set is the code. | |
| LinkageInfo | getLinkageAndVisibility () const |
| Determine the linkage and visibility of this type. | |
| bool | isLinkageValid () const |
| True if the computed linkage is valid. | |
| std::optional< NullabilityKind > | getNullability () const |
| Determine the nullability of the given type. | |
| bool | canHaveNullability (bool ResultIfUnknown=true) const |
| Determine whether the given type can have a nullability specifier applied to it, i.e., if it is any kind of pointer type. | |
| std::optional< ArrayRef< QualType > > | getObjCSubstitutions (const DeclContext *dc) const |
| Retrieve the set of substitutions required when accessing a member of the Objective-C receiver type that is declared in the given context. | |
| bool | acceptsObjCTypeParams () const |
| Determines if this is an ObjC interface type that may accept type parameters. | |
| const char * | getTypeClassName () const |
| QualType | getCanonicalTypeInternal () const |
| CanQualType | getCanonicalTypeUnqualified () const |
| void | dump () const |
| void | dump (llvm::raw_ostream &OS, const ASTContext &Context) const |
| template<> | |
| const TypedefType * | getAs () const |
| This will check for a TypedefType by removing any existing sugar until it reaches a TypedefType or a non-sugared type. | |
| template<> | |
| const UsingType * | getAs () const |
| template<> | |
| const TemplateSpecializationType * | getAs () const |
| This will check for a TemplateSpecializationType by removing any existing sugar until it reaches a TemplateSpecializationType or a non-sugared type. | |
| template<> | |
| const AttributedType * | getAs () const |
| This will check for an AttributedType by removing any existing sugar until it reaches an AttributedType or a non-sugared type. | |
| template<> | |
| const BoundsAttributedType * | getAs () const |
| This will check for a BoundsAttributedType by removing any existing sugar until it reaches an BoundsAttributedType or a non-sugared type. | |
| template<> | |
| const CountAttributedType * | getAs () const |
| This will check for a CountAttributedType by removing any existing sugar until it reaches an CountAttributedType or a non-sugared type. | |
| template<> | |
| const TypedefType * | getAs () const |
| template<> | |
| const UsingType * | getAs () const |
| template<> | |
| const TemplateSpecializationType * | getAs () const |
| template<> | |
| const AttributedType * | getAs () const |
| template<> | |
| const BoundsAttributedType * | getAs () const |
| template<> | |
| const CountAttributedType * | getAs () const |
Static Public Member Functions | |
| static ArmStateValue | getArmZAState (unsigned AttrBits) |
| static ArmStateValue | getArmZT0State (unsigned AttrBits) |
| static StringRef | getNameForCallConv (CallingConv CC) |
| static bool | classof (const Type *T) |
Protected Member Functions | |
| FunctionType (TypeClass tc, QualType res, QualType Canonical, TypeDependence Dependence, ExtInfo Info) | |
| Qualifiers | getFastTypeQuals () const |
| Protected Member Functions inherited from clang::Type | |
| Type (TypeClass tc, QualType canon, TypeDependence Dependence) | |
| Type * | this_ () |
| void | setDependence (TypeDependence D) |
| void | addDependence (TypeDependence D) |
FunctionType - C99 6.7.5.3 - Function Declarators.
This is the common base class of FunctionNoProtoType and FunctionProtoType.
Definition at line 4450 of file TypeBase.h.
| enum clang::FunctionType::AArch64SMETypeAttributes : uint16_t |
The AArch64 SME ACLE (Arm C/C++ Language Extensions) define a number of function type attributes that can be set on function types, including function pointers.
| Enumerator | |
|---|---|
| SME_NormalFunction | |
| SME_PStateSMEnabledMask | |
| SME_PStateSMCompatibleMask | |
| SME_ZAShift | |
| SME_ZAMask | |
| SME_ZT0Shift | |
| SME_ZT0Mask | |
| SME_AgnosticZAStateShift | |
| SME_AgnosticZAStateMask | |
| SME_AttributeMask | |
Definition at line 4726 of file TypeBase.h.
| Enumerator | |
|---|---|
| ARM_None | |
| ARM_Preserves | |
| ARM_In | |
| ARM_Out | |
| ARM_InOut | |
Definition at line 4747 of file TypeBase.h.
|
inlineprotected |
Definition at line 4776 of file TypeBase.h.
References clang::Type::FunctionTypeBits, and clang::Type::Type().
Referenced by clang::FunctionNoProtoType::ASTContext.
Definition at line 4824 of file TypeBase.h.
References clang::T, and clang::Type::Type().
|
inlinestatic |
Definition at line 4755 of file TypeBase.h.
References SME_ZAMask, and SME_ZAShift.
Referenced by AddAttributesFromFunctionProtoType(), clang::Sema::checkCall(), clang::SemaARM::CheckSMEFunctionDefAttributes(), handleArmStateAttribute(), clang::SemaARM::handleNewAttr(), and clang::hasArmZAState().
|
inlinestatic |
Definition at line 4759 of file TypeBase.h.
References SME_ZT0Mask, and SME_ZT0Shift.
Referenced by AddAttributesFromFunctionProtoType(), clang::Sema::checkCall(), clang::SemaARM::CheckSMEFunctionDefAttributes(), handleArmStateAttribute(), clang::SemaARM::handleNewAttr(), and clang::hasArmZT0State().
|
inline |
Definition at line 4805 of file TypeBase.h.
References getExtInfo().
Referenced by clang::Sema::adjustMemberFunctionCC(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), clang::Sema::CheckOverridingFunctionAttributes(), compareConversionFunctions(), clang::PredefinedExpr::ComputeName(), DiagnoseCallingConvCast(), getCallingConvMangling(), getLambdaConversionFunctionCallConv(), getMangledNameImpl(), getMangledNameImpl(), handleFunctionTypeAttr(), isKernelDecl(), isSwiftAsyncCallee(), repeatForLambdaConversionFunctionCallingConvs(), and clang::CodeGen::CodeGenModule::TryEmitBaseDestructorAsAlias().
|
inline |
Determine the type of an expression that calls a function of this type.
Definition at line 4818 of file TypeBase.h.
References clang::Type::ASTContext, and getReturnType().
Referenced by clang::Sema::BuildCallToMemberFunction(), and clang::Sema::BuildResolvedCallExpr().
| bool FunctionType::getCFIUncheckedCalleeAttr | ( | ) | const |
Determine whether this is a function prototype that includes the cfi_unchecked_callee attribute.
Definition at line 3571 of file Type.cpp.
References clang::Type::getAs().
Referenced by clang::Sema::CheckCompareOperands().
|
inline |
Definition at line 4804 of file TypeBase.h.
References getExtInfo().
Referenced by clang::Sema::ActOnFunctionDeclarator(), and clang::Sema::BuildResolvedCallExpr().
|
inline |
Definition at line 4806 of file TypeBase.h.
References clang::Type::FunctionTypeBits.
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnFunctionDeclarator(), adjustFunctionTypeForInstantiation(), clang::Sema::adjustMemberFunctionCC(), clang::Sema::ApplyNullability(), clang::CodeGen::CodeGenTypes::arrangeBlockFunctionDeclaration(), clang::CodeGen::CodeGenTypes::arrangeCXXMethodCall(), arrangeFreeFunctionLikeCall(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), checkPointerTypesForAssignment(), getCallConv(), getCmseNSCallAttr(), clang::FunctionProtoType::getExtProtoInfo(), getHasRegParm(), getNoReturnAttr(), getRegParmType(), clang::Sema::IsBlockPointerConversion(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeFunctionTypes(), clang::FunctionNoProtoType::Profile(), and clang::CodeGen::TargetCodeGenInfo::setOCLKernelStubCallingConvention().
|
inlineprotected |
Definition at line 4782 of file TypeBase.h.
References clang::Qualifiers::fromFastMask(), clang::Type::FunctionTypeBits, and clang::Type::isFunctionProtoType().
Referenced by clang::FunctionProtoType::getMethodQuals(), isConst(), isRestrict(), and isVolatile().
|
inline |
Definition at line 4792 of file TypeBase.h.
References getExtInfo().
Referenced by handleFunctionTypeAttr().
|
static |
Definition at line 3577 of file Type.cpp.
References clang::CC_AAPCS, clang::CC_AAPCS_VFP, clang::CC_AArch64SVEPCS, clang::CC_AArch64VectorCall, clang::CC_C, clang::CC_DeviceKernel, clang::CC_IntelOclBicc, clang::CC_M68kRTD, clang::CC_PreserveAll, clang::CC_PreserveMost, clang::CC_PreserveNone, clang::CC_RISCVVectorCall, clang::CC_SpirFunction, clang::CC_Swift, clang::CC_SwiftAsync, CC_VLS_CASE, clang::CC_Win64, clang::CC_X86_64SysV, clang::CC_X86FastCall, clang::CC_X86Pascal, clang::CC_X86RegCall, clang::CC_X86StdCall, clang::CC_X86ThisCall, and clang::CC_X86VectorCall.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::adjustMemberFunctionCC(), DiagnoseCallingConvCast(), handleFunctionTypeAttr(), clang::Sema::MergeFunctionDecl(), clang::JSONNodeDumper::VisitFunctionType(), and clang::TextNodeDumper::VisitFunctionType().
|
inline |
Determine whether this function type includes the GNU noreturn attribute.
The C++11 [[noreturn]] attribute does not affect the function type.
Definition at line 4798 of file TypeBase.h.
References getExtInfo().
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnCapScopeReturnStmt(), and clang::TemplateDeclInstantiator::InitFunctionInstantiation().
|
inline |
Definition at line 4793 of file TypeBase.h.
References getExtInfo().
Referenced by clang::Sema::MergeFunctionDecl().
|
inline |
Definition at line 4790 of file TypeBase.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnFunctionDeclarator(), addAssociatedClassesAndNamespaces(), AddObjCProperties(), clang::Sema::adjustCCAndNoReturn(), appendFunctionType(), clang::CodeGen::CodeGenTypes::arrangeBlockFunctionDeclaration(), clang::CIRGen::CIRGenTypes::arrangeCXXMethodCall(), clang::CodeGen::CodeGenTypes::arrangeCXXMethodCall(), arrangeFreeFunctionLikeCall(), arrangeFreeFunctionLikeCall(), clang::ASTDeclReader::attachPreviousDeclImpl(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildResolvedCallExpr(), buildTypeForLambdaCallOperator(), clang::SemaWasm::BuiltinWasmTestFunctionPointerSignature(), clang::Sema::checkCall(), checkCastFunctionType(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), clang::PredefinedExpr::ComputeName(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CIRGen::CIRGenFunction::emitForwardingCallToLambda(), clang::Sema::findInheritingConstructor(), clang::Sema::GatherArgumentsForCall(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), getCallResultType(), clang::CallExpr::getCallReturnType(), getConversionOpReturnTyAsFunction(), GetFullTypeForDeclarator(), clang::FunctionTypeLoc::getInnerType(), clang::Sema::getLambdaConversionFunctionResultType(), clang::SemaSwift::handleAsyncAttr(), clang::Sema::HandleFunctionTypeMismatch(), handleWarnUnusedResult(), hasDeducedReturnType(), clang::TemplateDeclInstantiator::InitFunctionInstantiation(), isAtLeastAsSpecializedAs(), clang::Sema::IsBlockPointerConversion(), isDispatchBlock(), clang::CIRGen::CIRGenTypes::isFuncTypeConvertible(), clang::CodeGen::CodeGenTypes::isFuncTypeConvertible(), clang::Sema::isObjCPointerConversion(), lookupPromiseType(), MarkUsedTemplateParameters(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeFunctionTypes(), clang::FunctionNoProtoType::Profile(), clang::FunctionProtoType::Profile(), rewriteBuiltinFunctionDecl(), clang::Sema::SubstituteExplicitTemplateArguments(), clang::Sema::tryExprAsCall(), and clang::ASTDeclReader::VisitFunctionDecl().
|
inline |
Definition at line 4812 of file TypeBase.h.
References getFastTypeQuals().
|
inline |
Definition at line 4814 of file TypeBase.h.
References getFastTypeQuals().
|
inline |
Definition at line 4813 of file TypeBase.h.
References getFastTypeQuals().