|
clang
3.8.0
|
#include "clang/Sema/SemaInternal.h"#include "clang/AST/ASTContext.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/ASTMutationListener.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/Lookup.h"#include "clang/Sema/Scope.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 AttributeList &Attr) |
| template<typename Compare > | |
| static bool | checkAttributeNumArgsImpl (Sema &S, const AttributeList &Attr, unsigned Num, unsigned Diag, Compare Comp) |
| static bool | checkAttributeNumArgs (Sema &S, const AttributeList &Attr, unsigned Num) |
| Check if the attribute has exactly as many args as Num. More... | |
| static bool | checkAttributeAtLeastNumArgs (Sema &S, const AttributeList &Attr, unsigned Num) |
| Check if the attribute has at least as many args as Num. More... | |
| static bool | checkAttributeAtMostNumArgs (Sema &S, const AttributeList &Attr, unsigned Num) |
| Check if the attribute has at most as many args as Num. More... | |
| static bool | checkUInt32Argument (Sema &S, const AttributeList &Attr, 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 AttrTy > | |
| static bool | checkAttrMutualExclusion (Sema &S, Decl *D, SourceRange Range, IdentifierInfo *Ident) |
| Diagnose mutually exclusive attributes when present on a given declaration. More... | |
| static bool | checkFunctionOrMethodParameterIndex (Sema &S, const Decl *D, const AttributeList &Attr, unsigned AttrArgNum, const Expr *IdxExpr, uint64_t &Idx) |
| 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 &Attr) |
| 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 &Attr) |
| template<typename AttrType , typename IncompatibleAttrType , typename... IncompatibleAttrTypes> | |
| static void | handleSimpleAttributeWithExclusions (Sema &S, Decl *D, const AttributeList &Attr) |
| 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 &Attr) |
| 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 AttributeList &Attr, 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 &Attr) |
| static bool | checkGuardedByAttrCommon (Sema &S, Decl *D, const AttributeList &Attr, Expr *&Arg) |
| static void | handleGuardedByAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handlePtGuardedByAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static bool | checkAcquireOrderAttrCommon (Sema &S, Decl *D, const AttributeList &Attr, SmallVectorImpl< Expr * > &Args) |
| static void | handleAcquiredAfterAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAcquiredBeforeAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static bool | checkLockFunAttrCommon (Sema &S, Decl *D, const AttributeList &Attr, SmallVectorImpl< Expr * > &Args) |
| static void | handleAssertSharedLockAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAssertExclusiveLockAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static bool | checkTryLockFunAttrCommon (Sema &S, Decl *D, const AttributeList &Attr, SmallVectorImpl< Expr * > &Args) |
| static void | handleSharedTrylockFunctionAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleExclusiveTrylockFunctionAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleLockReturnedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleLocksExcludedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleEnableIfAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handlePassObjectSizeAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleConsumableAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static bool | checkForConsumableClass (Sema &S, const CXXMethodDecl *MD, const AttributeList &Attr) |
| static void | handleCallableWhenAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleParamTypestateAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleReturnTypestateAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleSetTypestateAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleTestTypestateAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleExtVectorTypeAttr (Sema &S, Scope *scope, Decl *D, const AttributeList &Attr) |
| static void | handlePackedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static bool | checkIBOutletCommon (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleIBOutlet (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleIBOutletCollection (Sema &S, Decl *D, const AttributeList &Attr) |
| static bool | attrNonNullArgCheck (Sema &S, QualType T, const AttributeList &Attr, SourceRange AttrParmRange, SourceRange TypeRange, bool isReturnValue=false) |
| static void | handleNonNullAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleNonNullAttrParameter (Sema &S, ParmVarDecl *D, const AttributeList &Attr) |
| static void | handleReturnsNonNullAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAssumeAlignedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| 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 &Attr) |
| static void | handleAliasAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleColdAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleHotAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleTLSModelAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleRestrictAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleCommonAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleNakedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleNoReturnAttr (Sema &S, Decl *D, const AttributeList &attr) |
| static void | handleAnalyzerNoReturnAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleVecReturnAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleDependencyAttr (Sema &S, Scope *Scope, Decl *D, const AttributeList &Attr) |
| static void | handleNotTailCalledAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleDisableTailCallsAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleUsedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleConstructorAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleDestructorAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| template<typename AttrTy > | |
| static void | handleAttrWithMessage (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleObjCSuppresProtocolAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| 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 &Attr) |
| 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 &Attr, bool isTypeVisibility) |
| static void | handleObjCMethodFamilyAttr (Sema &S, Decl *decl, const AttributeList &Attr) |
| static void | handleObjCNSObject (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleObjCIndependentClass (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleBlocksAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleSentinelAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleWarnUnusedResult (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleWeakImportAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| template<typename WorkGroupAttr > | |
| static void | handleWorkGroupSize (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleVecTypeHint (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleSectionAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleTargetAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleCleanupAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleFormatArgAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| 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 &Attr) |
| 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 &Attr) |
| 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 &Attr) |
| static void | handleAnnotateAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAlignValueAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAlignedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| 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 &Attr) |
| handleModeAttr - This attribute modifies the width of a decl with primitive type. More... | |
| static void | handleNoDebugAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAlwaysInlineAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleMinSizeAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleOptimizeNoneAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleGlobalAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleGNUInlineAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleCallConvAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static bool | checkLaunchBoundsArgument (Sema &S, Expr *E, const CUDALaunchBoundsAttr &Attr, const unsigned Idx) |
| static void | handleLaunchBoundsAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleArgumentWithTypeTagAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleTypeTagForDatatypeAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static bool | isValidSubjectOfNSReturnsRetainedAttribute (QualType type) |
| static bool | isValidSubjectOfNSAttribute (Sema &S, QualType type) |
| static bool | isValidSubjectOfCFAttribute (Sema &S, QualType type) |
| static void | handleNSConsumedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleNSReturnsRetainedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleObjCReturnsInnerPointerAttr (Sema &S, Decl *D, const AttributeList &attr) |
| static void | handleObjCRequiresSuperAttr (Sema &S, Decl *D, const AttributeList &attr) |
| static void | handleCFAuditedTransferAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleCFUnknownTransferAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleObjCBridgeAttr (Sema &S, Scope *Sc, Decl *D, const AttributeList &Attr) |
| static void | handleObjCBridgeMutableAttr (Sema &S, Scope *Sc, Decl *D, const AttributeList &Attr) |
| static void | handleObjCBridgeRelatedAttr (Sema &S, Scope *Sc, Decl *D, const AttributeList &Attr) |
| static void | handleObjCDesignatedInitializer (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleObjCRuntimeName (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleObjCBoxable (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleObjCOwnershipAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleObjCPreciseLifetimeAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleUuidAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleMSInheritanceAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleDeclspecThreadAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleARMInterruptAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleMSP430InterruptAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleMipsInterruptAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleInterruptAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAMDGPUNumVGPRAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAMDGPUNumSGPRAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleX86ForceAlignArgPointerAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleDLLAttr (Sema &S, Decl *D, const AttributeList &A) |
| static void | handleCapabilityAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAssertCapabilityAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleAcquireCapabilityAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleTryAcquireCapabilityAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleReleaseCapabilityAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleRequiresCapabilityAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleDeprecatedAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleNoSanitizeAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleNoSanitizeSpecificAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static void | handleInternalLinkageAttr (Sema &S, Decl *D, const AttributeList &Attr) |
| static bool | handleCommonAttributeFeatures (Sema &S, Scope *scope, Decl *D, const AttributeList &Attr) |
| 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 | ProcessDeclAttribute (Sema &S, Scope *scope, Decl *D, const AttributeList &Attr, 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 *decl, 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 &diag, Decl *decl) |
| Handle a delayed forbidden-type diagnostic. More... | |
| static bool | isDeclDeprecated (Decl *D) |
| static bool | isDeclUnavailable (Decl *D) |
| static void | DoEmitAvailabilityWarning (Sema &S, Sema::AvailabilityDiagnostic K, Decl *Ctx, const NamedDecl *D, StringRef Message, SourceLocation Loc, const ObjCInterfaceDecl *UnknownObjCClass, const ObjCPropertyDecl *ObjCProperty, bool ObjCPropertyAccess) |
| static void | handleDelayedAvailabilityCheck (Sema &S, DelayedDiagnostic &DD, Decl *Ctx) |
| enum FormatAttrKind |
| Enumerator | |
|---|---|
| CFStringFormat | |
| NSStringFormat | |
| StrftimeFormat | |
| SupportedFormat | |
| IgnoredFormat | |
| InvalidFormat | |
Definition at line 2721 of file SemaDeclAttr.cpp.
|
static |
Definition at line 1213 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), and clang::Sema::isValidPointerAttrType().
Referenced by handleNonNullAttr(), handleNonNullAttrParameter(), and handleReturnsNonNullAttr().
|
static |
Definition at line 643 of file SemaDeclAttr.cpp.
References checkAttrArgsAreCapabilityObjs(), checkAttributeAtLeastNumArgs(), clang::Sema::Diag(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::Type::isDependentType(), and typeHasCapability().
Referenced by handleAcquiredAfterAttr(), and handleAcquiredBeforeAttr().
|
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 517 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::AttributeList::getArgAsExpr(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getNumArgs(), clang::FunctionDecl::getNumParams(), clang::FunctionDecl::getParamDecl(), getRecordType(), clang::Expr::getType(), clang::ValueDecl::getType(), isCapabilityExpr(), clang::Expr::isTypeDependent(), typeHasCapability(), and clang::UO_AddrOf.
Referenced by checkAcquireOrderAttrCommon(), checkGuardedByAttrCommon(), checkLockFunAttrCommon(), checkTryLockFunAttrCommon(), handleLockReturnedAttr(), handleLocksExcludedAttr(), handleReleaseCapabilityAttr(), and handleRequiresCapabilityAttr().
|
static |
Check if the attribute has at least as many args as Num.
May output an error.
Definition at line 199 of file SemaDeclAttr.cpp.
References checkAttributeNumArgsImpl().
Referenced by checkAcquireOrderAttrCommon(), checkTryLockFunAttrCommon(), handleCallableWhenAttr(), handleCommonAttributeFeatures(), handleLaunchBoundsAttr(), handleLocksExcludedAttr(), handleNoSanitizeAttr(), and handleRequiresCapabilityAttr().
|
static |
Check if the attribute has at most as many args as Num.
May output an error.
Definition at line 208 of file SemaDeclAttr.cpp.
References checkAttributeNumArgsImpl().
Referenced by handleCommonAttributeFeatures(), and handleLaunchBoundsAttr().
|
static |
Check if the attribute has exactly as many args as Num.
May output an error.
Definition at line 190 of file SemaDeclAttr.cpp.
References checkAttributeNumArgsImpl().
Referenced by clang::Sema::CheckCallingConvAttr(), clang::Sema::CheckNoReturnAttr(), clang::Sema::CheckRegparmAttr(), handleArgumentWithTypeTagAttr(), handleAvailabilityAttr(), handleCommonAttributeFeatures(), handleMSP430InterruptAttr(), and handleTypeTagForDatatypeAttr().
|
static |
Definition at line 177 of file SemaDeclAttr.cpp.
References Diag(), clang::Sema::Diag(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), and getNumAttributeArgs().
Referenced by checkAttributeAtLeastNumArgs(), checkAttributeAtMostNumArgs(), and checkAttributeNumArgs().
|
static |
Diagnose mutually exclusive attributes when present on a given declaration.
Returns true if diagnosed.
Definition at line 247 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::Decl::getAttr(), and clang::SourceRange::getBegin().
|
static |
Definition at line 1854 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::VersionTuple::empty(), clang::VersionTuple::getAsString(), clang::SourceRange::getBegin(), and clang::IdentifierInfo::getName().
Referenced by clang::Sema::mergeAvailabilityAttr().
|
static |
Definition at line 891 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::Type::getAsCXXRecordDecl(), clang::Sema::getASTContext(), clang::AttributeList::getLoc(), clang::Type::getPointeeType(), and clang::CXXMethodDecl::getThisType().
Referenced by handleCallableWhenAttr(), handleSetTypestateAttr(), and handleTestTypestateAttr().
|
static |
Check if IdxExpr is a valid parameter index for a function or instance method D.
May output an error.
Definition at line 262 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIntegerConstant, clang::Sema::Context, clang::Sema::Diag(), getFunctionOrMethodNumParams(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), hasFunctionProto(), isFunctionOrMethodOrBlock(), isFunctionOrMethodVariadic(), isInstanceMethod(), clang::Expr::isIntegerConstantExpr(), clang::Expr::isTypeDependent(), and clang::Expr::isValueDependent().
Referenced by handleArgumentWithTypeTagAttr(), handleFormatArgAttr(), handleNonNullAttr(), and handleOwnershipAttr().
|
static |
Definition at line 605 of file SemaDeclAttr.cpp.
References checkAttrArgsAreCapabilityObjs().
Referenced by handleGuardedByAttr(), and handlePtGuardedByAttr().
|
static |
Definition at line 1107 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::AttributeList::getLoc(), and clang::AttributeList::getName().
Referenced by handleIBOutlet(), and handleIBOutletCollection().
|
static |
Definition at line 3834 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIntegerConstant, clang::Sema::Context, clang::Sema::Diag(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::Expr::getExprLoc(), I, clang::Expr::isIntegerConstantExpr(), and clang::Expr::isValueDependent().
Referenced by clang::Sema::AddLaunchBoundsAttr().
|
static |
Definition at line 691 of file SemaDeclAttr.cpp.
References checkAttrArgsAreCapabilityObjs().
Referenced by handleAcquireCapabilityAttr(), handleAssertExclusiveLockAttr(), and handleAssertSharedLockAttr().
Definition at line 432 of file SemaDeclAttr.cpp.
References clang::Type::getAs(), clang::RecordType::getDecl(), getRecordType(), clang::CXXBaseSpecifier::getType(), clang::Decl::hasAttr(), clang::Type::isIncompleteType(), and threadSafetyCheckIsSmartPointer().
Referenced by typeHasCapability().
|
static |
Definition at line 729 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIntOrBool, checkAttrArgsAreCapabilityObjs(), checkAttributeAtLeastNumArgs(), clang::Sema::Diag(), clang::AttributeList::getArgAsExpr(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), and isIntOrBool().
Referenced by handleExclusiveTrylockFunctionAttr(), handleSharedTrylockFunctionAttr(), and handleTryAcquireCapabilityAttr().
Definition at line 464 of file SemaDeclAttr.cpp.
References clang::Type::getAs(), and clang::Decl::hasAttr().
Referenced by typeHasCapability().
|
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 217 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIntegerConstant, clang::Sema::Context, clang::Sema::Diag(), clang::Expr::getExprLoc(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), I, clang::Expr::isIntegerConstantExpr(), clang::Expr::isTypeDependent(), clang::Expr::isValueDependent(), and UINT_MAX.
Referenced by clang::Sema::CheckRegparmAttr(), handleAMDGPUNumSGPRAttr(), handleAMDGPUNumVGPRAttr(), handleConstructorAttr(), handleDestructorAttr(), handleFormatAttr(), handleInitPriorityAttr(), handlePassObjectSizeAttr(), and handleWorkGroupSize().
|
static |
checkUnusedDeclAttributes - Check a list of attributes to see if it contains any decl attributes that we should warn about.
Definition at line 5538 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::AttributeList::getKind(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getNext(), clang::AttributeList::getRange(), clang::AttributeList::IgnoredAttribute, clang::AttributeList::isInvalid(), clang::AttributeList::isUsedAsTypeAttr(), and clang::AttributeList::UnknownAttribute.
Referenced by clang::Sema::ActOnCastExpr().
|
static |
Definition at line 5772 of file SemaDeclAttr.cpp.
References clang::Sema::AD_Deprecation, clang::Sema::AD_Partial, clang::Sema::AD_Unavailable, clang::Sema::Diag(), clang::Decl::getAttr(), clang::NamedDecl::getDeclName(), clang::Sema::getLangOpts(), clang::Decl::getLocation(), clang::Sema::getSourceManager(), isDeclDeprecated(), isDeclUnavailable(), and clang::SourceManager::isInSystemHeader().
Referenced by clang::Sema::EmitAvailabilityWarning(), and handleDelayedAvailabilityCheck().
|
static |
getFormatAttrKind - Map from format attribute names to supported format types.
Definition at line 2732 of file SemaDeclAttr.cpp.
References CFStringFormat, IgnoredFormat, InvalidFormat, NSStringFormat, StrftimeFormat, and SupportedFormat.
Referenced by handleFormatAttr().
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 81 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
Referenced by checkFunctionOrMethodParameterIndex(), handleFormatAttr(), handleMipsInterruptAttr(), and handleNonNullAttr().
|
static |
Definition at line 98 of file SemaDeclAttr.cpp.
Referenced by handleFormatArgAttr(), handleFormatAttr(), and handleNonNullAttr().
Definition at line 89 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
Referenced by handleArgumentWithTypeTagAttr(), handleFormatArgAttr(), handleFormatAttr(), handleNonNullAttr(), and handleOwnershipAttr().
|
static |
Definition at line 114 of file SemaDeclAttr.cpp.
Referenced by clang::Sema::AddAssumeAlignedAttr(), handleRestrictAttr(), and handleReturnsNonNullAttr().
Definition at line 108 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
Referenced by clang::Sema::AddAssumeAlignedAttr(), handleFormatArgAttr(), handleMipsInterruptAttr(), handleRestrictAttr(), and handleReturnsNonNullAttr().
|
static |
Definition at line 171 of file SemaDeclAttr.cpp.
References clang::AttributeList::getNumArgs(), and clang::AttributeList::hasParsedType().
Referenced by checkAttributeNumArgsImpl().
|
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 421 of file SemaDeclAttr.cpp.
References clang::Type::getAs(), and clang::Type::getPointeeType().
Referenced by checkAttrArgsAreCapabilityObjs(), checkRecordTypeForCapability(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), and clang::CodeGen::CodeGenFunction::EmitLambdaDelegatingInvokeBody().
|
static |
Definition at line 4764 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkLockFunAttrCommon(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 665 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkAcquireOrderAttrCommon(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 678 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkAcquireOrderAttrCommon(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1551 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getRange(), clang::ASTContext::getTargetInfo(), and clang::TargetInfo::getTriple().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3075 of file SemaDeclAttr.cpp.
References clang::Sema::AddAlignedAttr(), clang::Decl::addAttr(), clang::Expr::containsUnexpandedParameterPack(), clang::Sema::Context, clang::Sema::Diag(), clang::Sema::DiagnoseUnexpandedParameterPack(), E, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getEllipsisLoc(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getNumArgs(), clang::AttributeList::getRange(), clang::AttributeList::isPackExpansion(), and clang::Expr::isValueDependent().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3023 of file SemaDeclAttr.cpp.
References clang::Sema::AddAlignValueAttr(), clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3584 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and clang::Sema::mergeAlwaysInlineAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4599 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkUInt32Argument(), clang::Sema::Context, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getLoc().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4586 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkUInt32Argument(), clang::Sema::Context, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getLoc().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1675 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedFunctionMethodOrBlock, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ValueDecl::getType(), clang::Type::isBlockPointerType(), clang::AttributeList::isCXX11Attribute(), isFunctionOrMethodOrBlock(), and clang::Type::isFunctionPointerType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3005 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getRange(), I, and clang::Decl::specific_attrs().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3891 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), checkAttributeNumArgs(), checkFunctionOrMethodParameterIndex(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedFunctionOrMethod, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), getFunctionOrMethodParamType(), clang::AttributeList::getLoc(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), hasFunctionProto(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), isFunctionOrMethod(), and clang::Type::isPointerType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4449 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), and clang::AttributeList::getNumArgs().
Referenced by handleInterruptAttr().
|
static |
Definition at line 4757 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 714 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkLockFunAttrCommon(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 701 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkLockFunAttrCommon(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1308 of file SemaDeclAttr.cpp.
References clang::Sema::AddAssumeAlignedAttr(), E, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getNumArgs(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
|
static |
Definition at line 2069 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::AMK_None, checkAttributeNumArgs(), clang::Sema::Context, clang::Sema::Diag(), clang::IdentifierTable::get(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getAvailabilityDeprecated(), clang::AttributeList::getAvailabilityIntroduced(), clang::AttributeList::getAvailabilityObsoleted(), clang::AttributeList::getLoc(), clang::VersionTuple::getMajor(), clang::AttributeList::getMessageExpr(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ASTContext::getTargetInfo(), clang::TargetInfo::getTriple(), clang::AttributeList::getUnavailableLoc(), clang::IdentifierLoc::Ident, clang::ASTContext::Idents, clang::SourceLocation::isValid(), clang::IdentifierLoc::Loc, clang::Sema::mergeAvailabilityAttr(), and clang::AvailabilityChange::Version.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2333 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), and clang::ast_matchers::type.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 909 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkAttributeAtLeastNumArgs(), checkForConsumableClass(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getNumArgs(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), and clang::IdentifierLoc::Loc.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3644 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::CC_AAPCS, clang::CC_AAPCS_VFP, clang::Sema::CheckCallingConvAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedFunctionOrMethod, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getKind(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and hasDeclarator().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4733 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getKind(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4177 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4188 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2615 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::Compatible, clang::Sema::Context, clang::Sema::Diag(), E, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Expr::getExprLoc(), clang::AttributeList::getLoc(), clang::Decl::getLocation(), clang::AttributeList::getName(), clang::DeclarationNameInfo::getName(), clang::FunctionDecl::getNumParams(), clang::FunctionDecl::getParamDecl(), clang::ASTContext::getPointerType(), clang::AttributeList::getRange(), clang::ValueDecl::getType(), clang::VarDecl::hasLocalStorage(), clang::Sema::NoteAllOverloadCandidates(), clang::ASTContext::OverloadTy, and clang::Sema::ResolveSingleFunctionTemplateSpecialization().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1581 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1629 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), AttributeLangSupport::Cpp, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::Sema::LangOpts, and clang::Sema::mergeCommonAttr().
Referenced by ProcessDeclAttribute().
|
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 4888 of file SemaDeclAttr.cpp.
References checkAttributeAtLeastNumArgs(), checkAttributeAtMostNumArgs(), checkAttributeNumArgs(), clang::AttributeList::diagnoseAppertainsTo(), clang::AttributeList::diagnoseLangOpts(), clang::AttributeList::getKind(), clang::AttributeList::getMaxArgs(), clang::AttributeList::getMinArgs(), clang::AttributeList::hasCustomParsing(), clang::AttributeList::hasVariadicArg(), and clang::AttributeList::UnknownAttribute.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1807 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkUInt32Argument(), clang::Sema::Context, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getNumArgs(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 868 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), and clang::IdentifierLoc::Loc.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4430 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getRange(), clang::ASTContext::getTargetInfo(), clang::VarDecl::getTSCSpec(), clang::VarDecl::hasLocalStorage(), clang::TargetInfo::isTLSSupported(), and clang::TSCS_unspecified.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 5886 of file SemaDeclAttr.cpp.
References clang::Sema::AD_Deprecation, clang::Sema::AD_Unavailable, clang::sema::DelayedDiagnostic::Deprecation, DoEmitAvailabilityWarning(), clang::sema::DelayedDiagnostic::getDeprecationDecl(), clang::sema::DelayedDiagnostic::getDeprecationMessage(), clang::sema::DelayedDiagnostic::getObjCProperty(), clang::sema::DelayedDiagnostic::getUnknownObjCClass(), clang::sema::DelayedDiagnostic::Kind, clang::sema::DelayedDiagnostic::Loc, clang::sema::DelayedDiagnostic::Triggered, and clang::sema::DelayedDiagnostic::Unavailable.
Referenced by clang::Sema::PopParsingDeclaration().
|
static |
Handle a delayed forbidden-type diagnostic.
Definition at line 5721 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::sema::DelayedDiagnostic::getForbiddenTypeArgument(), clang::sema::DelayedDiagnostic::getForbiddenTypeDiagnostic(), clang::sema::DelayedDiagnostic::getForbiddenTypeOperand(), clang::Sema::getLangOpts(), isForbiddenTypeAllowed(), clang::sema::DelayedDiagnostic::Loc, and clang::sema::DelayedDiagnostic::Triggered.
Referenced by clang::Sema::PopParsingDeclaration().
|
static |
Definition at line 1753 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::Scope::FunctionDeclarationScope, clang::AttributeList::getAttributeSpellingListIndex(), clang::Scope::getFlags(), clang::AttributeList::getLoc(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4819 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::Sema::getLangOpts(), clang::AttributeList::getLoc(), clang::AttributeList::getScopeName(), clang::AttributeList::hasScope(), clang::AttributeList::isCXX11Attribute(), clang::IdentifierInfo::isStr(), and S.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1818 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkUInt32Argument(), clang::Sema::Context, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getNumArgs(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1780 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4663 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::SourceRange::getBegin(), clang::TargetInfo::getCXXABI(), clang::AttributeList::getKind(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ASTContext::getTargetInfo(), clang::TargetCXXABI::isMicrosoft(), clang::Sema::mergeDLLExportAttr(), and clang::Sema::mergeDLLImportAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 803 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getRange(), I, clang::ActionResult< PtrTy, CompressInvalid >::isInvalid(), clang::Expr::isPotentialConstantExprUnevaluated(), clang::Expr::isTypeDependent(), clang::Expr::isValueDependent(), and clang::Sema::PerformContextuallyConvertToBool().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 760 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkTryLockFunAttrCommon(), clang::Sema::Context, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1084 of file SemaDeclAttr.cpp.
References clang::Sema::ExtVectorDecls, and clang::LazyVector< T, Source, Loader, LoadedStorage, LocalStorage >::push_back().
Referenced by ProcessDeclAttribute().
|
static |
Handle attribute((format_arg((idx)))) attribute based on http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html.
Definition at line 2680 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkFunctionOrMethodParameterIndex(), clang::Sema::Context, clang::Sema::Diag(), clang::Expr::EvaluateAsInt(), clang::AttributeList::getArgAsExpr(), clang::Type::getAs(), clang::AttributeList::getAttributeSpellingListIndex(), getFunctionOrMethodParamRange(), getFunctionOrMethodParamType(), getFunctionOrMethodResultType(), clang::AttributeList::getLoc(), clang::AttributeList::getRange(), isCFStringType(), clang::Type::isCharType(), isNSStringType(), and clang::Type::isPointerType().
Referenced by ProcessDeclAttribute().
|
static |
Handle attribute((format(type,idx,firstarg))) attributes based on http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html.
Definition at line 2814 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), CFStringFormat, checkUInt32Argument(), clang::Sema::Context, clang::Sema::Diag(), clang::IdentifierTable::get(), clang::AttributeList::getArgAsExpr(), clang::AttributeList::getArgAsIdent(), clang::Type::getAs(), clang::AttributeList::getAttributeSpellingListIndex(), getFormatAttrKind(), getFunctionOrMethodNumParams(), getFunctionOrMethodParamRange(), getFunctionOrMethodParamType(), clang::AttributeList::getLoc(), clang::Decl::getLocation(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, clang::ASTContext::Idents, IgnoredFormat, InvalidFormat, clang::AttributeList::isArgIdent(), isCFStringType(), clang::Type::isCharType(), isFunctionOrMethodVariadic(), isInstanceMethod(), isNSStringType(), clang::Type::isPointerType(), clang::Sema::mergeFormatAttr(), normalizeName(), NSStringFormat, clang::NumArgs, and StrftimeFormat.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3609 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::FixItHint::CreateReplacement(), clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::FunctionDecl::getReturnType(), clang::FunctionDecl::getReturnTypeSourceRange(), clang::ValueDecl::getType(), clang::DeclaratorDecl::getTypeSpecStartLoc(), clang::SourceRange::isValid(), and clang::Type::isVoidType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3632 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getRange(), and clang::FunctionDecl::isInlineSpecified().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 620 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkGuardedByAttrCommon(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1589 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1133 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkIBOutletCommon(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1142 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkIBOutletCommon(), clang::Sema::Context, clang::Sema::Diag(), clang::IdentifierTable::get(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getDeclContext(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getNumArgs(), clang::DeclContext::getParent(), clang::AttributeList::getRange(), clang::Sema::getScopeForContext(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::AttributeList::getTypeArg(), clang::Sema::GetTypeFromParser(), clang::Sema::getTypeName(), clang::AttributeList::hasParsedType(), clang::ASTContext::Idents, clang::Type::isBuiltinType(), clang::Type::isObjCIdType(), and clang::Type::isObjCObjectType().
Referenced by ProcessDeclAttribute().
|
static |
Handle attribute((init_priority(priority))) attributes based on http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html.
Definition at line 2752 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkUInt32Argument(), clang::Sema::Context, clang::Sema::Diag(), E, clang::AttributeList::getArgAsExpr(), clang::Type::getAs(), clang::ASTContext::getAsArrayType(), clang::AttributeList::getAttributeSpellingListIndex(), clang::ASTContext::getBaseElementType(), clang::Sema::getCurFunctionOrMethodDecl(), clang::Sema::getLangOpts(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and clang::AttributeList::setInvalid().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4877 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and clang::Sema::mergeInternalLinkageAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4573 of file SemaDeclAttr.cpp.
References clang::Sema::Context, clang::ASTContext::getTargetInfo(), clang::TargetInfo::getTriple(), handleARMInterruptAttr(), handleMipsInterruptAttr(), and handleMSP430InterruptAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3880 of file SemaDeclAttr.cpp.
References clang::Sema::AddLaunchBoundsAttr(), checkAttributeAtLeastNumArgs(), checkAttributeAtMostNumArgs(), clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getNumArgs(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 771 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkAttrArgsAreCapabilityObjs(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 785 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkAttrArgsAreCapabilityObjs(), checkAttributeAtLeastNumArgs(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3596 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getRange(), and clang::Sema::mergeMinSizeAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4514 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedFunctionOrMethod, clang::AttributeList::getAttributeSpellingListIndex(), getFunctionOrMethodNumParams(), getFunctionOrMethodResultType(), clang::AttributeList::getLoc(), clang::Decl::getLocation(), clang::AttributeList::getName(), clang::AttributeList::getNumArgs(), clang::AttributeList::getRange(), hasFunctionProto(), isFunctionOrMethod(), and clang::Type::isVoidType().
Referenced by handleInterruptAttr().
|
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 3352 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::VectorType::GenericVector, clang::AttributeList::getArgAsIdent(), clang::Type::getAs(), clang::AttributeList::getAttributeSpellingListIndex(), clang::ASTContext::getComplexType(), clang::ASTContext::getIntTypeForBitwidth(), clang::AttributeList::getLoc(), clang::Decl::getLocation(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ASTContext::getRealTypeForBitwidth(), clang::ASTContext::getTypeSize(), clang::ASTContext::getVectorType(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), clang::Type::isComplexType(), clang::Type::isFloatingType(), clang::Type::isIntegralOrEnumerationType(), clang::QualType::isNull(), clang::Type::isSignedIntegerType(), clang::Name, normalizeName(), and parseModeAttrArg().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4416 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), AttributeLangSupport::C, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::AttributeList::getSemanticSpelling(), clang::Sema::LangOpts, and clang::Sema::mergeMSInheritanceAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4478 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIntegerConstant, clang::Decl::addAttr(), checkAttributeNumArgs(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::isArgExpr(), and clang::Expr::isIntegerConstantExpr().
Referenced by handleInterruptAttr().
|
static |
Definition at line 1641 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3480 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and isFunctionOrMethod().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1229 of file SemaDeclAttr.cpp.
References clang::Sema::ActiveTemplateInstantiations, clang::Decl::addAttr(), attrNonNullArgCheck(), checkFunctionOrMethodParameterIndex(), clang::Sema::Context, clang::Sema::Diag(), E, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), getFunctionOrMethodNumParams(), getFunctionOrMethodParamRange(), getFunctionOrMethodParamType(), clang::AttributeList::getLoc(), clang::AttributeList::getNumArgs(), clang::AttributeList::getRange(), I, clang::Type::isDependentType(), clang::SourceLocation::isFileID(), isFunctionOrMethodVariadic(), and clang::Sema::isValidPointerAttrType().
Referenced by handleNonNullAttrParameter(), and ProcessDeclAttribute().
|
static |
Definition at line 1273 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), attrNonNullArgCheck(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getFunctionType(), clang::AttributeList::getLoc(), clang::AttributeList::getNumArgs(), clang::AttributeList::getRange(), clang::ParmVarDecl::getSourceRange(), clang::ValueDecl::getType(), and handleNonNullAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1650 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::CheckNoReturnAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedFunctionOrMethod, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and hasDeclarator().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4838 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkAttributeAtLeastNumArgs(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), E, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getNumArgs(), clang::AttributeList::getRange(), I, and clang::parseSanitizerValue().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4862 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and normalizeName().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1770 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getName(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3986 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getKind(), clang::Decl::getLocStart(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ValueDecl::getType(), isValidSubjectOfCFAttribute(), and isValidSubjectOfNSAttribute().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4014 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedFunctionMethodOrParameter, clang::ExpectedFunctionOrMethod, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getKind(), clang::Sema::getLangOpts(), clang::Decl::getLocStart(), clang::AttributeList::getName(), clang::Type::getPointeeType(), clang::AttributeList::getRange(), hasDeclarator(), clang::QualType::isNull(), isValidSubjectOfCFAttribute(), isValidSubjectOfNSAttribute(), isValidSubjectOfNSReturnsRetainedAttribute(), and clang::Property.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4295 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::getASTMutationListener(), clang::AttributeList::getAttributeSpellingListIndex(), clang::RecordDecl::getDefinition(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4199 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::Decl::getLocStart(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), clang::IdentifierInfo::isStr(), and clang::Type::isVoidPointerType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4229 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getLocStart(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, and clang::AttributeList::isArgIdent().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4243 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getLocStart(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, and clang::AttributeList::isArgIdent().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4261 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getDeclContext(), clang::AttributeList::getRange(), and clang::ObjCInterfaceDecl::setHasDesignatedInitializers().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2317 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getLocation(), clang::AttributeList::getRange(), and clang::Type::isObjCObjectPointerType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2258 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), clang::Sema::Context, clang::ast_matchers::decl, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::Decl::getLocation(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ObjCMethodDecl::getReturnType(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), clang::Type::isObjCObjectPointerType(), clang::IdentifierLoc::Loc, and clang::OMF_init.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2288 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getLocation(), clang::AttributeList::getRange(), and clang::Type::isCARCBridgableType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4318 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::ExpectedVariable, clang::Decl::getLocStart(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and hasDeclarator().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4326 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getRange(), clang::ValueDecl::getType(), clang::Qualifiers::OCL_Autoreleasing, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, clang::Qualifiers::OCL_Weak, and clang::ast_matchers::type.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4155 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getDeclContext(), clang::Decl::getLocStart(), clang::ObjCMethodDecl::getMethodFamily(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and clang::OMF_dealloc.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4127 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::Decl::getLocStart(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::Type::isObjCRetainableType(), clang::Type::isPointerType(), and clang::Type::isReferenceType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4279 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1841 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3602 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getRange(), and clang::Sema::mergeOptimizeNoneAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1378 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), checkFunctionOrMethodParameterIndex(), clang::Sema::Context, clang::Sema::Diag(), clang::IdentifierTable::get(), clang::AttributeList::getArgAsExpr(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), getFunctionOrMethodParamType(), clang::Preprocessor::getIdentifierTable(), clang::AttributeList::getLoc(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getNumArgs(), I, clang::IdentifierLoc::Ident, clang::Type::isAnyPointerType(), clang::AttributeList::isArgIdent(), clang::Type::isBlockPointerType(), clang::Type::isIntegerType(), normalizeName(), clang::Sema::PP, and clang::Decl::specific_attrs().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1090 of file SemaDeclAttr.cpp.
References clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and clang::ASTContext::getTypeAlign().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 948 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), and clang::IdentifierLoc::Loc.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 831 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkUInt32Argument(), clang::Sema::Context, clang::Sema::Diag(), E, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getLocStart(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and clang::Decl::hasAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 629 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkGuardedByAttrCommon(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getRange(), and threadSafetyCheckIsPointer().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 595 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getRange(), and threadSafetyCheckIsPointer().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4790 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkAttrArgsAreCapabilityObjs(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4801 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkAttrArgsAreCapabilityObjs(), checkAttributeAtLeastNumArgs(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1617 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), getFunctionOrMethodResultSourceRange(), getFunctionOrMethodResultType(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::Type::isAnyPointerType(), and clang::Type::isBlockPointerType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1295 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), attrNonNullArgCheck(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), getFunctionOrMethodResultSourceRange(), getFunctionOrMethodResultType(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 986 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), and clang::IdentifierLoc::Loc.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2567 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkSectionName(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getRange(), clang::ASTContext::getTargetInfo(), clang::TargetInfo::isValidSectionSpecifier(), and clang::Sema::mergeSectionAttr().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2353 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIntegerConstant, clang::Decl::addAttr(), clang::Type::castAs(), clang::Sema::Context, clang::Sema::Diag(), E, clang::ExpectedFunctionMethodOrBlock, clang::AttributeList::getArgAsExpr(), clang::Type::getAs(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getFunctionType(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getNumArgs(), clang::AttributeList::getRange(), clang::Type::isBlockPointerType(), clang::Type::isFunctionPointerType(), clang::Expr::isIntegerConstantExpr(), clang::Expr::isTypeDependent(), and clang::Expr::isValueDependent().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1035 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), checkForConsumableClass(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), and clang::IdentifierLoc::Loc.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 747 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkTryLockFunAttrCommon(), clang::Sema::Context, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Applies the given attribute to the Decl without performing any additional semantic checking.
Definition at line 345 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
|
static |
Definition at line 352 of file SemaDeclAttr.cpp.
References S.
Referenced by handleSimpleAttributeWithExclusions().
|
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 361 of file SemaDeclAttr.cpp.
References clang::AttributeList::getName(), clang::AttributeList::getRange(), handleSimpleAttributeWithExclusions(), and S.
|
static |
Definition at line 2602 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::checkTargetAttr(), clang::Sema::Context, clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1059 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), checkForConsumableClass(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::IdentifierInfo::getName(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::IdentifierLoc::Ident, clang::AttributeList::isArgIdent(), and clang::IdentifierLoc::Loc.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1597 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2936 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedUnion, clang::RecordDecl::field_begin(), clang::RecordDecl::field_end(), clang::Type::getAsUnionType(), clang::AttributeList::getAttributeSpellingListIndex(), clang::RecordType::getDecl(), clang::AttributeList::getLoc(), clang::Decl::getLocation(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ValueDecl::getType(), clang::ASTContext::getTypeAlign(), clang::ASTContext::getTypeSize(), clang::TypedefNameDecl::getUnderlyingType(), clang::Type::hasFloatingRepresentation(), clang::TagDecl::isCompleteDefinition(), clang::TagDecl::isUnion(), clang::Type::isUnionType(), and clang::Type::isVectorType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4776 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkTryLockFunAttrCommon(), clang::Sema::Context, clang::AttributeList::getArgAsExpr(), clang::AttributeList::getAttributeSpellingListIndex(), and clang::AttributeList::getRange().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 3936 of file SemaDeclAttr.cpp.
References clang::AANT_ArgumentIdentifier, clang::Decl::addAttr(), checkAttributeNumArgs(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedVariable, clang::AttributeList::getArgAsIdent(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLayoutCompatible(), clang::AttributeList::getLoc(), clang::AttributeList::getMatchingCType(), clang::AttributeList::getMustBeNull(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::Sema::GetTypeFromParser(), clang::IdentifierLoc::Ident, and clang::AttributeList::isArgIdent().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1790 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedVariableOrFunction, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), and isFunctionOrMethod().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 4371 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), AttributeLangSupport::C, clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedClass, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::isHexDigit(), and clang::Sema::LangOpts.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1698 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::RecordDecl::fields(), clang::Decl::getAttr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getRange(), and I.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2513 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::Sema::getASTContext(), clang::Decl::getAttr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getTypeArg(), clang::Sema::GetTypeFromParser(), clang::AttributeList::hasParsedType(), clang::ASTContext::hasSameType(), clang::Type::isBooleanType(), clang::Type::isExtVectorType(), clang::Type::isFloatingType(), and clang::Type::isIntegralType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2205 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedTypeOrNamespace, clang::AttributeList::getAttributeSpellingListIndex(), clang::SourceRange::getBegin(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ASTContext::getTargetInfo(), clang::TargetInfo::hasProtectedVisibility(), clang::Sema::mergeTypeVisibilityAttr(), clang::Sema::mergeVisibilityAttr(), and clang::ast_matchers::type.
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2444 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getFunctionType(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::FunctionType::getReturnType(), and clang::Type::isVoidType().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2463 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Decl::canBeWeakImported(), clang::Sema::Context, clang::Sema::Diag(), clang::ExpectedVariableOrFunction, clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ASTContext::getTargetInfo(), and clang::TargetInfo::getTriple().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 1487 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::Decl::getDeclContext(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getNumArgs(), clang::AttributeList::getRange(), and clang::DeclContext::getRedeclContext().
Referenced by ProcessDeclAttribute().
|
static |
Definition at line 2488 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), checkUInt32Argument(), clang::Sema::Context, clang::Sema::Diag(), E, clang::AttributeList::getArgAsExpr(), clang::Decl::getAttr(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), and clang::AttributeList::getRange().
|
static |
Definition at line 4612 of file SemaDeclAttr.cpp.
References clang::Decl::addAttr(), clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::getAttributeSpellingListIndex(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::AttributeList::getRange(), clang::ValueDecl::getType(), clang::TypedefNameDecl::getUnderlyingType(), clang::Type::isFunctionPointerType(), and clang::Type::isFunctionType().
Referenced by ProcessDeclAttribute().
Return true if the given decl has a declarator that should have been processed by Sema::GetTypeForDeclarator.
Definition at line 63 of file SemaDeclAttr.cpp.
Referenced by handleCallConvAttr(), handleNoReturnAttr(), handleNSReturnsRetainedAttr(), and handleObjCOwnershipAttr().
hasFunctionProto - Return true if the given decl has a argument information.
This decl should have already passed isFunctionOrMethod or isFunctionOrMethodOrBlock.
Definition at line 72 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
Referenced by checkFunctionOrMethodParameterIndex(), handleArgumentWithTypeTagAttr(), and handleMipsInterruptAttr().
Definition at line 486 of file SemaDeclAttr.cpp.
References clang::BO_LAnd, clang::BO_LOr, E, typeHasCapability(), and clang::UO_LNot.
Referenced by checkAttrArgsAreCapabilityObjs().
|
inlinestatic |
Definition at line 155 of file SemaDeclAttr.cpp.
References clang::IdentifierTable::get(), clang::Type::getAs(), clang::RecordType::getDecl(), clang::NamedDecl::getIdentifier(), clang::PointerType::getPointeeType(), clang::TagDecl::getTagKind(), clang::ASTContext::Idents, and clang::TTK_Struct.
Referenced by handleFormatArgAttr(), and handleFormatAttr().
Definition at line 5748 of file SemaDeclAttr.cpp.
References clang::Decl::getDeclContext(), and clang::Decl::isDeprecated().
Referenced by DoEmitAvailabilityWarning().
Definition at line 5760 of file SemaDeclAttr.cpp.
References clang::Decl::getDeclContext(), and clang::Decl::isUnavailable().
Referenced by DoEmitAvailabilityWarning().
|
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 5686 of file SemaDeclAttr.cpp.
References clang::Sema::Context, clang::sema::DelayedDiagnostic::getForbiddenTypeDiagnostic(), clang::Decl::getLocation(), clang::ASTContext::getSourceManager(), and clang::SourceManager::isInSystemHeader().
Referenced by handleDelayedForbiddenType().
isFunctionOrMethod - Return true if the given decl has function type (function or function-typed variable) or an Objective-C method.
Definition at line 52 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType().
Referenced by GetFullTypeForDeclarator(), handleArgumentWithTypeTagAttr(), handleMipsInterruptAttr(), handleNoDebugAttr(), handleUsedAttr(), isFunctionOrMethodOrBlock(), 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 57 of file SemaDeclAttr.cpp.
References isFunctionOrMethod().
Referenced by checkFunctionOrMethodParameterIndex(), and handleAnalyzerNoReturnAttr().
Definition at line 122 of file SemaDeclAttr.cpp.
References clang::Decl::getFunctionType(), and clang::FunctionProtoType::isVariadic().
Referenced by checkFunctionOrMethodParameterIndex(), handleFormatAttr(), and handleNonNullAttr().
Definition at line 133 of file SemaDeclAttr.cpp.
Referenced by checkFunctionOrMethodParameterIndex(), clang::getCursorKindForDecl(), and handleFormatAttr().
Check if the passed-in expression is of type int or bool.
Definition at line 371 of file SemaDeclAttr.cpp.
References clang::Expr::getType(), clang::Type::isBooleanType(), and clang::Type::isIntegerType().
Referenced by checkTryLockFunAttrCommon().
|
inlinestatic |
Definition at line 139 of file SemaDeclAttr.cpp.
References clang::IdentifierTable::get(), clang::Type::getAs(), clang::NamedDecl::getIdentifier(), clang::ObjCObjectType::getInterface(), clang::ObjCObjectPointerType::getObjectType(), and clang::ASTContext::Idents.
Referenced by handleFormatArgAttr(), and handleFormatAttr().
Definition at line 3980 of file SemaDeclAttr.cpp.
References clang::Type::isDependentType(), clang::Type::isPointerType(), and isValidSubjectOfNSAttribute().
Referenced by handleNSConsumedAttr(), and handleNSReturnsRetainedAttr().
Definition at line 3975 of file SemaDeclAttr.cpp.
References clang::Sema::Context, clang::Type::isDependentType(), clang::ASTContext::isObjCNSObjectType(), and clang::Type::isObjCObjectPointerType().
Referenced by handleNSConsumedAttr(), handleNSReturnsRetainedAttr(), and isValidSubjectOfCFAttribute().
Definition at line 3970 of file SemaDeclAttr.cpp.
References clang::Type::isDependentType(), and clang::Type::isObjCRetainableType().
Referenced by handleNSReturnsRetainedAttr().
|
static |
Definition at line 2176 of file SemaDeclAttr.cpp.
References clang::Sema::Context, clang::Sema::Diag(), clang::Decl::dropAttr(), clang::Decl::getAttr(), and clang::SourceRange::getBegin().
|
static |
Normalize the attribute, foo becomes foo.
Returns true if normalization was applied.
Definition at line 1369 of file SemaDeclAttr.cpp.
Referenced by handleFormatAttr(), handleModeAttr(), handleNoSanitizeSpecificAttr(), and handleOwnershipAttr().
|
static |
parseModeAttrArg - Parses attribute mode string and returns parsed type attribute.
Definition at line 3294 of file SemaDeclAttr.cpp.
References clang::Sema::Context, clang::TargetInfo::getCharWidth(), clang::TargetInfo::getPointerWidth(), clang::ASTContext::getTargetInfo(), and clang::TargetInfo::getUnwindWordWidth().
Referenced by handleModeAttr().
|
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 4933 of file SemaDeclAttr.cpp.
References clang::Sema::Context, clang::Sema::Diag(), clang::AttributeList::existsInTarget(), clang::AttributeList::getKind(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::ASTContext::getTargetInfo(), handleAcquireCapabilityAttr(), handleAcquiredAfterAttr(), handleAcquiredBeforeAttr(), handleAliasAttr(), handleAlignedAttr(), handleAlignValueAttr(), handleAlwaysInlineAttr(), handleAMDGPUNumSGPRAttr(), handleAMDGPUNumVGPRAttr(), handleAnalyzerNoReturnAttr(), handleAnnotateAttr(), handleArgumentWithTypeTagAttr(), handleAssertCapabilityAttr(), handleAssertExclusiveLockAttr(), handleAssertSharedLockAttr(), handleAssumeAlignedAttr(), handleAvailabilityAttr(), handleBlocksAttr(), handleCallableWhenAttr(), handleCallConvAttr(), handleCapabilityAttr(), handleCFAuditedTransferAttr(), handleCFUnknownTransferAttr(), handleCleanupAttr(), handleColdAttr(), handleCommonAttr(), handleCommonAttributeFeatures(), handleConstructorAttr(), handleConsumableAttr(), handleDeclspecThreadAttr(), handleDependencyAttr(), handleDeprecatedAttr(), handleDestructorAttr(), handleDisableTailCallsAttr(), handleDLLAttr(), handleEnableIfAttr(), handleExclusiveTrylockFunctionAttr(), handleExtVectorTypeAttr(), handleFormatArgAttr(), handleFormatAttr(), handleGlobalAttr(), handleGNUInlineAttr(), handleGuardedByAttr(), handleHotAttr(), handleIBOutlet(), handleIBOutletCollection(), handleInitPriorityAttr(), handleInternalLinkageAttr(), handleInterruptAttr(), handleLaunchBoundsAttr(), handleLockReturnedAttr(), handleLocksExcludedAttr(), handleMinSizeAttr(), handleModeAttr(), handleMSInheritanceAttr(), handleNakedAttr(), handleNoDebugAttr(), handleNonNullAttr(), handleNonNullAttrParameter(), handleNoReturnAttr(), handleNoSanitizeAttr(), handleNoSanitizeSpecificAttr(), handleNotTailCalledAttr(), handleNSConsumedAttr(), handleNSReturnsRetainedAttr(), handleObjCBoxable(), handleObjCBridgeAttr(), handleObjCBridgeMutableAttr(), handleObjCBridgeRelatedAttr(), handleObjCDesignatedInitializer(), handleObjCIndependentClass(), handleObjCMethodFamilyAttr(), handleObjCNSObject(), handleObjCOwnershipAttr(), handleObjCPreciseLifetimeAttr(), handleObjCRequiresSuperAttr(), handleObjCReturnsInnerPointerAttr(), handleObjCRuntimeName(), handleObjCSuppresProtocolAttr(), handleOptimizeNoneAttr(), handleOwnershipAttr(), handlePackedAttr(), handleParamTypestateAttr(), handlePassObjectSizeAttr(), handlePtGuardedByAttr(), handlePtGuardedVarAttr(), handleReleaseCapabilityAttr(), handleRequiresCapabilityAttr(), handleRestrictAttr(), handleReturnsNonNullAttr(), handleReturnTypestateAttr(), handleSectionAttr(), handleSentinelAttr(), handleSetTypestateAttr(), handleSharedTrylockFunctionAttr(), handleTargetAttr(), handleTestTypestateAttr(), handleTLSModelAttr(), handleTransparentUnionAttr(), handleTryAcquireCapabilityAttr(), handleTypeTagForDatatypeAttr(), handleUsedAttr(), handleUuidAttr(), handleVecReturnAttr(), handleVecTypeHint(), handleVisibilityAttr(), handleWarnUnusedResult(), handleWeakImportAttr(), handleWeakRefAttr(), handleX86ForceAlignArgPointerAttr(), clang::AttributeList::IgnoredAttribute, clang::AttributeList::isCXX11Attribute(), clang::AttributeList::isDeclspecAttribute(), clang::AttributeList::isInvalid(), clang::AttributeList::isTypeAttr(), S, and clang::AttributeList::UnknownAttribute.
Referenced by clang::Sema::ProcessAccessDeclAttributeList(), and clang::Sema::ProcessDeclAttributeList().
|
static |
Check if passed in Decl is a pointer type.
Note that this function may produce an error message.
Definition at line 396 of file SemaDeclAttr.cpp.
References clang::Sema::Diag(), clang::Type::getAs(), clang::AttributeList::getLoc(), clang::AttributeList::getName(), clang::ValueDecl::getType(), and threadSafetyCheckIsSmartPointer().
Referenced by handlePtGuardedByAttr(), and handlePtGuardedVarAttr().
|
static |
Definition at line 379 of file SemaDeclAttr.cpp.
References clang::Sema::Context, clang::ASTContext::DeclarationNames, clang::DeclContextLookupResult::empty(), clang::DeclarationNameTable::getCXXOperatorName(), clang::RecordType::getDecl(), and clang::DeclContext::lookup().
Referenced by checkRecordTypeForCapability(), and threadSafetyCheckIsPointer().
Definition at line 476 of file SemaDeclAttr.cpp.
References checkRecordTypeForCapability(), and checkTypedefTypeForCapability().
Referenced by checkAcquireOrderAttrCommon(), checkAttrArgsAreCapabilityObjs(), and isCapabilityExpr().
|
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 1897 of file SemaDeclAttr.cpp.
References clang::VersionTuple::empty().
Referenced by clang::Sema::mergeAvailabilityAttr().
1.8.6