clang
7.0.0
|
#include "clang/AST/ASTConsumer.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/CXXInheritance.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/Mangle.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Sema/DeclSpec.h"
#include "clang/Sema/DelayedDiagnostic.h"
#include "clang/Sema/Initialization.h"
#include "clang/Sema/Lookup.h"
#include "clang/Sema/Scope.h"
#include "clang/Sema/ScopeInfo.h"
#include "clang/Sema/SemaInternal.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/MathExtras.h"
Go to the source code of this file.
Namespaces | |
AttributeLangSupport | |
Functions | |
static bool | isFunctionOrMethod (const Decl *D) |
isFunctionOrMethod - Return true if the given decl has function type (function or function-typed variable) or an Objective-C method. More... | |
static bool | isFunctionOrMethodOrBlock (const Decl *D) |
Return true if the given decl has function type (function or function-typed variable) or an Objective-C method or a block. More... | |
static bool | hasDeclarator (const Decl *D) |
Return true if the given decl has a declarator that should have been processed by Sema::GetTypeForDeclarator. More... | |
static bool | hasFunctionProto (const Decl *D) |
hasFunctionProto - Return true if the given decl has a argument information. More... | |
static unsigned | getFunctionOrMethodNumParams (const Decl *D) |
getFunctionOrMethodNumParams - Return number of function or method parameters. More... | |
static QualType | getFunctionOrMethodParamType (const Decl *D, unsigned Idx) |
static SourceRange | getFunctionOrMethodParamRange (const Decl *D, unsigned Idx) |
static QualType | getFunctionOrMethodResultType (const Decl *D) |
static SourceRange | getFunctionOrMethodResultSourceRange (const Decl *D) |
static bool | isFunctionOrMethodVariadic (const Decl *D) |
static bool | isInstanceMethod (const Decl *D) |
static bool | isNSStringType (QualType T, ASTContext &Ctx) |
static bool | isCFStringType (QualType T, ASTContext &Ctx) |
static unsigned | getNumAttributeArgs (const ParsedAttr &AL) |
template<typename Compare > | |
static bool | checkAttributeNumArgsImpl (Sema &S, const ParsedAttr &AL, unsigned Num, unsigned Diag, Compare Comp) |
static bool | checkAttributeNumArgs (Sema &S, const ParsedAttr &AL, unsigned Num) |
Check if the attribute has exactly as many args as Num. More... | |
static bool | checkAttributeAtLeastNumArgs (Sema &S, const ParsedAttr &AL, unsigned Num) |
Check if the attribute has at least as many args as Num. More... | |
static bool | checkAttributeAtMostNumArgs (Sema &S, const ParsedAttr &AL, unsigned Num) |
Check if the attribute has at most as many args as Num. More... | |
template<typename AttrInfo > | |
static std::enable_if< std::is_base_of< Attr, AttrInfo >::value, SourceLocation >::type | getAttrLoc (const AttrInfo &AL) |
A helper function to provide Attribute Location for the Attr types AND the ParsedAttr. More... | |
static SourceLocation | getAttrLoc (const ParsedAttr &AL) |
template<typename AttrInfo > | |
static std::enable_if< std::is_base_of< Attr, AttrInfo >::value, const AttrInfo * >::type | getAttrName (const AttrInfo &AL) |
A helper function to provide Attribute Name for the Attr types AND the ParsedAttr. More... | |
static const IdentifierInfo * | getAttrName (const ParsedAttr &AL) |
template<typename AttrInfo > | |
static bool | checkUInt32Argument (Sema &S, const AttrInfo &AI, const Expr *Expr, uint32_t &Val, unsigned Idx=UINT_MAX) |
If Expr is a valid integer constant, get the value of the integer expression and return success or failure. More... | |
template<typename AttrInfo > | |
static bool | checkPositiveIntArgument (Sema &S, const AttrInfo &AI, const Expr *Expr, int &Val, unsigned Idx=UINT_MAX) |
Wrapper around checkUInt32Argument, with an extra check to be sure that the result will fit into a regular (signed) int. More... | |
template<typename AttrTy > | |
static bool | checkAttrMutualExclusion (Sema &S, Decl *D, SourceRange Range, IdentifierInfo *Ident) |
Diagnose mutually exclusive attributes when present on a given declaration. More... | |
template<typename AttrInfo > | |
static bool | checkFunctionOrMethodParameterIndex (Sema &S, const Decl *D, const AttrInfo &AI, unsigned AttrArgNum, const Expr *IdxExpr, ParamIdx &Idx, bool CanIndexImplicitThis=false) |
Check if IdxExpr is a valid parameter index for a function or instance method D. More... | |
template<typename AttrType > | |
static void | handleSimpleAttribute (Sema &S, Decl *D, const ParsedAttr &AL) |
Applies the given attribute to the Decl without performing any additional semantic checking. More... | |
template<typename AttrType > | |
static void | handleSimpleAttributeWithExclusions (Sema &S, Decl *D, const ParsedAttr &AL) |
template<typename AttrType , typename IncompatibleAttrType , typename... IncompatibleAttrTypes> | |
static void | handleSimpleAttributeWithExclusions (Sema &S, Decl *D, const ParsedAttr &AL) |
Applies the given attribute to the Decl so long as the Decl doesn't already have one of the given incompatible attributes. More... | |
static bool | isIntOrBool (Expr *Exp) |
Check if the passed-in expression is of type int or bool. More... | |
static bool | threadSafetyCheckIsSmartPointer (Sema &S, const RecordType *RT) |
static bool | threadSafetyCheckIsPointer (Sema &S, const Decl *D, const ParsedAttr &AL) |
Check if passed in Decl is a pointer type. More... | |
static const RecordType * | getRecordType (QualType QT) |
Checks that the passed in QualType either is of RecordType or points to RecordType. More... | |
static bool | checkRecordTypeForCapability (Sema &S, QualType Ty) |
static bool | checkTypedefTypeForCapability (QualType Ty) |
static bool | typeHasCapability (Sema &S, QualType Ty) |
static bool | isCapabilityExpr (Sema &S, const Expr *Ex) |
static void | checkAttrArgsAreCapabilityObjs (Sema &S, Decl *D, const ParsedAttr &AL, SmallVectorImpl< Expr *> &Args, int Sidx=0, bool ParamIdxOk=false) |
Checks that all attribute arguments, starting from Sidx, resolve to a capability object. More... | |
static void | handlePtGuardedVarAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | checkGuardedByAttrCommon (Sema &S, Decl *D, const ParsedAttr &AL, Expr *&Arg) |
static void | handleGuardedByAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handlePtGuardedByAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | checkAcquireOrderAttrCommon (Sema &S, Decl *D, const ParsedAttr &AL, SmallVectorImpl< Expr *> &Args) |
static void | handleAcquiredAfterAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAcquiredBeforeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | checkLockFunAttrCommon (Sema &S, Decl *D, const ParsedAttr &AL, SmallVectorImpl< Expr *> &Args) |
static void | handleAssertSharedLockAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAssertExclusiveLockAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
template<typename AttrInfo > | |
static bool | checkParamIsIntegerType (Sema &S, const FunctionDecl *FD, const AttrInfo &AI, unsigned AttrArgNo) |
Checks to be sure that the given parameter number is in bounds, and is an integral type. More... | |
static void | handleAllocSizeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | checkTryLockFunAttrCommon (Sema &S, Decl *D, const ParsedAttr &AL, SmallVectorImpl< Expr *> &Args) |
static void | handleSharedTrylockFunctionAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleExclusiveTrylockFunctionAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleLockReturnedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleLocksExcludedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | checkFunctionConditionAttr (Sema &S, Decl *D, const ParsedAttr &AL, Expr *&Cond, StringRef &Msg) |
static void | handleEnableIfAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleDiagnoseIfAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handlePassObjectSizeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleConsumableAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | checkForConsumableClass (Sema &S, const CXXMethodDecl *MD, const ParsedAttr &AL) |
static void | handleCallableWhenAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleParamTypestateAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleReturnTypestateAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleSetTypestateAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleTestTypestateAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleExtVectorTypeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handlePackedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | checkIBOutletCommon (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleIBOutlet (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleIBOutletCollection (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | attrNonNullArgCheck (Sema &S, QualType T, const ParsedAttr &AL, SourceRange AttrParmRange, SourceRange TypeRange, bool isReturnValue=false) |
static void | handleNonNullAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleNonNullAttrParameter (Sema &S, ParmVarDecl *D, const ParsedAttr &AL) |
static void | handleReturnsNonNullAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleNoEscapeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAssumeAlignedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAllocAlignAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | normalizeName (StringRef &AttrName) |
Normalize the attribute, foo becomes foo. More... | |
static void | handleOwnershipAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleWeakRefAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleIFuncAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAliasAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleTLSModelAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleRestrictAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleCPUSpecificAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleCommonAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleNakedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleNoReturnAttr (Sema &S, Decl *D, const ParsedAttr &Attrs) |
static void | handleNoCfCheckAttr (Sema &S, Decl *D, const ParsedAttr &Attrs) |
static void | handleAnalyzerNoReturnAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleVecReturnAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleDependencyAttr (Sema &S, Scope *Scope, Decl *D, const ParsedAttr &AL) |
static void | handleUnusedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleConstructorAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleDestructorAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
template<typename AttrTy > | |
static void | handleAttrWithMessage (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCSuppresProtocolAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | checkAvailabilityAttr (Sema &S, SourceRange Range, IdentifierInfo *Platform, VersionTuple Introduced, VersionTuple Deprecated, VersionTuple Obsoleted) |
static bool | versionsMatch (const VersionTuple &X, const VersionTuple &Y, bool BeforeIsOkay) |
Check whether the two versions match. More... | |
static void | handleAvailabilityAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleExternalSourceSymbolAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
template<class T > | |
static T * | mergeVisibilityAttr (Sema &S, Decl *D, SourceRange range, typename T::VisibilityType value, unsigned attrSpellingListIndex) |
static void | handleVisibilityAttr (Sema &S, Decl *D, const ParsedAttr &AL, bool isTypeVisibility) |
static void | handleObjCMethodFamilyAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCNSObject (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCIndependentClass (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleBlocksAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleSentinelAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleWarnUnusedResult (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleWeakImportAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
template<typename WorkGroupAttr > | |
static void | handleWorkGroupSize (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleSubGroupSize (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleVecTypeHint (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleSectionAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | checkCodeSegName (Sema &S, SourceLocation LiteralLoc, StringRef CodeSegName) |
static void | handleCodeSegAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleTargetAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleMinVectorWidthAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleCleanupAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleEnumExtensibilityAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleFormatArgAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
Handle attribute((format_arg((idx)))) attribute based on http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html. More... | |
static FormatAttrKind | getFormatAttrKind (StringRef Format) |
getFormatAttrKind - Map from format attribute names to supported format types. More... | |
static void | handleInitPriorityAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
Handle attribute((init_priority(priority))) attributes based on http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html. More... | |
static void | handleFormatAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
Handle attribute((format(type,idx,firstarg))) attributes based on http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html. More... | |
static void | handleTransparentUnionAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAnnotateAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAlignValueAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAlignedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | parseModeAttrArg (Sema &S, StringRef Str, unsigned &DestWidth, bool &IntegerMode, bool &ComplexMode) |
parseModeAttrArg - Parses attribute mode string and returns parsed type attribute. More... | |
static void | handleModeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
handleModeAttr - This attribute modifies the width of a decl with primitive type. More... | |
static void | handleNoDebugAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAlwaysInlineAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleMinSizeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleOptimizeNoneAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleConstantAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleSharedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleGlobalAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleGNUInlineAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleCallConvAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleSuppressAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | isValidSwiftContextType (QualType Ty) |
Pointer-like types in the default address space. More... | |
static bool | isValidSwiftIndirectResultType (QualType Ty) |
Pointers and references in the default address space. More... | |
static bool | isValidSwiftErrorResultType (QualType Ty) |
Pointers and references to pointers in the default address space. More... | |
static void | handleParameterABIAttr (Sema &S, Decl *D, const ParsedAttr &Attrs, ParameterABI Abi) |
static Expr * | makeLaunchBoundsArgExpr (Sema &S, Expr *E, const CUDALaunchBoundsAttr &AL, const unsigned Idx) |
static void | handleLaunchBoundsAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleArgumentWithTypeTagAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleTypeTagForDatatypeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleXRayLogArgsAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | isValidSubjectOfNSReturnsRetainedAttribute (QualType QT) |
static bool | isValidSubjectOfNSAttribute (Sema &S, QualType QT) |
static bool | isValidSubjectOfCFAttribute (Sema &S, QualType QT) |
static void | handleNSConsumedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleNSReturnsRetainedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCReturnsInnerPointerAttr (Sema &S, Decl *D, const ParsedAttr &Attrs) |
static void | handleObjCRequiresSuperAttr (Sema &S, Decl *D, const ParsedAttr &Attrs) |
static void | handleObjCBridgeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCBridgeMutableAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCBridgeRelatedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCDesignatedInitializer (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCRuntimeName (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCBoxable (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCOwnershipAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleObjCPreciseLifetimeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleUuidAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleMSInheritanceAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleDeclspecThreadAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAbiTagAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleARMInterruptAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleMSP430InterruptAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleMipsInterruptAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAnyX86InterruptAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAVRInterruptAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAVRSignalAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleRISCVInterruptAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleInterruptAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAMDGPUFlatWorkGroupSizeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAMDGPUWavesPerEUAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAMDGPUNumSGPRAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAMDGPUNumVGPRAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleX86ForceAlignArgPointerAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleLayoutVersion (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleDLLAttr (Sema &S, Decl *D, const ParsedAttr &A) |
static void | handleCapabilityAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAssertCapabilityAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleAcquireCapabilityAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleTryAcquireCapabilityAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleReleaseCapabilityAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleRequiresCapabilityAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleDeprecatedAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | isGlobalVar (const Decl *D) |
static void | handleNoSanitizeAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleNoSanitizeSpecificAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleInternalLinkageAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | handleOpenCLNoSVMAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static bool | handleCommonAttributeFeatures (Sema &S, Decl *D, const ParsedAttr &AL) |
Handles semantic checking for features that are common to all attributes, such as checking whether a parameter was properly specified, or the correct number of arguments were passed, etc. More... | |
static void | handleOpenCLAccessAttr (Sema &S, Decl *D, const ParsedAttr &AL) |
static void | ProcessDeclAttribute (Sema &S, Scope *scope, Decl *D, const ParsedAttr &AL, bool IncludeCXX11Attributes) |
ProcessDeclAttribute - Apply the specific attribute to the specified decl if the attribute applies to decls. More... | |
static void | checkUnusedDeclAttributes (Sema &S, const ParsedAttributesView &A) |
checkUnusedDeclAttributes - Check a list of attributes to see if it contains any decl attributes that we should warn about. More... | |
static bool | isForbiddenTypeAllowed (Sema &S, Decl *D, const DelayedDiagnostic &diag, UnavailableAttr::ImplicitReason &reason) |
Is the given declaration allowed to use a forbidden type? If so, it'll still be annotated with an attribute that makes it illegal to actually use. More... | |
static void | handleDelayedForbiddenType (Sema &S, DelayedDiagnostic &DD, Decl *D) |
Handle a delayed forbidden-type diagnostic. More... | |
static const AvailabilityAttr * | getAttrForPlatform (ASTContext &Context, const Decl *D) |
static std::pair< AvailabilityResult, const NamedDecl * > | ShouldDiagnoseAvailabilityOfDecl (const NamedDecl *D, std::string *Message) |
The diagnostic we should emit for D , and the declaration that originated it, or AR_Available . More... | |
static bool | ShouldDiagnoseAvailabilityInContext (Sema &S, AvailabilityResult K, VersionTuple DeclVersion, Decl *Ctx) |
whether we should emit a diagnostic for K and DeclVersion in the context of Ctx . More... | |
static bool | shouldDiagnoseAvailabilityByDefault (const ASTContext &Context, const VersionTuple &DeploymentVersion, const VersionTuple &DeclVersion) |
static NamedDecl * | findEnclosingDeclToAnnotate (Decl *OrigCtx) |
static Optional< unsigned > | tryParseObjCMethodName (StringRef Name, SmallVectorImpl< StringRef > &SlotNames, const LangOptions &LangOpts) |
Tries to parse a string as ObjC method name. More... | |
static Optional< AttributeInsertion > | createAttributeInsertion (const NamedDecl *D, const SourceManager &SM, const LangOptions &LangOpts) |
Returns a source location in which it's appropriate to insert a new attribute for the given declaration . More... | |
static void | DoEmitAvailabilityWarning (Sema &S, AvailabilityResult K, Decl *Ctx, const NamedDecl *ReferringDecl, const NamedDecl *OffendingDecl, StringRef Message, ArrayRef< SourceLocation > Locs, const ObjCInterfaceDecl *UnknownObjCClass, const ObjCPropertyDecl *ObjCProperty, bool ObjCPropertyAccess) |
Actually emit an availability diagnostic for a reference to an unavailable decl. More... | |
static void | handleDelayedAvailabilityCheck (Sema &S, DelayedDiagnostic &DD, Decl *Ctx) |
static void | EmitAvailabilityWarning (Sema &S, AvailabilityResult AR, const NamedDecl *ReferringDecl, const NamedDecl *OffendingDecl, StringRef Message, ArrayRef< SourceLocation > Locs, const ObjCInterfaceDecl *UnknownObjCClass, const ObjCPropertyDecl *ObjCProperty, bool ObjCPropertyAccess) |
enum FormatAttrKind |
Enumerator | |
---|---|
CFStringFormat | |
NSStringFormat | |
StrftimeFormat | |
SupportedFormat | |
IgnoredFormat | |
InvalidFormat |
Definition at line 3157 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1386 of file SemaDeclAttr.cpp.
|
static |
Definition at line 681 of file SemaDeclAttr.cpp.
|
static |
Checks that all attribute arguments, starting from Sidx, resolve to a capability object.
Sidx | The attribute argument index to start checking with. |
ParamIdxOk | Whether an argument can be indexing into a function parameter list. |
Definition at line 560 of file SemaDeclAttr.cpp.
|
static |
Check if the attribute has at least as many args as Num.
May output an error.
Definition at line 202 of file SemaDeclAttr.cpp.
|
static |
Check if the attribute has at most as many args as Num.
May output an error.
Definition at line 211 of file SemaDeclAttr.cpp.
|
static |
Check if the attribute has exactly as many args as Num.
May output an error.
Definition at line 194 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::CheckAttrNoArgs(), clang::Sema::CheckCallingConvAttr(), and clang::Sema::CheckRegparmAttr().
|
static |
Definition at line 181 of file SemaDeclAttr.cpp.
|
static |
Diagnose mutually exclusive attributes when present on a given declaration.
Returns true if diagnosed.
Definition at line 294 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2120 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::mergeAvailabilityAttr().
|
static |
Definition at line 2926 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1060 of file SemaDeclAttr.cpp.
|
static |
Definition at line 890 of file SemaDeclAttr.cpp.
|
static |
Check if IdxExpr is a valid parameter index for a function or instance method D.
May output an error.
Definition at line 310 of file SemaDeclAttr.cpp.
|
static |
Definition at line 646 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1281 of file SemaDeclAttr.cpp.
|
static |
Definition at line 724 of file SemaDeclAttr.cpp.
|
static |
Checks to be sure that the given parameter number is in bounds, and is an integral type.
Will emit appropriate diagnostics if this returns false.
AttrArgNo is used to actually retrieve the argument, so it's base-0.
Definition at line 764 of file SemaDeclAttr.cpp.
|
static |
Wrapper around checkUInt32Argument, with an extra check to be sure that the result will fit into a regular (signed) int.
All args have the same purpose as they do in checkUInt32Argument.
Definition at line 273 of file SemaDeclAttr.cpp.
Definition at line 476 of file SemaDeclAttr.cpp.
|
static |
Definition at line 821 of file SemaDeclAttr.cpp.
Definition at line 508 of file SemaDeclAttr.cpp.
References clang::Type::getAs(), and clang::Decl::hasAttr().
|
static |
If Expr is a valid integer constant, get the value of the integer expression and return success or failure.
May output an error.
Definition at line 243 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::CheckRegparmAttr().
|
static |
checkUnusedDeclAttributes - Check a list of attributes to see if it contains any decl attributes that we should warn about.
Definition at line 6701 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::ActOnCastExpr(), clang::Sema::ActOnTypeName(), clang::Sema::checkUnusedDeclAttributes(), and clang::Sema::CorrectDelayedTyposInExpr().
|
static |
Returns a source location in which it's appropriate to insert a new attribute for the given declaration .
Definition at line 7135 of file SemaDeclAttr.cpp.
References clang::Lexer::getLocForEndOfToken(), clang::SourceLocation::isInvalid(), and SM.
|
static |
Actually emit an availability diagnostic for a reference to an unavailable decl.
Ctx | The context that the reference occurred in |
ReferringDecl | The exact declaration that was referenced. |
OffendingDecl | A related decl to ReferringDecl that has an availability attribute corresponding to K attached to it. Note that this may not be the same as ReferringDecl, i.e. if an EnumDecl is annotated and we refer to a member EnumConstantDecl, ReferringDecl is the EnumConstantDecl and OffendingDecl is the EnumDecl. |
Definition at line 7165 of file SemaDeclAttr.cpp.
|
static |
Definition at line 7462 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::DiagnoseAvailabilityOfDecl().
Definition at line 7058 of file SemaDeclAttr.cpp.
References clang::Decl::getLocEnd(), and clang::Decl::getLocStart().
|
static |
Definition at line 6911 of file SemaDeclAttr.cpp.
|
static |
A helper function to provide Attribute Location for the Attr types AND the ParsedAttr.
Definition at line 223 of file SemaDeclAttr.cpp.
|
static |
Definition at line 226 of file SemaDeclAttr.cpp.
References clang::ParsedAttr::getLoc().
|
static |
A helper function to provide Attribute Name for the Attr types AND the ParsedAttr.
Definition at line 233 of file SemaDeclAttr.cpp.
|
static |
Definition at line 236 of file SemaDeclAttr.cpp.
References clang::ParsedAttr::getName().
|
static |
getFormatAttrKind - Map from format attribute names to supported format types.
Definition at line 3168 of file SemaDeclAttr.cpp.
References CFStringFormat, IgnoredFormat, InvalidFormat, NSStringFormat, StrftimeFormat, and SupportedFormat.
|
static |
getFunctionOrMethodNumParams - Return number of function or method parameters.
It is an error to call this on a K&R function (use hasFunctionProto first).
Definition at line 88 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
|
static |
Definition at line 105 of file SemaDeclAttr.cpp.
Definition at line 96 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
|
static |
Definition at line 121 of file SemaDeclAttr.cpp.
Definition at line 115 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
Referenced by clang::Sema::AddAllocAlignAttr().
|
static |
Definition at line 175 of file SemaDeclAttr.cpp.
References clang::ParsedAttr::getNumArgs(), and clang::ParsedAttr::hasParsedType().
|
static |
Checks that the passed in QualType either is of RecordType or points to RecordType.
Returns the relevant RecordType, null if it does not exit.
Definition at line 465 of file SemaDeclAttr.cpp.
References clang::Type::getAs(), and clang::Type::getPointeeType().
Referenced by clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaDelegatingInvokeBody(), and clang::ASTContext::getTypeDeclType().
|
static |
Definition at line 5131 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5712 of file SemaDeclAttr.cpp.
|
static |
Definition at line 702 of file SemaDeclAttr.cpp.
|
static |
Definition at line 713 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1788 of file SemaDeclAttr.cpp.
|
static |
Definition at line 3513 of file SemaDeclAttr.cpp.
|
static |
Definition at line 3463 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1504 of file SemaDeclAttr.cpp.
|
static |
Definition at line 783 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4041 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5460 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5517 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5528 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5488 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1968 of file SemaDeclAttr.cpp.
|
static |
Definition at line 3445 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5284 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4558 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5163 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5702 of file SemaDeclAttr.cpp.
|
static |
Definition at line 745 of file SemaDeclAttr.cpp.
|
static |
Definition at line 733 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1497 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2097 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2341 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5349 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5362 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2631 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1077 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4142 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5678 of file SemaDeclAttr.cpp.
|
static |
Definition at line 3042 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2957 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1896 of file SemaDeclAttr.cpp.
|
static |
Handles semantic checking for features that are common to all attributes, such as checking whether a parameter was properly specified, or the correct number of arguments were passed, etc.
Definition at line 5869 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4064 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2074 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1038 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1852 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5113 of file SemaDeclAttr.cpp.
|
static |
Definition at line 7394 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::PopParsingDeclaration().
|
static |
Handle a delayed forbidden-type diagnostic.
Definition at line 6886 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::PopParsingDeclaration().
|
static |
Definition at line 2045 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5767 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2085 of file SemaDeclAttr.cpp.
|
static |
Definition at line 976 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5608 of file SemaDeclAttr.cpp.
|
static |
Definition at line 919 of file SemaDeclAttr.cpp.
|
static |
Definition at line 3099 of file SemaDeclAttr.cpp.
|
static |
Definition at line 849 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2455 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1245 of file SemaDeclAttr.cpp.
|
static |
Handle attribute((format_arg((idx)))) attribute based on http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html.
Definition at line 3123 of file SemaDeclAttr.cpp.
|
static |
Handle attribute((format(type,idx,firstarg))) attributes based on http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html.
Definition at line 3250 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4097 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4130 of file SemaDeclAttr.cpp.
|
static |
Definition at line 660 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1307 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1316 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1772 of file SemaDeclAttr.cpp.
|
static |
Handle attribute((init_priority(priority))) attributes based on http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html.
Definition at line 3189 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5850 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5433 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4548 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5564 of file SemaDeclAttr.cpp.
|
static |
Definition at line 860 of file SemaDeclAttr.cpp.
|
static |
Definition at line 873 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4052 of file SemaDeclAttr.cpp.
|
static |
Definition at line 3023 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5226 of file SemaDeclAttr.cpp.
|
static |
handleModeAttr - This attribute modifies the width of a decl with primitive type.
Despite what would be logical, the mode attribute is a decl attribute, not a type attribute: 'int ** __attribute((mode(HI))) *G;' tries to make 'G' be HImode, not an intermediate pointer.
Definition at line 3793 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5097 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5191 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1908 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1941 of file SemaDeclAttr.cpp.
|
static |
Definition at line 3949 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1481 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1402 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1447 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1928 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5807 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5833 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4653 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4701 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4959 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4867 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4896 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4910 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4928 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2615 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2558 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2586 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4982 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4989 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4846 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4818 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4945 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2107 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5909 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5857 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4058 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1603 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1250 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4396 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1114 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1003 of file SemaDeclAttr.cpp.
|
static |
Definition at line 669 of file SemaDeclAttr.cpp.
|
static |
Definition at line 637 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5738 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5749 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1840 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1469 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1150 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5376 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2901 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2651 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1197 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4077 of file SemaDeclAttr.cpp.
|
static |
Definition at line 838 of file SemaDeclAttr.cpp.
|
static |
Applies the given attribute to the Decl without performing any additional semantic checking.
Definition at line 390 of file SemaDeclAttr.cpp.
|
static |
Definition at line 396 of file SemaDeclAttr.cpp.
|
static |
Applies the given attribute to the Decl so long as the Decl doesn't already have one of the given incompatible attributes.
Definition at line 405 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2817 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4243 of file SemaDeclAttr.cpp.
|
static |
Definition at line 3010 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1221 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1821 of file SemaDeclAttr.cpp.
|
static |
Definition at line 3372 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::ProcessDeclAttributeDelayed().
|
static |
Definition at line 5724 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4591 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2062 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5047 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1990 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2838 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2505 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2742 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2767 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1710 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2792 of file SemaDeclAttr.cpp.
|
static |
Definition at line 5539 of file SemaDeclAttr.cpp.
|
static |
Definition at line 4621 of file SemaDeclAttr.cpp.
Return true if the given decl has a declarator that should have been processed by Sema::GetTypeForDeclarator.
Definition at line 70 of file SemaDeclAttr.cpp.
hasFunctionProto - Return true if the given decl has a argument information.
This decl should have already passed isFunctionOrMethod or isFunctionOrMethodOrBlock.
Definition at line 79 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
Definition at line 530 of file SemaDeclAttr.cpp.
|
inlinestatic |
Definition at line 159 of file SemaDeclAttr.cpp.
References clang::IdentifierTable::get(), clang::Type::getAs(), clang::NamedDecl::getIdentifier(), clang::PointerType::getPointeeType(), clang::TagDecl::getTagKind(), clang::ASTContext::Idents, and clang::TTK_Struct.
|
static |
Is the given declaration allowed to use a forbidden type? If so, it'll still be annotated with an attribute that makes it illegal to actually use.
Definition at line 6851 of file SemaDeclAttr.cpp.
isFunctionOrMethod - Return true if the given decl has function type (function or function-typed variable) or an Objective-C method.
Definition at line 58 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
Referenced by isFunctionOrMethodOrBlock(), clang::DeclContext::isLookupContext(), and LookupVisibleDecls().
Return true if the given decl has function type (function or function-typed variable) or an Objective-C method or a block.
Definition at line 64 of file SemaDeclAttr.cpp.
References isFunctionOrMethod().
Definition at line 129 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
Definition at line 5801 of file SemaDeclAttr.cpp.
Definition at line 137 of file SemaDeclAttr.cpp.
Referenced by clang::ObjCMethodDecl::getCanonicalDecl(), clang::getCursorKindForDecl(), clang::ObjCMethodDecl::getMethodFamily(), and clang::ObjCMethodDecl::setMethodParams().
Check if the passed-in expression is of type int or bool.
Definition at line 415 of file SemaDeclAttr.cpp.
References clang::Expr::getType(), clang::Type::isBooleanType(), and clang::Type::isIntegerType().
|
inlinestatic |
Definition at line 143 of file SemaDeclAttr.cpp.
References clang::IdentifierTable::get(), clang::Type::getAs(), clang::NamedDecl::getIdentifier(), and clang::ASTContext::Idents.
Definition at line 4648 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::AddNSConsumedAttr().
Definition at line 4643 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::AddNSConsumedAttr().
Definition at line 4639 of file SemaDeclAttr.cpp.
References clang::Type::isDependentType(), and clang::Type::isObjCRetainableType().
Referenced by clang::Sema::checkNSReturnsRetainedReturnType().
Pointer-like types in the default address space.
Definition at line 4364 of file SemaDeclAttr.cpp.
References clang::Default, clang::QualType::getAddressSpace(), clang::Type::getPointeeType(), clang::Type::hasPointerRepresentation(), and clang::Type::isDependentType().
Referenced by clang::Sema::AddParameterABIAttr(), and isValidSwiftErrorResultType().
Pointers and references to pointers in the default address space.
Definition at line 4383 of file SemaDeclAttr.cpp.
References clang::Qualifiers::empty(), clang::Type::getAs(), clang::Type::getPointeeType(), clang::QualType::getQualifiers(), clang::Type::isDependentType(), and isValidSwiftContextType().
Pointers and references in the default address space.
Definition at line 4371 of file SemaDeclAttr.cpp.
References clang::Default, clang::QualType::getAddressSpace(), clang::Type::getAs(), clang::Type::getPointeeType(), and clang::Type::isDependentType().
|
static |
Definition at line 4493 of file SemaDeclAttr.cpp.
|
static |
Definition at line 2476 of file SemaDeclAttr.cpp.
|
static |
Normalize the attribute, foo becomes foo.
Returns true if normalization was applied.
Definition at line 1594 of file SemaDeclAttr.cpp.
|
static |
parseModeAttrArg - Parses attribute mode string and returns parsed type attribute.
Definition at line 3733 of file SemaDeclAttr.cpp.
|
static |
ProcessDeclAttribute - Apply the specific attribute to the specified decl if the attribute applies to decls.
If the attribute is a type attribute, just silently ignore it if a GNU attribute.
Definition at line 5949 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::ProcessAccessDeclAttributeList().
|
static |
Definition at line 7033 of file SemaDeclAttr.cpp.
|
static |
whether we should emit a diagnostic for K
and DeclVersion
in the context of Ctx
.
For example, we should emit an unavailable diagnostic in a deprecated context, but not the other way around.
Definition at line 6986 of file SemaDeclAttr.cpp.
|
static |
The diagnostic we should emit for D
, and the declaration that originated it, or AR_Available
.
D | The declaration to check. |
Message | If non-null, this will be populated with the message from the availability attribute that is selected. |
Definition at line 6946 of file SemaDeclAttr.cpp.
References clang::AR_Available, and clang::Decl::getAvailability().
Referenced by clang::Sema::DiagnoseAvailabilityOfDecl().
|
static |
Check if passed in Decl is a pointer type.
Note that this function may produce an error message.
Definition at line 440 of file SemaDeclAttr.cpp.
|
static |
Definition at line 423 of file SemaDeclAttr.cpp.
|
static |
Tries to parse a string as ObjC method name.
Name | The string to parse. Expected to originate from availability attribute argument. |
SlotNames | The vector that will be populated with slot names. In case of unsuccessful parsing can contain invalid data. |
Definition at line 7102 of file SemaDeclAttr.cpp.
Definition at line 520 of file SemaDeclAttr.cpp.
|
static |
Check whether the two versions match.
If either version tuple is empty, then they are assumed to match. If BeforeIsOkay
is true, then X
can be less than or equal to Y
.
Definition at line 2163 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::mergeAvailabilityAttr().