@@ -1655,6 +1655,9 @@ class Sema final {
1655
1655
/// Add [[gsl::Pointer]] attributes for std:: types.
1656
1656
void inferGslPointerAttribute(TypedefNameDecl *TD);
1657
1657
1658
+ /// Add _Nullable attributes for std:: types.
1659
+ void inferNullableClassAttribute(CXXRecordDecl *CRD);
1660
+
1658
1661
enum PragmaOptionsAlignKind {
1659
1662
POAK_Native, // #pragma options align=native
1660
1663
POAK_Natural, // #pragma options align=natural
@@ -13261,6 +13264,19 @@ class Sema final {
13261
13264
/// from \p Caller context and erases all functions with lower
13262
13265
/// calling priority.
13263
13266
void EraseUnwantedCUDAMatches(
13267
+ const FunctionDecl *Caller,
13268
+ SmallVectorImpl<std::pair<DeclAccessPair, FunctionDecl *>> &Matches);
13269
+
13270
+ /// Given a implicit special member, infer its CUDA target from the
13271
+ /// calls it needs to make to underlying base/field special members.
13272
+ /// \param ClassDecl the class for which the member is being created.
13273
+ /// \param CSM the kind of special member.
13274
+ /// \param MemberDecl the special member itself.
13275
+ /// \param ConstRHS true if this is a copy operation with a const object on
13276
+ /// its RHS.
13277
+ /// \param Diagnose true if this call should emit diagnostics.
13278
+ /// \return true if there was an error inferring.
13279
+ /// The result of this call is implicit CUDA target attribute(s) attached to
13264
13280
/// the member declaration.
13265
13281
bool inferCUDATargetForImplicitSpecialMember(CXXRecordDecl *ClassDecl,
13266
13282
CXXSpecialMember CSM,
@@ -13287,6 +13303,7 @@ class Sema final {
13287
13303
void checkCUDATargetOverload(FunctionDecl *NewFD,
13288
13304
const LookupResult &Previous);
13289
13305
/// Copies target attributes from the template TD to the function FD.
13306
+ void inheritCUDATargetAttrs(FunctionDecl *FD, const FunctionTemplateDecl &TD);
13290
13307
13291
13308
/// Returns the name of the launch configuration function. This is the name
13292
13309
/// of the function that will be called to configure kernel call, with the
0 commit comments