clang 20.0.0git
Macros | Functions
SemaStmtAttr.cpp File Reference
#include "clang/AST/ASTContext.h"
#include "clang/AST/EvaluatedExprVisitor.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Sema/DelayedDiagnostic.h"
#include "clang/Sema/Lookup.h"
#include "clang/Sema/ParsedAttr.h"
#include "clang/Sema/ScopeInfo.h"
#include "clang/Sema/SemaInternal.h"
#include "llvm/ADT/StringExtras.h"
#include <optional>
#include "clang/Sema/AttrParsedAttrImpl.inc"

Go to the source code of this file.

Macros

#define WANT_STMT_MERGE_LOGIC
 

Functions

static AttrhandleFallThroughAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleSuppressAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleLoopHintAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange)
 
static AttrhandleNoMergeAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleNoConvergentAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
template<typename OtherAttr , int DiagIdx>
static bool CheckStmtInlineAttr (Sema &SemaRef, const Stmt *OrigSt, const Stmt *CurSt, const AttributeCommonInfo &A)
 
static AttrhandleNoInlineAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleAlwaysInlineAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleCXXAssumeAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleMustTailAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleLikely (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleUnlikely (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleCodeAlignAttr (Sema &S, Stmt *St, const ParsedAttr &A)
 
template<typename LoopAttrT >
static void CheckForDuplicateLoopAttrs (Sema &S, ArrayRef< const Attr * > Attrs)
 
static AttrhandleMSConstexprAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static void CheckForIncompatibleAttributes (Sema &S, const SmallVectorImpl< const Attr * > &Attrs)
 
static AttrhandleOpenCLUnrollHint (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrhandleHLSLLoopHintAttr (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 
static AttrProcessStmtAttribute (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
 

Macro Definition Documentation

◆ WANT_STMT_MERGE_LOGIC

#define WANT_STMT_MERGE_LOGIC

Definition at line 445 of file SemaStmtAttr.cpp.

Function Documentation

◆ CheckForDuplicateLoopAttrs()

template<typename LoopAttrT >
static void CheckForDuplicateLoopAttrs ( Sema S,
ArrayRef< const Attr * >  Attrs 
)
static

Definition at line 397 of file SemaStmtAttr.cpp.

References clang::SemaBase::Diag().

◆ CheckForIncompatibleAttributes()

static void CheckForIncompatibleAttributes ( Sema S,
const SmallVectorImpl< const Attr * > &  Attrs 
)
static

◆ CheckStmtInlineAttr()

template<typename OtherAttr , int DiagIdx>
static bool CheckStmtInlineAttr ( Sema SemaRef,
const Stmt OrigSt,
const Stmt CurSt,
const AttributeCommonInfo A 
)
static

Definition at line 246 of file SemaStmtAttr.cpp.

References clang::SemaBase::Diag(), and clang::Stmt::getBeginLoc().

◆ handleAlwaysInlineAttr()

static Attr * handleAlwaysInlineAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleCodeAlignAttr()

static Attr * handleCodeAlignAttr ( Sema S,
Stmt St,
const ParsedAttr A 
)
static

◆ handleCXXAssumeAttr()

static Attr * handleCXXAssumeAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleFallThroughAttr()

static Attr * handleFallThroughAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleHLSLLoopHintAttr()

static Attr * handleHLSLLoopHintAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleLikely()

static Attr * handleLikely ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleLoopHintAttr()

static Attr * handleLoopHintAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange   
)
static

◆ handleMSConstexprAttr()

static Attr * handleMSConstexprAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleMustTailAttr()

static Attr * handleMustTailAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

Definition at line 337 of file SemaStmtAttr.cpp.

References clang::Sema::Context.

Referenced by ProcessStmtAttribute().

◆ handleNoConvergentAttr()

static Attr * handleNoConvergentAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleNoInlineAttr()

static Attr * handleNoInlineAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleNoMergeAttr()

static Attr * handleNoMergeAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleOpenCLUnrollHint()

static Attr * handleOpenCLUnrollHint ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleSuppressAttr()

static Attr * handleSuppressAttr ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ handleUnlikely()

static Attr * handleUnlikely ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static

◆ ProcessStmtAttribute()

static Attr * ProcessStmtAttribute ( Sema S,
Stmt St,
const ParsedAttr A,
SourceRange  Range 
)
static