clang 22.0.0git
SemaStmtAttr.cpp File Reference
#include "clang/AST/ASTContext.h"
#include "clang/AST/EvaluatedExprVisitor.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Sema/DelayedDiagnostic.h"
#include "clang/Sema/ParsedAttr.h"
#include "clang/Sema/ScopeInfo.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 AttrhandleHLSLControlFlowHint (Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range)
static AttrhandleAtomicAttr (Sema &S, Stmt *St, const ParsedAttr &AL, 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 443 of file SemaStmtAttr.cpp.

Function Documentation

◆ CheckForDuplicateLoopAttrs()

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

◆ CheckForIncompatibleAttributes()

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

◆ CheckStmtInlineAttr()

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

◆ handleAlwaysInlineAttr()

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

◆ handleAtomicAttr()

◆ handleCodeAlignAttr()

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

◆ handleCXXAssumeAttr()

◆ handleFallThroughAttr()

◆ handleHLSLControlFlowHint()

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

Definition at line 624 of file SemaStmtAttr.cpp.

References clang::Sema::Context.

Referenced by ProcessStmtAttribute().

◆ handleHLSLLoopHintAttr()

◆ handleLikely()

◆ handleLoopHintAttr()

◆ handleMSConstexprAttr()

◆ handleMustTailAttr()

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

Definition at line 336 of file SemaStmtAttr.cpp.

References clang::Sema::Context.

Referenced by ProcessStmtAttribute().

◆ handleNoConvergentAttr()

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

◆ handleNoInlineAttr()

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

◆ handleNoMergeAttr()

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

◆ handleOpenCLUnrollHint()

◆ handleSuppressAttr()

◆ handleUnlikely()

◆ ProcessStmtAttribute()