clang  7.0.0svn
Namespaces | Enumerations | Functions
SemaDeclAttr.cpp File Reference
#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"
Include dependency graph for SemaDeclAttr.cpp:

Go to the source code of this file.

Namespaces

 AttributeLangSupport
 

Enumerations

enum  AttributeLangSupport::LANG { AttributeLangSupport::C, AttributeLangSupport::Cpp, AttributeLangSupport::ObjC }
 
enum  FormatAttrKind {
  CFStringFormat, NSStringFormat, StrftimeFormat, SupportedFormat,
  IgnoredFormat, InvalidFormat
}
 

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 AttributeList &AL)
 
template<typename Compare >
static bool checkAttributeNumArgsImpl (Sema &S, const AttributeList &AL, unsigned Num, unsigned Diag, Compare Comp)
 
static bool checkAttributeNumArgs (Sema &S, const AttributeList &AL, unsigned Num)
 Check if the attribute has exactly as many args as Num. More...
 
static bool checkAttributeAtLeastNumArgs (Sema &S, const AttributeList &AL, unsigned Num)
 Check if the attribute has at least as many args as Num. More...
 
static bool checkAttributeAtMostNumArgs (Sema &S, const AttributeList &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 AttributeList. More...
 
static SourceLocation getAttrLoc (const AttributeList &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 AttributeList. More...
 
static const IdentifierInfogetAttrName (const AttributeList &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 AttributeList &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 AttributeList &AL)
 
template<typename AttrType , typename IncompatibleAttrType , typename... IncompatibleAttrTypes>
static void handleSimpleAttributeWithExclusions (Sema &S, Decl *D, const AttributeList &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 AttributeList &AL)
 Check if passed in Decl is a pointer type. More...
 
static const RecordTypegetRecordType (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 AttributeList &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 AttributeList &AL)
 
static bool checkGuardedByAttrCommon (Sema &S, Decl *D, const AttributeList &AL, Expr *&Arg)
 
static void handleGuardedByAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handlePtGuardedByAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static bool checkAcquireOrderAttrCommon (Sema &S, Decl *D, const AttributeList &AL, SmallVectorImpl< Expr *> &Args)
 
static void handleAcquiredAfterAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAcquiredBeforeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static bool checkLockFunAttrCommon (Sema &S, Decl *D, const AttributeList &AL, SmallVectorImpl< Expr *> &Args)
 
static void handleAssertSharedLockAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAssertExclusiveLockAttr (Sema &S, Decl *D, const AttributeList &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 AttributeList &AL)
 
static bool checkTryLockFunAttrCommon (Sema &S, Decl *D, const AttributeList &AL, SmallVectorImpl< Expr *> &Args)
 
static void handleSharedTrylockFunctionAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleExclusiveTrylockFunctionAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleLockReturnedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleLocksExcludedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static bool checkFunctionConditionAttr (Sema &S, Decl *D, const AttributeList &AL, Expr *&Cond, StringRef &Msg)
 
static void handleEnableIfAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleDiagnoseIfAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handlePassObjectSizeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleConsumableAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static bool checkForConsumableClass (Sema &S, const CXXMethodDecl *MD, const AttributeList &AL)
 
static void handleCallableWhenAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleParamTypestateAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleReturnTypestateAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleSetTypestateAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleTestTypestateAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleExtVectorTypeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handlePackedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static bool checkIBOutletCommon (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleIBOutlet (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleIBOutletCollection (Sema &S, Decl *D, const AttributeList &AL)
 
static bool attrNonNullArgCheck (Sema &S, QualType T, const AttributeList &AL, SourceRange AttrParmRange, SourceRange TypeRange, bool isReturnValue=false)
 
static void handleNonNullAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleNonNullAttrParameter (Sema &S, ParmVarDecl *D, const AttributeList &AL)
 
static void handleReturnsNonNullAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleNoEscapeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAssumeAlignedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAllocAlignAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static bool normalizeName (StringRef &AttrName)
 Normalize the attribute, foo becomes foo. More...
 
static void handleOwnershipAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleWeakRefAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleIFuncAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAliasAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleTLSModelAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleRestrictAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleCommonAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleNakedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleNoReturnAttr (Sema &S, Decl *D, const AttributeList &Attrs)
 
static void handleNoCfCheckAttr (Sema &S, Decl *D, const AttributeList &Attrs)
 
static void handleAnalyzerNoReturnAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleVecReturnAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleDependencyAttr (Sema &S, Scope *Scope, Decl *D, const AttributeList &AL)
 
static void handleUnusedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleConstructorAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleDestructorAttr (Sema &S, Decl *D, const AttributeList &AL)
 
template<typename AttrTy >
static void handleAttrWithMessage (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCSuppresProtocolAttr (Sema &S, Decl *D, const AttributeList &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 AttributeList &AL)
 
static void handleExternalSourceSymbolAttr (Sema &S, Decl *D, const AttributeList &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 AttributeList &AL, bool isTypeVisibility)
 
static void handleObjCMethodFamilyAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCNSObject (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCIndependentClass (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleBlocksAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleSentinelAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleWarnUnusedResult (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleWeakImportAttr (Sema &S, Decl *D, const AttributeList &AL)
 
template<typename WorkGroupAttr >
static void handleWorkGroupSize (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleSubGroupSize (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleVecTypeHint (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleSectionAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleTargetAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleCleanupAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleEnumExtensibilityAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleFormatArgAttr (Sema &S, Decl *D, const AttributeList &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 AttributeList &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 AttributeList &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 AttributeList &AL)
 
static void handleAnnotateAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAlignValueAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAlignedAttr (Sema &S, Decl *D, const AttributeList &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 AttributeList &AL)
 handleModeAttr - This attribute modifies the width of a decl with primitive type. More...
 
static void handleNoDebugAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAlwaysInlineAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleMinSizeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleOptimizeNoneAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleConstantAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleSharedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleGlobalAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleGNUInlineAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleCallConvAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleSuppressAttr (Sema &S, Decl *D, const AttributeList &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 AttributeList &Attrs, ParameterABI Abi)
 
static ExprmakeLaunchBoundsArgExpr (Sema &S, Expr *E, const CUDALaunchBoundsAttr &AL, const unsigned Idx)
 
static void handleLaunchBoundsAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleArgumentWithTypeTagAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleTypeTagForDatatypeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleXRayLogArgsAttr (Sema &S, Decl *D, const AttributeList &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 AttributeList &AL)
 
static void handleNSReturnsRetainedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCReturnsInnerPointerAttr (Sema &S, Decl *D, const AttributeList &Attrs)
 
static void handleObjCRequiresSuperAttr (Sema &S, Decl *D, const AttributeList &Attrs)
 
static void handleObjCBridgeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCBridgeMutableAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCBridgeRelatedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCDesignatedInitializer (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCRuntimeName (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCBoxable (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCOwnershipAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleObjCPreciseLifetimeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleUuidAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleMSInheritanceAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleDeclspecThreadAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAbiTagAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleARMInterruptAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleMSP430InterruptAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleMipsInterruptAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAnyX86InterruptAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAVRInterruptAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAVRSignalAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleInterruptAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAMDGPUFlatWorkGroupSizeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAMDGPUWavesPerEUAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAMDGPUNumSGPRAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAMDGPUNumVGPRAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleX86ForceAlignArgPointerAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleLayoutVersion (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleDLLAttr (Sema &S, Decl *D, const AttributeList &A)
 
static void handleCapabilityAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAssertCapabilityAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleAcquireCapabilityAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleTryAcquireCapabilityAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleReleaseCapabilityAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleRequiresCapabilityAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleDeprecatedAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static bool isGlobalVar (const Decl *D)
 
static void handleNoSanitizeAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleNoSanitizeSpecificAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleInternalLinkageAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static void handleOpenCLNoSVMAttr (Sema &S, Decl *D, const AttributeList &AL)
 
static bool handleCommonAttributeFeatures (Sema &S, Decl *D, const AttributeList &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 AttributeList &AL)
 
static void ProcessDeclAttribute (Sema &S, Scope *scope, Decl *D, const AttributeList &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 AttributeList *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 NamedDeclfindEnclosingDeclToAnnotate (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)
 

Enumeration Type Documentation

◆ FormatAttrKind

Enumerator
CFStringFormat 
NSStringFormat 
StrftimeFormat 
SupportedFormat 
IgnoredFormat 
InvalidFormat 

Definition at line 3060 of file SemaDeclAttr.cpp.

Function Documentation

◆ attrNonNullArgCheck()

static bool attrNonNullArgCheck ( Sema S,
QualType  T,
const AttributeList AL,
SourceRange  AttrParmRange,
SourceRange  TypeRange,
bool  isReturnValue = false 
)
static

Definition at line 1406 of file SemaDeclAttr.cpp.

◆ checkAcquireOrderAttrCommon()

static bool checkAcquireOrderAttrCommon ( Sema S,
Decl D,
const AttributeList AL,
SmallVectorImpl< Expr *> &  Args 
)
static

Definition at line 686 of file SemaDeclAttr.cpp.

◆ checkAttrArgsAreCapabilityObjs()

static void checkAttrArgsAreCapabilityObjs ( Sema S,
Decl D,
const AttributeList AL,
SmallVectorImpl< Expr *> &  Args,
int  Sidx = 0,
bool  ParamIdxOk = false 
)
static

Checks that all attribute arguments, starting from Sidx, resolve to a capability object.

Parameters
SidxThe attribute argument index to start checking with.
ParamIdxOkWhether an argument can be indexing into a function parameter list.

Definition at line 563 of file SemaDeclAttr.cpp.

◆ checkAttributeAtLeastNumArgs()

static bool checkAttributeAtLeastNumArgs ( Sema S,
const AttributeList AL,
unsigned  Num 
)
static

Check if the attribute has at least as many args as Num.

May output an error.

Definition at line 203 of file SemaDeclAttr.cpp.

◆ checkAttributeAtMostNumArgs()

static bool checkAttributeAtMostNumArgs ( Sema S,
const AttributeList AL,
unsigned  Num 
)
static

Check if the attribute has at most as many args as Num.

May output an error.

Definition at line 212 of file SemaDeclAttr.cpp.

◆ checkAttributeNumArgs()

static bool checkAttributeNumArgs ( Sema S,
const AttributeList AL,
unsigned  Num 
)
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().

◆ checkAttributeNumArgsImpl()

template<typename Compare >
static bool checkAttributeNumArgsImpl ( Sema S,
const AttributeList AL,
unsigned  Num,
unsigned  Diag,
Compare  Comp 
)
static

Definition at line 181 of file SemaDeclAttr.cpp.

◆ checkAttrMutualExclusion()

template<typename AttrTy >
static bool checkAttrMutualExclusion ( Sema S,
Decl D,
SourceRange  Range,
IdentifierInfo Ident 
)
static

Diagnose mutually exclusive attributes when present on a given declaration.

Returns true if diagnosed.

Definition at line 297 of file SemaDeclAttr.cpp.

◆ checkAvailabilityAttr()

static bool checkAvailabilityAttr ( Sema S,
SourceRange  Range,
IdentifierInfo Platform,
VersionTuple  Introduced,
VersionTuple  Deprecated,
VersionTuple  Obsoleted 
)
static

Definition at line 2101 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::mergeAvailabilityAttr().

◆ checkForConsumableClass()

static bool checkForConsumableClass ( Sema S,
const CXXMethodDecl MD,
const AttributeList AL 
)
static

Definition at line 1075 of file SemaDeclAttr.cpp.

◆ checkFunctionConditionAttr()

static bool checkFunctionConditionAttr ( Sema S,
Decl D,
const AttributeList AL,
Expr *&  Cond,
StringRef &  Msg 
)
static

Definition at line 903 of file SemaDeclAttr.cpp.

◆ checkFunctionOrMethodParameterIndex()

template<typename AttrInfo >
static bool checkFunctionOrMethodParameterIndex ( Sema S,
const Decl D,
const AttrInfo &  AI,
unsigned  AttrArgNum,
const Expr IdxExpr,
ParamIdx Idx,
bool  CanIndexImplicitThis = false 
)
static

Check if IdxExpr is a valid parameter index for a function or instance method D.

May output an error.

Returns
true if IdxExpr is a valid index.

Definition at line 313 of file SemaDeclAttr.cpp.

◆ checkGuardedByAttrCommon()

static bool checkGuardedByAttrCommon ( Sema S,
Decl D,
const AttributeList AL,
Expr *&  Arg 
)
static

Definition at line 650 of file SemaDeclAttr.cpp.

◆ checkIBOutletCommon()

static bool checkIBOutletCommon ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1300 of file SemaDeclAttr.cpp.

◆ checkLockFunAttrCommon()

static bool checkLockFunAttrCommon ( Sema S,
Decl D,
const AttributeList AL,
SmallVectorImpl< Expr *> &  Args 
)
static

Definition at line 732 of file SemaDeclAttr.cpp.

◆ checkParamIsIntegerType()

template<typename AttrInfo >
static bool checkParamIsIntegerType ( Sema S,
const FunctionDecl FD,
const AttrInfo &  AI,
unsigned  AttrArgNo 
)
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 774 of file SemaDeclAttr.cpp.

◆ checkPositiveIntArgument()

template<typename AttrInfo >
static bool checkPositiveIntArgument ( Sema S,
const AttrInfo &  AI,
const Expr Expr,
int &  Val,
unsigned  Idx = UINT_MAX 
)
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 276 of file SemaDeclAttr.cpp.

◆ checkRecordTypeForCapability()

static bool checkRecordTypeForCapability ( Sema S,
QualType  Ty 
)
static

Definition at line 479 of file SemaDeclAttr.cpp.

◆ checkTryLockFunAttrCommon()

static bool checkTryLockFunAttrCommon ( Sema S,
Decl D,
const AttributeList AL,
SmallVectorImpl< Expr *> &  Args 
)
static

Definition at line 831 of file SemaDeclAttr.cpp.

◆ checkTypedefTypeForCapability()

static bool checkTypedefTypeForCapability ( QualType  Ty)
static

Definition at line 511 of file SemaDeclAttr.cpp.

References clang::Type::getAs(), and clang::Decl::hasAttr().

◆ checkUInt32Argument()

template<typename AttrInfo >
static bool checkUInt32Argument ( Sema S,
const AttrInfo &  AI,
const Expr Expr,
uint32_t &  Val,
unsigned  Idx = UINT_MAX 
)
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 246 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::CheckRegparmAttr().

◆ checkUnusedDeclAttributes()

static void checkUnusedDeclAttributes ( Sema S,
const AttributeList A 
)
static

checkUnusedDeclAttributes - Check a list of attributes to see if it contains any decl attributes that we should warn about.

Definition at line 6521 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::ActOnCastExpr(), clang::Sema::ActOnTypeName(), clang::Sema::checkUnusedDeclAttributes(), and clang::Sema::CorrectDelayedTyposInExpr().

◆ createAttributeInsertion()

static Optional<AttributeInsertion> createAttributeInsertion ( const NamedDecl D,
const SourceManager SM,
const LangOptions LangOpts 
)
static

Returns a source location in which it's appropriate to insert a new attribute for the given declaration .

Definition at line 6954 of file SemaDeclAttr.cpp.

References clang::Lexer::getLocForEndOfToken(), clang::SourceLocation::isInvalid(), and SM.

◆ DoEmitAvailabilityWarning()

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 
)
static

Actually emit an availability diagnostic for a reference to an unavailable decl.

Parameters
CtxThe context that the reference occurred in
ReferringDeclThe exact declaration that was referenced.
OffendingDeclA 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 6984 of file SemaDeclAttr.cpp.

◆ EmitAvailabilityWarning()

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 
)
static

Definition at line 7281 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::DiagnoseAvailabilityOfDecl().

◆ findEnclosingDeclToAnnotate()

static NamedDecl* findEnclosingDeclToAnnotate ( Decl OrigCtx)
static

Definition at line 6877 of file SemaDeclAttr.cpp.

References clang::Decl::getLocEnd(), and clang::Decl::getLocStart().

◆ getAttrForPlatform()

static const AvailabilityAttr* getAttrForPlatform ( ASTContext Context,
const Decl D 
)
static

Definition at line 6730 of file SemaDeclAttr.cpp.

◆ getAttrLoc() [1/2]

template<typename AttrInfo >
static std::enable_if<std::is_base_of<Attr, AttrInfo>::value, SourceLocation>::type getAttrLoc ( const AttrInfo &  AL)
static

A helper function to provide Attribute Location for the Attr types AND the AttributeList.

Definition at line 224 of file SemaDeclAttr.cpp.

◆ getAttrLoc() [2/2]

static SourceLocation getAttrLoc ( const AttributeList AL)
static

Definition at line 227 of file SemaDeclAttr.cpp.

References clang::AttributeList::getLoc().

◆ getAttrName() [1/2]

template<typename AttrInfo >
static std::enable_if<std::is_base_of<Attr, AttrInfo>::value, const AttrInfo *>::type getAttrName ( const AttrInfo &  AL)
static

A helper function to provide Attribute Name for the Attr types AND the AttributeList.

Definition at line 236 of file SemaDeclAttr.cpp.

◆ getAttrName() [2/2]

static const IdentifierInfo* getAttrName ( const AttributeList AL)
static

Definition at line 239 of file SemaDeclAttr.cpp.

References clang::AttributeList::getName().

◆ getFormatAttrKind()

static FormatAttrKind getFormatAttrKind ( StringRef  Format)
static

getFormatAttrKind - Map from format attribute names to supported format types.

Definition at line 3071 of file SemaDeclAttr.cpp.

References CFStringFormat, IgnoredFormat, InvalidFormat, NSStringFormat, StrftimeFormat, and SupportedFormat.

◆ getFunctionOrMethodNumParams()

static unsigned getFunctionOrMethodNumParams ( const Decl D)
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().

◆ getFunctionOrMethodParamRange()

static SourceRange getFunctionOrMethodParamRange ( const Decl D,
unsigned  Idx 
)
static

Definition at line 105 of file SemaDeclAttr.cpp.

◆ getFunctionOrMethodParamType()

static QualType getFunctionOrMethodParamType ( const Decl D,
unsigned  Idx 
)
static

Definition at line 96 of file SemaDeclAttr.cpp.

References clang::Decl::getFunctionType().

◆ getFunctionOrMethodResultSourceRange()

static SourceRange getFunctionOrMethodResultSourceRange ( const Decl D)
static

Definition at line 121 of file SemaDeclAttr.cpp.

◆ getFunctionOrMethodResultType()

static QualType getFunctionOrMethodResultType ( const Decl D)
static

Definition at line 115 of file SemaDeclAttr.cpp.

References clang::Decl::getFunctionType().

Referenced by clang::Sema::AddAllocAlignAttr().

◆ getNumAttributeArgs()

static unsigned getNumAttributeArgs ( const AttributeList AL)
static

◆ getRecordType()

static const RecordType* getRecordType ( QualType  QT)
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 468 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().

◆ handleAbiTagAttr()

static void handleAbiTagAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5020 of file SemaDeclAttr.cpp.

◆ handleAcquireCapabilityAttr()

static void handleAcquireCapabilityAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5547 of file SemaDeclAttr.cpp.

◆ handleAcquiredAfterAttr()

static void handleAcquiredAfterAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 708 of file SemaDeclAttr.cpp.

◆ handleAcquiredBeforeAttr()

static void handleAcquiredBeforeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 720 of file SemaDeclAttr.cpp.

◆ handleAliasAttr()

static void handleAliasAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1811 of file SemaDeclAttr.cpp.

◆ handleAlignedAttr()

static void handleAlignedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3419 of file SemaDeclAttr.cpp.

◆ handleAlignValueAttr()

static void handleAlignValueAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3368 of file SemaDeclAttr.cpp.

◆ handleAllocAlignAttr()

static void handleAllocAlignAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1526 of file SemaDeclAttr.cpp.

◆ handleAllocSizeAttr()

static void handleAllocSizeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 793 of file SemaDeclAttr.cpp.

◆ handleAlwaysInlineAttr()

static void handleAlwaysInlineAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3946 of file SemaDeclAttr.cpp.

◆ handleAMDGPUFlatWorkGroupSizeAttr()

static void handleAMDGPUFlatWorkGroupSizeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5291 of file SemaDeclAttr.cpp.

◆ handleAMDGPUNumSGPRAttr()

static void handleAMDGPUNumSGPRAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5349 of file SemaDeclAttr.cpp.

◆ handleAMDGPUNumVGPRAttr()

static void handleAMDGPUNumVGPRAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5361 of file SemaDeclAttr.cpp.

◆ handleAMDGPUWavesPerEUAttr()

static void handleAMDGPUWavesPerEUAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5319 of file SemaDeclAttr.cpp.

◆ handleAnalyzerNoReturnAttr()

static void handleAnalyzerNoReturnAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1948 of file SemaDeclAttr.cpp.

◆ handleAnnotateAttr()

static void handleAnnotateAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3350 of file SemaDeclAttr.cpp.

◆ handleAnyX86InterruptAttr()

static void handleAnyX86InterruptAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5176 of file SemaDeclAttr.cpp.

◆ handleArgumentWithTypeTagAttr()

static void handleArgumentWithTypeTagAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4444 of file SemaDeclAttr.cpp.

◆ handleARMInterruptAttr()

static void handleARMInterruptAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5052 of file SemaDeclAttr.cpp.

◆ handleAssertCapabilityAttr()

static void handleAssertCapabilityAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5536 of file SemaDeclAttr.cpp.

◆ handleAssertExclusiveLockAttr()

static void handleAssertExclusiveLockAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 755 of file SemaDeclAttr.cpp.

◆ handleAssertSharedLockAttr()

static void handleAssertSharedLockAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 742 of file SemaDeclAttr.cpp.

◆ handleAssumeAlignedAttr()

static void handleAssumeAlignedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1518 of file SemaDeclAttr.cpp.

◆ handleAttrWithMessage()

template<typename AttrTy >
static void handleAttrWithMessage ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2077 of file SemaDeclAttr.cpp.

◆ handleAvailabilityAttr()

static void handleAvailabilityAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2322 of file SemaDeclAttr.cpp.

◆ handleAVRInterruptAttr()

static void handleAVRInterruptAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5242 of file SemaDeclAttr.cpp.

◆ handleAVRSignalAttr()

static void handleAVRSignalAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5255 of file SemaDeclAttr.cpp.

◆ handleBlocksAttr()

static void handleBlocksAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2614 of file SemaDeclAttr.cpp.

◆ handleCallableWhenAttr()

static void handleCallableWhenAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1092 of file SemaDeclAttr.cpp.

◆ handleCallConvAttr()

static void handleCallConvAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4049 of file SemaDeclAttr.cpp.

◆ handleCapabilityAttr()

static void handleCapabilityAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5512 of file SemaDeclAttr.cpp.

◆ handleCleanupAttr()

static void handleCleanupAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2945 of file SemaDeclAttr.cpp.

◆ handleCommonAttr()

static void handleCommonAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1876 of file SemaDeclAttr.cpp.

◆ handleCommonAttributeFeatures()

static bool handleCommonAttributeFeatures ( Sema S,
Decl D,
const AttributeList AL 
)
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 5705 of file SemaDeclAttr.cpp.

◆ handleConstantAttr()

static void handleConstantAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3971 of file SemaDeclAttr.cpp.

◆ handleConstructorAttr()

static void handleConstructorAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2054 of file SemaDeclAttr.cpp.

◆ handleConsumableAttr()

static void handleConsumableAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1053 of file SemaDeclAttr.cpp.

◆ handleDeclspecThreadAttr()

static void handleDeclspecThreadAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5001 of file SemaDeclAttr.cpp.

◆ handleDelayedAvailabilityCheck()

static void handleDelayedAvailabilityCheck ( Sema S,
DelayedDiagnostic DD,
Decl Ctx 
)
static

Definition at line 7213 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::PopParsingDeclaration().

◆ handleDelayedForbiddenType()

static void handleDelayedForbiddenType ( Sema S,
DelayedDiagnostic DD,
Decl D 
)
static

Handle a delayed forbidden-type diagnostic.

Definition at line 6705 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::PopParsingDeclaration().

◆ handleDependencyAttr()

static void handleDependencyAttr ( Sema S,
Scope Scope,
Decl D,
const AttributeList AL 
)
static

Definition at line 2025 of file SemaDeclAttr.cpp.

◆ handleDeprecatedAttr()

static void handleDeprecatedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5602 of file SemaDeclAttr.cpp.

◆ handleDestructorAttr()

static void handleDestructorAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2065 of file SemaDeclAttr.cpp.

◆ handleDiagnoseIfAttr()

static void handleDiagnoseIfAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 990 of file SemaDeclAttr.cpp.

◆ handleDLLAttr()

static void handleDLLAttr ( Sema S,
Decl D,
const AttributeList A 
)
static

Definition at line 5442 of file SemaDeclAttr.cpp.

◆ handleEnableIfAttr()

static void handleEnableIfAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 933 of file SemaDeclAttr.cpp.

◆ handleEnumExtensibilityAttr()

static void handleEnumExtensibilityAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3002 of file SemaDeclAttr.cpp.

◆ handleExclusiveTrylockFunctionAttr()

static void handleExclusiveTrylockFunctionAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 860 of file SemaDeclAttr.cpp.

◆ handleExternalSourceSymbolAttr()

static void handleExternalSourceSymbolAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2437 of file SemaDeclAttr.cpp.

◆ handleExtVectorTypeAttr()

static void handleExtVectorTypeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1264 of file SemaDeclAttr.cpp.

◆ handleFormatArgAttr()

static void handleFormatArgAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Handle attribute((format_arg((idx)))) attribute based on http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html.

Definition at line 3026 of file SemaDeclAttr.cpp.

◆ handleFormatAttr()

static void handleFormatAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Handle attribute((format(type,idx,firstarg))) attributes based on http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html.

Definition at line 3154 of file SemaDeclAttr.cpp.

◆ handleGlobalAttr()

static void handleGlobalAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4004 of file SemaDeclAttr.cpp.

◆ handleGNUInlineAttr()

static void handleGNUInlineAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4037 of file SemaDeclAttr.cpp.

◆ handleGuardedByAttr()

static void handleGuardedByAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 664 of file SemaDeclAttr.cpp.

◆ handleIBOutlet()

static void handleIBOutlet ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1326 of file SemaDeclAttr.cpp.

◆ handleIBOutletCollection()

static void handleIBOutletCollection ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1335 of file SemaDeclAttr.cpp.

◆ handleIFuncAttr()

static void handleIFuncAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1795 of file SemaDeclAttr.cpp.

◆ handleInitPriorityAttr()

static void handleInitPriorityAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Handle attribute((init_priority(priority))) attributes based on http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html.

Definition at line 3092 of file SemaDeclAttr.cpp.

◆ handleInternalLinkageAttr()

static void handleInternalLinkageAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5685 of file SemaDeclAttr.cpp.

◆ handleInterruptAttr()

static void handleInterruptAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5268 of file SemaDeclAttr.cpp.

◆ handleLaunchBoundsAttr()

static void handleLaunchBoundsAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4433 of file SemaDeclAttr.cpp.

◆ handleLayoutVersion()

static void handleLayoutVersion ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5398 of file SemaDeclAttr.cpp.

◆ handleLockReturnedAttr()

static void handleLockReturnedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 871 of file SemaDeclAttr.cpp.

◆ handleLocksExcludedAttr()

static void handleLocksExcludedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 885 of file SemaDeclAttr.cpp.

◆ handleMinSizeAttr()

static void handleMinSizeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3958 of file SemaDeclAttr.cpp.

◆ handleMipsInterruptAttr()

static void handleMipsInterruptAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5117 of file SemaDeclAttr.cpp.

◆ handleModeAttr()

static void handleModeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
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 3698 of file SemaDeclAttr.cpp.

◆ handleMSInheritanceAttr()

static void handleMSInheritanceAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4985 of file SemaDeclAttr.cpp.

◆ handleMSP430InterruptAttr()

static void handleMSP430InterruptAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5081 of file SemaDeclAttr.cpp.

◆ handleNakedAttr()

static void handleNakedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1888 of file SemaDeclAttr.cpp.

◆ handleNoCfCheckAttr()

static void handleNoCfCheckAttr ( Sema S,
Decl D,
const AttributeList Attrs 
)
static

Definition at line 1921 of file SemaDeclAttr.cpp.

◆ handleNoDebugAttr()

static void handleNoDebugAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3854 of file SemaDeclAttr.cpp.

◆ handleNoEscapeAttr()

static void handleNoEscapeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1502 of file SemaDeclAttr.cpp.

◆ handleNonNullAttr()

static void handleNonNullAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1422 of file SemaDeclAttr.cpp.

◆ handleNonNullAttrParameter()

static void handleNonNullAttrParameter ( Sema S,
ParmVarDecl D,
const AttributeList AL 
)
static

Definition at line 1467 of file SemaDeclAttr.cpp.

◆ handleNoReturnAttr()

static void handleNoReturnAttr ( Sema S,
Decl D,
const AttributeList Attrs 
)
static

Definition at line 1908 of file SemaDeclAttr.cpp.

◆ handleNoSanitizeAttr()

static void handleNoSanitizeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5642 of file SemaDeclAttr.cpp.

◆ handleNoSanitizeSpecificAttr()

static void handleNoSanitizeSpecificAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5668 of file SemaDeclAttr.cpp.

◆ handleNSConsumedAttr()

static void handleNSConsumedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4539 of file SemaDeclAttr.cpp.

◆ handleNSReturnsRetainedAttr()

static void handleNSReturnsRetainedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4587 of file SemaDeclAttr.cpp.

◆ handleObjCBoxable()

static void handleObjCBoxable ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4846 of file SemaDeclAttr.cpp.

◆ handleObjCBridgeAttr()

static void handleObjCBridgeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4753 of file SemaDeclAttr.cpp.

◆ handleObjCBridgeMutableAttr()

static void handleObjCBridgeMutableAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4782 of file SemaDeclAttr.cpp.

◆ handleObjCBridgeRelatedAttr()

static void handleObjCBridgeRelatedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4796 of file SemaDeclAttr.cpp.

◆ handleObjCDesignatedInitializer()

static void handleObjCDesignatedInitializer ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4814 of file SemaDeclAttr.cpp.

◆ handleObjCIndependentClass()

static void handleObjCIndependentClass ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2598 of file SemaDeclAttr.cpp.

◆ handleObjCMethodFamilyAttr()

static void handleObjCMethodFamilyAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2540 of file SemaDeclAttr.cpp.

◆ handleObjCNSObject()

static void handleObjCNSObject ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2569 of file SemaDeclAttr.cpp.

◆ handleObjCOwnershipAttr()

static void handleObjCOwnershipAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4869 of file SemaDeclAttr.cpp.

◆ handleObjCPreciseLifetimeAttr()

static void handleObjCPreciseLifetimeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4877 of file SemaDeclAttr.cpp.

◆ handleObjCRequiresSuperAttr()

static void handleObjCRequiresSuperAttr ( Sema S,
Decl D,
const AttributeList Attrs 
)
static

Definition at line 4732 of file SemaDeclAttr.cpp.

◆ handleObjCReturnsInnerPointerAttr()

static void handleObjCReturnsInnerPointerAttr ( Sema S,
Decl D,
const AttributeList Attrs 
)
static

Definition at line 4704 of file SemaDeclAttr.cpp.

◆ handleObjCRuntimeName()

static void handleObjCRuntimeName ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4831 of file SemaDeclAttr.cpp.

◆ handleObjCSuppresProtocolAttr()

static void handleObjCSuppresProtocolAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2088 of file SemaDeclAttr.cpp.

◆ handleOpenCLAccessAttr()

static void handleOpenCLAccessAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5745 of file SemaDeclAttr.cpp.

◆ handleOpenCLNoSVMAttr()

static void handleOpenCLNoSVMAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5693 of file SemaDeclAttr.cpp.

◆ handleOptimizeNoneAttr()

static void handleOptimizeNoneAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3964 of file SemaDeclAttr.cpp.

◆ handleOwnershipAttr()

static void handleOwnershipAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1626 of file SemaDeclAttr.cpp.

◆ handlePackedAttr()

static void handlePackedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1269 of file SemaDeclAttr.cpp.

◆ handleParameterABIAttr()

static void handleParameterABIAttr ( Sema S,
Decl D,
const AttributeList Attrs,
ParameterABI  Abi 
)
static

Definition at line 4281 of file SemaDeclAttr.cpp.

◆ handleParamTypestateAttr()

static void handleParamTypestateAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1130 of file SemaDeclAttr.cpp.

◆ handlePassObjectSizeAttr()

static void handlePassObjectSizeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1017 of file SemaDeclAttr.cpp.

◆ handlePtGuardedByAttr()

static void handlePtGuardedByAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 673 of file SemaDeclAttr.cpp.

◆ handlePtGuardedVarAttr()

static void handlePtGuardedVarAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 640 of file SemaDeclAttr.cpp.

◆ handleReleaseCapabilityAttr()

static void handleReleaseCapabilityAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5573 of file SemaDeclAttr.cpp.

◆ handleRequiresCapabilityAttr()

static void handleRequiresCapabilityAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5584 of file SemaDeclAttr.cpp.

◆ handleRestrictAttr()

static void handleRestrictAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1864 of file SemaDeclAttr.cpp.

◆ handleReturnsNonNullAttr()

static void handleReturnsNonNullAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1489 of file SemaDeclAttr.cpp.

◆ handleReturnTypestateAttr()

static void handleReturnTypestateAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1167 of file SemaDeclAttr.cpp.

◆ handleSectionAttr()

static void handleSectionAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2876 of file SemaDeclAttr.cpp.

◆ handleSentinelAttr()

static void handleSentinelAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2634 of file SemaDeclAttr.cpp.

◆ handleSetTypestateAttr()

static void handleSetTypestateAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1215 of file SemaDeclAttr.cpp.

◆ handleSharedAttr()

static void handleSharedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3984 of file SemaDeclAttr.cpp.

◆ handleSharedTrylockFunctionAttr()

static void handleSharedTrylockFunctionAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 849 of file SemaDeclAttr.cpp.

◆ handleSimpleAttribute()

template<typename AttrType >
static void handleSimpleAttribute ( Sema S,
Decl D,
const AttributeList AL 
)
static

Applies the given attribute to the Decl without performing any additional semantic checking.

Definition at line 393 of file SemaDeclAttr.cpp.

◆ handleSimpleAttributeWithExclusions() [1/2]

template<typename AttrType >
static void handleSimpleAttributeWithExclusions ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 399 of file SemaDeclAttr.cpp.

◆ handleSimpleAttributeWithExclusions() [2/2]

template<typename AttrType , typename IncompatibleAttrType , typename... IncompatibleAttrTypes>
static void handleSimpleAttributeWithExclusions ( Sema S,
Decl D,
const AttributeList AL 
)
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 408 of file SemaDeclAttr.cpp.

◆ handleSubGroupSize()

static void handleSubGroupSize ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2801 of file SemaDeclAttr.cpp.

◆ handleSuppressAttr()

static void handleSuppressAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4150 of file SemaDeclAttr.cpp.

◆ handleTargetAttr()

static void handleTargetAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2932 of file SemaDeclAttr.cpp.

◆ handleTestTypestateAttr()

static void handleTestTypestateAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1239 of file SemaDeclAttr.cpp.

◆ handleTLSModelAttr()

static void handleTLSModelAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1844 of file SemaDeclAttr.cpp.

◆ handleTransparentUnionAttr()

static void handleTransparentUnionAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 3276 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::ProcessDeclAttributeDelayed().

◆ handleTryAcquireCapabilityAttr()

static void handleTryAcquireCapabilityAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5559 of file SemaDeclAttr.cpp.

◆ handleTypeTagForDatatypeAttr()

static void handleTypeTagForDatatypeAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4477 of file SemaDeclAttr.cpp.

◆ handleUnusedAttr()

static void handleUnusedAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2042 of file SemaDeclAttr.cpp.

◆ handleUuidAttr()

static void handleUuidAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4935 of file SemaDeclAttr.cpp.

◆ handleVecReturnAttr()

static void handleVecReturnAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1971 of file SemaDeclAttr.cpp.

◆ handleVecTypeHint()

static void handleVecTypeHint ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2822 of file SemaDeclAttr.cpp.

◆ handleVisibilityAttr()

static void handleVisibilityAttr ( Sema S,
Decl D,
const AttributeList AL,
bool  isTypeVisibility 
)
static

Definition at line 2487 of file SemaDeclAttr.cpp.

◆ handleWarnUnusedResult()

static void handleWarnUnusedResult ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2725 of file SemaDeclAttr.cpp.

◆ handleWeakImportAttr()

static void handleWeakImportAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2750 of file SemaDeclAttr.cpp.

◆ handleWeakRefAttr()

static void handleWeakRefAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 1733 of file SemaDeclAttr.cpp.

◆ handleWorkGroupSize()

template<typename WorkGroupAttr >
static void handleWorkGroupSize ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 2775 of file SemaDeclAttr.cpp.

◆ handleX86ForceAlignArgPointerAttr()

static void handleX86ForceAlignArgPointerAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 5373 of file SemaDeclAttr.cpp.

◆ handleXRayLogArgsAttr()

static void handleXRayLogArgsAttr ( Sema S,
Decl D,
const AttributeList AL 
)
static

Definition at line 4507 of file SemaDeclAttr.cpp.

◆ hasDeclarator()

static bool hasDeclarator ( const Decl D)
static

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()

static bool hasFunctionProto ( const Decl D)
static

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().

◆ isCapabilityExpr()

static bool isCapabilityExpr ( Sema S,
const Expr Ex 
)
static

Definition at line 533 of file SemaDeclAttr.cpp.

◆ isCFStringType()

static bool isCFStringType ( QualType  T,
ASTContext Ctx 
)
inlinestatic

◆ isForbiddenTypeAllowed()

static bool isForbiddenTypeAllowed ( Sema S,
Decl D,
const DelayedDiagnostic diag,
UnavailableAttr::ImplicitReason &  reason 
)
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 6670 of file SemaDeclAttr.cpp.

◆ isFunctionOrMethod()

static bool isFunctionOrMethod ( const Decl D)
static

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().

◆ isFunctionOrMethodOrBlock()

static bool isFunctionOrMethodOrBlock ( const Decl D)
static

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().

◆ isFunctionOrMethodVariadic()

static bool isFunctionOrMethodVariadic ( const Decl D)
static

Definition at line 129 of file SemaDeclAttr.cpp.

References clang::Decl::getFunctionType().

◆ isGlobalVar()

static bool isGlobalVar ( const Decl D)
static

Definition at line 5636 of file SemaDeclAttr.cpp.

◆ isInstanceMethod()

static bool isInstanceMethod ( const Decl D)
static

◆ isIntOrBool()

static bool isIntOrBool ( Expr Exp)
static

Check if the passed-in expression is of type int or bool.

Definition at line 418 of file SemaDeclAttr.cpp.

References clang::Expr::getType(), clang::Type::isBooleanType(), and clang::Type::isIntegerType().

◆ isNSStringType()

static bool isNSStringType ( QualType  T,
ASTContext Ctx 
)
inlinestatic

◆ isValidSubjectOfCFAttribute()

static bool isValidSubjectOfCFAttribute ( Sema S,
QualType  QT 
)
static

Definition at line 4534 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::AddNSConsumedAttr().

◆ isValidSubjectOfNSAttribute()

static bool isValidSubjectOfNSAttribute ( Sema S,
QualType  QT 
)
static

Definition at line 4529 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::AddNSConsumedAttr().

◆ isValidSubjectOfNSReturnsRetainedAttribute()

static bool isValidSubjectOfNSReturnsRetainedAttribute ( QualType  QT)
static

◆ isValidSwiftContextType()

static bool isValidSwiftContextType ( QualType  Ty)
static

◆ isValidSwiftErrorResultType()

static bool isValidSwiftErrorResultType ( QualType  Ty)
static

Pointers and references to pointers in the default address space.

Definition at line 4268 of file SemaDeclAttr.cpp.

References clang::Qualifiers::empty(), clang::Type::getAs(), clang::Type::getPointeeType(), clang::QualType::getQualifiers(), clang::Type::isDependentType(), and isValidSwiftContextType().

◆ isValidSwiftIndirectResultType()

static bool isValidSwiftIndirectResultType ( QualType  Ty)
static

Pointers and references in the default address space.

Definition at line 4256 of file SemaDeclAttr.cpp.

References clang::Default, clang::QualType::getAddressSpace(), clang::Type::getAs(), clang::Type::getPointeeType(), and clang::Type::isDependentType().

◆ makeLaunchBoundsArgExpr()

static Expr* makeLaunchBoundsArgExpr ( Sema S,
Expr E,
const CUDALaunchBoundsAttr &  AL,
const unsigned  Idx 
)
static

Definition at line 4378 of file SemaDeclAttr.cpp.

◆ mergeVisibilityAttr()

template<class T >
static T* mergeVisibilityAttr ( Sema S,
Decl D,
SourceRange  range,
typename T::VisibilityType  value,
unsigned  attrSpellingListIndex 
)
static

Definition at line 2458 of file SemaDeclAttr.cpp.

◆ normalizeName()

static bool normalizeName ( StringRef &  AttrName)
static

Normalize the attribute, foo becomes foo.

Returns true if normalization was applied.

Definition at line 1617 of file SemaDeclAttr.cpp.

◆ parseModeAttrArg()

static void parseModeAttrArg ( Sema S,
StringRef  Str,
unsigned &  DestWidth,
bool IntegerMode,
bool ComplexMode 
)
static

parseModeAttrArg - Parses attribute mode string and returns parsed type attribute.

Definition at line 3638 of file SemaDeclAttr.cpp.

◆ ProcessDeclAttribute()

static void ProcessDeclAttribute ( Sema S,
Scope scope,
Decl D,
const AttributeList AL,
bool  IncludeCXX11Attributes 
)
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 5786 of file SemaDeclAttr.cpp.

Referenced by clang::Sema::ProcessAccessDeclAttributeList().

◆ shouldDiagnoseAvailabilityByDefault()

static bool shouldDiagnoseAvailabilityByDefault ( const ASTContext Context,
const VersionTuple DeploymentVersion,
const VersionTuple DeclVersion 
)
static

Definition at line 6852 of file SemaDeclAttr.cpp.

◆ ShouldDiagnoseAvailabilityInContext()

static bool ShouldDiagnoseAvailabilityInContext ( Sema S,
AvailabilityResult  K,
VersionTuple  DeclVersion,
Decl Ctx 
)
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 6805 of file SemaDeclAttr.cpp.

◆ ShouldDiagnoseAvailabilityOfDecl()

static std::pair<AvailabilityResult, const NamedDecl *> ShouldDiagnoseAvailabilityOfDecl ( const NamedDecl D,
std::string *  Message 
)
static

The diagnostic we should emit for D, and the declaration that originated it, or AR_Available.

Parameters
DThe declaration to check.
MessageIf non-null, this will be populated with the message from the availability attribute that is selected.

Definition at line 6765 of file SemaDeclAttr.cpp.

References clang::AR_Available, and clang::Decl::getAvailability().

Referenced by clang::Sema::DiagnoseAvailabilityOfDecl().

◆ threadSafetyCheckIsPointer()

static bool threadSafetyCheckIsPointer ( Sema S,
const Decl D,
const AttributeList AL 
)
static

Check if passed in Decl is a pointer type.

Note that this function may produce an error message.

Returns
true if the Decl is a pointer type; false otherwise

Definition at line 443 of file SemaDeclAttr.cpp.

◆ threadSafetyCheckIsSmartPointer()

static bool threadSafetyCheckIsSmartPointer ( Sema S,
const RecordType RT 
)
static

Definition at line 426 of file SemaDeclAttr.cpp.

◆ tryParseObjCMethodName()

static Optional<unsigned> tryParseObjCMethodName ( StringRef  Name,
SmallVectorImpl< StringRef > &  SlotNames,
const LangOptions LangOpts 
)
static

Tries to parse a string as ObjC method name.

Parameters
NameThe string to parse. Expected to originate from availability attribute argument.
SlotNamesThe vector that will be populated with slot names. In case of unsuccessful parsing can contain invalid data.
Returns
A number of method parameters if parsing was successful, None otherwise.

Definition at line 6921 of file SemaDeclAttr.cpp.

◆ typeHasCapability()

static bool typeHasCapability ( Sema S,
QualType  Ty 
)
static

Definition at line 523 of file SemaDeclAttr.cpp.

◆ versionsMatch()

static bool versionsMatch ( const VersionTuple X,
const VersionTuple Y,
bool  BeforeIsOkay 
)
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 2144 of file SemaDeclAttr.cpp.

References clang::VersionTuple::empty().

Referenced by clang::Sema::mergeAvailabilityAttr().