Skip to content

Commit d35466f

Browse files
committed
Merge "merge main into amd-staging" into amd-staging
2 parents dd59c8d + f6563c0 commit d35466f

File tree

267 files changed

+19932
-11780
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

267 files changed

+19932
-11780
lines changed

.github/new-prs-labeler.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,11 @@ backend:DirectX:
661661

662662
backend:SPIR-V:
663663
- clang/lib/Driver/ToolChains/SPIRV.*
664+
- clang/lib/Sema/SemaSPIRV.cpp
665+
- clang/include/clang/Sema/SemaSPIRV.h
666+
- clang/include/clang/Basic/BuiltinsSPIRV.td
667+
- clang/test/CodeGenSPIRV/**
668+
- clang/test/SemaSPIRV/**
664669
- llvm/lib/Target/SPIRV/**
665670
- llvm/test/CodeGen/SPIRV/**
666671
- llvm/test/Frontend/HLSL/**

clang/docs/ReleaseNotes.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -918,6 +918,9 @@ Bug Fixes to C++ Support
918918
out of a module (which is the case e.g. in MSVC's implementation of ``std`` module). (#GH118218)
919919
- Fixed a pack expansion issue in checking unexpanded parameter sizes. (#GH17042)
920920
- Fixed a bug where captured structured bindings were modifiable inside non-mutable lambda (#GH95081)
921+
- Passing incomplete types to ``__is_base_of`` and other builtin type traits for which the corresponding
922+
standard type trait mandates a complete type is now a hard (non-sfinae-friendly) error
923+
(`LWG3929 <https://wg21.link/LWG3929>`__.) (#GH121278)
921924
- Clang now identifies unexpanded parameter packs within the type constraint on a non-type template parameter. (#GH88866)
922925
- Fixed an issue while resolving type of expression indexing into a pack of values of non-dependent type (#GH121242)
923926

clang/include/clang-c/Index.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2198,7 +2198,11 @@ enum CXCursorKind {
21982198
*/
21992199
CXCursor_OpenACCShutdownConstruct = 329,
22002200

2201-
CXCursor_LastStmt = CXCursor_OpenACCShutdownConstruct,
2201+
/** OpenACC set Construct.
2202+
*/
2203+
CXCursor_OpenACCSetConstruct = 330,
2204+
2205+
CXCursor_LastStmt = CXCursor_OpenACCSetConstruct,
22022206

22032207
/**
22042208
* Cursor that represents the translation unit itself.

clang/include/clang/AST/OpenACCClause.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,19 @@ class OpenACCDeviceNumClause : public OpenACCClauseWithSingleIntExpr {
633633
SourceLocation EndLoc);
634634
};
635635

636+
class OpenACCDefaultAsyncClause : public OpenACCClauseWithSingleIntExpr {
637+
OpenACCDefaultAsyncClause(SourceLocation BeginLoc, SourceLocation LParenLoc,
638+
Expr *IntExpr, SourceLocation EndLoc);
639+
640+
public:
641+
static bool classof(const OpenACCClause *C) {
642+
return C->getClauseKind() == OpenACCClauseKind::DefaultAsync;
643+
}
644+
static OpenACCDefaultAsyncClause *
645+
Create(const ASTContext &C, SourceLocation BeginLoc, SourceLocation LParenLoc,
646+
Expr *IntExpr, SourceLocation EndLoc);
647+
};
648+
636649
/// Represents a 'collapse' clause on a 'loop' construct. This clause takes an
637650
/// integer constant expression 'N' that represents how deep to collapse the
638651
/// construct. It also takes an optional 'force' tag that permits intervening

clang/include/clang/AST/RecursiveASTVisitor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4080,6 +4080,8 @@ DEF_TRAVERSE_STMT(OpenACCInitConstruct,
40804080
{ TRY_TO(VisitOpenACCClauseList(S->clauses())); })
40814081
DEF_TRAVERSE_STMT(OpenACCShutdownConstruct,
40824082
{ TRY_TO(VisitOpenACCClauseList(S->clauses())); })
4083+
DEF_TRAVERSE_STMT(OpenACCSetConstruct,
4084+
{ TRY_TO(VisitOpenACCClauseList(S->clauses())); })
40834085

40844086
// Traverse HLSL: Out argument expression
40854087
DEF_TRAVERSE_STMT(HLSLOutArgExpr, {})

clang/include/clang/AST/StmtOpenACC.h

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,5 +672,45 @@ class OpenACCShutdownConstruct final
672672
SourceLocation End, ArrayRef<const OpenACCClause *> Clauses);
673673
};
674674

675+
// This class represents a 'set' construct, which has just a clause list.
676+
class OpenACCSetConstruct final
677+
: public OpenACCConstructStmt,
678+
private llvm::TrailingObjects<OpenACCSetConstruct,
679+
const OpenACCClause *> {
680+
friend TrailingObjects;
681+
OpenACCSetConstruct(unsigned NumClauses)
682+
: OpenACCConstructStmt(OpenACCSetConstructClass,
683+
OpenACCDirectiveKind::Set, SourceLocation{},
684+
SourceLocation{}, SourceLocation{}) {
685+
std::uninitialized_value_construct(
686+
getTrailingObjects<const OpenACCClause *>(),
687+
getTrailingObjects<const OpenACCClause *>() + NumClauses);
688+
setClauseList(MutableArrayRef(getTrailingObjects<const OpenACCClause *>(),
689+
NumClauses));
690+
}
691+
692+
OpenACCSetConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
693+
SourceLocation End,
694+
ArrayRef<const OpenACCClause *> Clauses)
695+
: OpenACCConstructStmt(OpenACCSetConstructClass,
696+
OpenACCDirectiveKind::Set, Start, DirectiveLoc,
697+
End) {
698+
std::uninitialized_copy(Clauses.begin(), Clauses.end(),
699+
getTrailingObjects<const OpenACCClause *>());
700+
setClauseList(MutableArrayRef(getTrailingObjects<const OpenACCClause *>(),
701+
Clauses.size()));
702+
}
703+
704+
public:
705+
static bool classof(const Stmt *T) {
706+
return T->getStmtClass() == OpenACCSetConstructClass;
707+
}
708+
static OpenACCSetConstruct *CreateEmpty(const ASTContext &C,
709+
unsigned NumClauses);
710+
static OpenACCSetConstruct *Create(const ASTContext &C, SourceLocation Start,
711+
SourceLocation DirectiveLoc,
712+
SourceLocation End,
713+
ArrayRef<const OpenACCClause *> Clauses);
714+
};
675715
} // namespace clang
676716
#endif // LLVM_CLANG_AST_STMTOPENACC_H

clang/include/clang/AST/TextNodeDumper.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,7 @@ class TextNodeDumper
417417
void VisitOpenACCHostDataConstruct(const OpenACCHostDataConstruct *S);
418418
void VisitOpenACCWaitConstruct(const OpenACCWaitConstruct *S);
419419
void VisitOpenACCInitConstruct(const OpenACCInitConstruct *S);
420+
void VisitOpenACCSetConstruct(const OpenACCSetConstruct *S);
420421
void VisitOpenACCShutdownConstruct(const OpenACCShutdownConstruct *S);
421422
void VisitOpenACCAsteriskSizeExpr(const OpenACCAsteriskSizeExpr *S);
422423
void VisitEmbedExpr(const EmbedExpr *S);

clang/include/clang/Basic/Attr.td

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4335,6 +4335,16 @@ def HLSLLoopHint: StmtAttr {
43354335
let Documentation = [HLSLLoopHintDocs, HLSLUnrollHintDocs];
43364336
}
43374337

4338+
def HLSLControlFlowHint: StmtAttr {
4339+
/// [branch]
4340+
/// [flatten]
4341+
let Spellings = [Microsoft<"branch">, Microsoft<"flatten">];
4342+
let Subjects = SubjectList<[IfStmt],
4343+
ErrorDiag, "'if' statements">;
4344+
let LangOpts = [HLSL];
4345+
let Documentation = [InternalOnly];
4346+
}
4347+
43384348
def CapturedRecord : InheritableAttr {
43394349
// This attribute has no spellings as it is only ever created implicitly.
43404350
let Spellings = [];
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//===--- BuiltinsSPIRV.td - SPIRV Builtin function database ---------*- C++ -*-===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
9+
include "clang/Basic/BuiltinsBase.td"
10+
11+
def HLSLDistance : Builtin {
12+
let Spellings = ["__builtin_spirv_distance"];
13+
let Attributes = [NoThrow, Const];
14+
let Prototype = "void(...)";
15+
}

clang/include/clang/Basic/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ clang_tablegen(BuiltinsRISCV.inc -gen-clang-builtins
6060
SOURCE BuiltinsRISCV.td
6161
TARGET ClangBuiltinsRISCV)
6262

63+
clang_tablegen(BuiltinsSPIRV.inc -gen-clang-builtins
64+
SOURCE BuiltinsSPIRV.td
65+
TARGET ClangBuiltinsSPIRV)
66+
6367
clang_tablegen(BuiltinsX86.inc -gen-clang-builtins
6468
SOURCE BuiltinsX86.td
6569
TARGET ClangBuiltinsX86)

clang/include/clang/Basic/DiagnosticFrontendKinds.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,8 @@ def warn_function_always_inline_attribute_mismatch : Warning<
291291
"inlining may change runtime behaviour">, InGroup<AArch64SMEAttributes>;
292292
def err_function_always_inline_new_za : Error<
293293
"always_inline function %0 has new za state">;
294+
def err_function_always_inline_new_zt0
295+
: Error<"always_inline function %0 has new zt0 state">;
294296

295297
def warn_avx_calling_convention
296298
: Warning<"AVX vector %select{return|argument}0 of type %1 without '%2' "

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9364,7 +9364,7 @@ def note_inequality_comparison_to_or_assign : Note<
93649364
"use '|=' to turn this inequality comparison into an or-assignment">;
93659365

93669366
def err_incomplete_type_used_in_type_trait_expr : Error<
9367-
"incomplete type %0 used in type trait expression">;
9367+
"incomplete type %0 used in type trait expression">, NoSFINAE;
93689368

93699369
// C++20 constinit and require_constant_initialization attribute
93709370
def warn_cxx20_compat_constinit : Warning<

clang/include/clang/Basic/OpenACCClauses.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ VISIT_CLAUSE(Create)
3838
CLAUSE_ALIAS(PCreate, Create, true)
3939
CLAUSE_ALIAS(PresentOrCreate, Create, true)
4040
VISIT_CLAUSE(Default)
41+
VISIT_CLAUSE(DefaultAsync)
4142
VISIT_CLAUSE(Delete)
4243
VISIT_CLAUSE(Detach)
4344
VISIT_CLAUSE(DeviceNum)

clang/include/clang/Basic/StmtNodes.td

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ def OpenACCHostDataConstruct : StmtNode<OpenACCAssociatedStmtConstruct>;
315315
def OpenACCWaitConstruct : StmtNode<OpenACCConstructStmt>;
316316
def OpenACCInitConstruct : StmtNode<OpenACCConstructStmt>;
317317
def OpenACCShutdownConstruct : StmtNode<OpenACCConstructStmt>;
318+
def OpenACCSetConstruct : StmtNode<OpenACCConstructStmt>;
318319

319320
// OpenACC Additional Expressions.
320321
def OpenACCAsteriskSizeExpr : StmtNode<Expr>;

clang/include/clang/Basic/TargetBuiltins.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,16 @@ namespace clang {
119119
};
120120
}
121121

122+
/// SPIRV builtins
123+
namespace SPIRV {
124+
enum {
125+
LastTIBuiltin = clang::Builtin::FirstTSBuiltin - 1,
126+
#define BUILTIN(ID, TYPE, ATTRS) BI##ID,
127+
#include "clang/Basic/BuiltinsSPIRV.inc"
128+
LastTSBuiltin
129+
};
130+
} // namespace SPIRV
131+
122132
/// X86 builtins
123133
namespace X86 {
124134
enum {

clang/include/clang/Driver/Action.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ class Action {
9595
OFK_Cuda = 0x02,
9696
OFK_OpenMP = 0x04,
9797
OFK_HIP = 0x08,
98+
OFK_SYCL = 0x10,
9899
};
99100

100101
static const char *getClassName(ActionClass AC);

clang/include/clang/Driver/Options.td

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,8 @@ def opencl_Group : OptionGroup<"<opencl group>">, Group<f_Group>,
182182
DocName<"OpenCL options">;
183183

184184
def sycl_Group : OptionGroup<"<SYCL group>">, Group<f_Group>,
185-
DocName<"SYCL options">;
185+
DocName<"SYCL options">,
186+
Visibility<[ClangOption, CLOption]>;
186187

187188
def cuda_Group : OptionGroup<"<CUDA group>">, Group<f_Group>,
188189
DocName<"CUDA options">,
@@ -3513,8 +3514,6 @@ def fno_verbose_asm : Flag<["-"], "fno-verbose-asm">, Group<f_Group>,
35133514
Visibility<[ClangOption, CC1Option]>,
35143515
MarshallingInfoNegativeFlag<CodeGenOpts<"AsmVerbose">>;
35153516
def fno_working_directory : Flag<["-"], "fno-working-directory">, Group<f_Group>;
3516-
def fno_wrapv : Flag<["-"], "fno-wrapv">, Group<f_Group>,
3517-
Visibility<[ClangOption, FlangOption]>;
35183517
def fobjc_arc : Flag<["-"], "fobjc-arc">, Group<f_Group>,
35193518
Visibility<[ClangOption, CC1Option]>,
35203519
HelpText<"Synthesize retain and release calls for Objective-C pointers">;
@@ -4376,8 +4375,10 @@ defm virtual_function_elimination : BoolFOption<"virtual-function-elimination",
43764375
NegFlag<SetFalse>, BothFlags<[], [ClangOption, CLOption]>>;
43774376

43784377
def fwrapv : Flag<["-"], "fwrapv">, Group<f_Group>,
4379-
Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
4378+
Visibility<[ClangOption, CLOption, CC1Option, FlangOption, FC1Option]>,
43804379
HelpText<"Treat signed integer overflow as two's complement">;
4380+
def fno_wrapv : Flag<["-"], "fno-wrapv">, Group<f_Group>,
4381+
Visibility<[ClangOption, CLOption, FlangOption]>;
43814382
def fwritable_strings : Flag<["-"], "fwritable-strings">, Group<f_Group>,
43824383
Visibility<[ClangOption, CC1Option]>,
43834384
HelpText<"Store string literals as writable data">,
@@ -6982,16 +6983,21 @@ defm : FlangIgnoredDiagOpt<"frontend-loop-interchange">;
69826983
defm : FlangIgnoredDiagOpt<"target-lifetime">;
69836984

69846985
// C++ SYCL options
6986+
let Group = sycl_Group in {
69856987
def fsycl : Flag<["-"], "fsycl">,
6986-
Visibility<[ClangOption, CLOption]>,
6987-
Group<sycl_Group>, HelpText<"Enables SYCL kernels compilation for device">;
6988+
HelpText<"Enable SYCL C++ extensions">;
69886989
def fno_sycl : Flag<["-"], "fno-sycl">,
6989-
Visibility<[ClangOption, CLOption]>,
6990-
Group<sycl_Group>, HelpText<"Disables SYCL kernels compilation for device">;
6990+
HelpText<"Disable SYCL C++ extensions">;
6991+
def fsycl_device_only : Flag<["-"], "fsycl-device-only">,
6992+
Alias<offload_device_only>, HelpText<"Compile SYCL code for device only">;
6993+
def fsycl_host_only : Flag<["-"], "fsycl-host-only">,
6994+
Alias<offload_host_only>, HelpText<"Compile SYCL code for host only. Has no "
6995+
"effect on non-SYCL compilations">;
69916996
def sycl_link : Flag<["--"], "sycl-link">, Flags<[HelpHidden]>,
6992-
Visibility<[ClangOption, CLOption]>,
6993-
Group<sycl_Group>, HelpText<"Perform link through clang-sycl-linker via the target "
6997+
HelpText<"Perform link through clang-sycl-linker via the target "
69946998
"offloading toolchain.">;
6999+
} // let Group = sycl_Group
7000+
69957001
// OS-specific options
69967002
let Flags = [TargetSpecific] in {
69977003
defm android_pad_segment : BooleanFFlag<"android-pad-segment">, Group<f_Group>;

clang/include/clang/Driver/ToolChain.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,10 @@ class ToolChain {
783783
virtual void AddHIPIncludeArgs(const llvm::opt::ArgList &DriverArgs,
784784
llvm::opt::ArgStringList &CC1Args) const;
785785

786+
/// Add arguments to use system-specific SYCL includes.
787+
virtual void addSYCLIncludeArgs(const llvm::opt::ArgList &DriverArgs,
788+
llvm::opt::ArgStringList &CC1Args) const;
789+
786790
/// Add arguments to use MCU GCC toolchain includes.
787791
virtual void AddIAMCUIncludeArgs(const llvm::opt::ArgList &DriverArgs,
788792
llvm::opt::ArgStringList &CC1Args) const;

clang/include/clang/Sema/Sema.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ class SemaOpenMP;
173173
class SemaPPC;
174174
class SemaPseudoObject;
175175
class SemaRISCV;
176+
class SemaSPIRV;
176177
class SemaSYCL;
177178
class SemaSwift;
178179
class SemaSystemZ;
@@ -1142,6 +1143,11 @@ class Sema final : public SemaBase {
11421143
return *RISCVPtr;
11431144
}
11441145

1146+
SemaSPIRV &SPIRV() {
1147+
assert(SPIRVPtr);
1148+
return *SPIRVPtr;
1149+
}
1150+
11451151
SemaSYCL &SYCL() {
11461152
assert(SYCLPtr);
11471153
return *SYCLPtr;
@@ -1219,6 +1225,7 @@ class Sema final : public SemaBase {
12191225
std::unique_ptr<SemaPPC> PPCPtr;
12201226
std::unique_ptr<SemaPseudoObject> PseudoObjectPtr;
12211227
std::unique_ptr<SemaRISCV> RISCVPtr;
1228+
std::unique_ptr<SemaSPIRV> SPIRVPtr;
12221229
std::unique_ptr<SemaSYCL> SYCLPtr;
12231230
std::unique_ptr<SemaSwift> SwiftPtr;
12241231
std::unique_ptr<SemaSystemZ> SystemZPtr;

clang/include/clang/Sema/SemaOpenACC.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ class SemaOpenACC : public SemaBase {
297297
ClauseKind == OpenACCClauseKind::NumWorkers ||
298298
ClauseKind == OpenACCClauseKind::Async ||
299299
ClauseKind == OpenACCClauseKind::DeviceNum ||
300+
ClauseKind == OpenACCClauseKind::DefaultAsync ||
300301
ClauseKind == OpenACCClauseKind::Tile ||
301302
ClauseKind == OpenACCClauseKind::Worker ||
302303
ClauseKind == OpenACCClauseKind::Vector ||
@@ -349,6 +350,7 @@ class SemaOpenACC : public SemaBase {
349350
ClauseKind == OpenACCClauseKind::NumWorkers ||
350351
ClauseKind == OpenACCClauseKind::Async ||
351352
ClauseKind == OpenACCClauseKind::DeviceNum ||
353+
ClauseKind == OpenACCClauseKind::DefaultAsync ||
352354
ClauseKind == OpenACCClauseKind::Tile ||
353355
ClauseKind == OpenACCClauseKind::Gang ||
354356
ClauseKind == OpenACCClauseKind::Worker ||
@@ -486,6 +488,7 @@ class SemaOpenACC : public SemaBase {
486488
ClauseKind == OpenACCClauseKind::NumWorkers ||
487489
ClauseKind == OpenACCClauseKind::Async ||
488490
ClauseKind == OpenACCClauseKind::DeviceNum ||
491+
ClauseKind == OpenACCClauseKind::DefaultAsync ||
489492
ClauseKind == OpenACCClauseKind::Tile ||
490493
ClauseKind == OpenACCClauseKind::Worker ||
491494
ClauseKind == OpenACCClauseKind::Vector ||
@@ -498,6 +501,7 @@ class SemaOpenACC : public SemaBase {
498501
ClauseKind == OpenACCClauseKind::NumWorkers ||
499502
ClauseKind == OpenACCClauseKind::Async ||
500503
ClauseKind == OpenACCClauseKind::DeviceNum ||
504+
ClauseKind == OpenACCClauseKind::DefaultAsync ||
501505
ClauseKind == OpenACCClauseKind::Tile ||
502506
ClauseKind == OpenACCClauseKind::Worker ||
503507
ClauseKind == OpenACCClauseKind::Vector ||

clang/include/clang/Sema/SemaSPIRV.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
//===----- SemaSPIRV.h ----- Semantic Analysis for SPIRV constructs--------===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
/// \file
9+
/// This file declares semantic analysis for SPIRV constructs.
10+
///
11+
//===----------------------------------------------------------------------===//
12+
13+
#ifndef LLVM_CLANG_SEMA_SEMASPIRV_H
14+
#define LLVM_CLANG_SEMA_SEMASPIRV_H
15+
16+
#include "clang/AST/ASTFwd.h"
17+
#include "clang/Sema/SemaBase.h"
18+
19+
namespace clang {
20+
class SemaSPIRV : public SemaBase {
21+
public:
22+
SemaSPIRV(Sema &S);
23+
24+
bool CheckSPIRVBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall);
25+
};
26+
} // namespace clang
27+
28+
#endif // LLVM_CLANG_SEMA_SEMASPIRV_H

clang/include/clang/Serialization/ASTBitCodes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2024,6 +2024,7 @@ enum StmtCode {
20242024
STMT_OPENACC_WAIT_CONSTRUCT,
20252025
STMT_OPENACC_INIT_CONSTRUCT,
20262026
STMT_OPENACC_SHUTDOWN_CONSTRUCT,
2027+
STMT_OPENACC_SET_CONSTRUCT,
20272028

20282029
// HLSL Constructs
20292030
EXPR_HLSL_OUT_ARG,

0 commit comments

Comments
 (0)